diff --git a/examples/placeholder/linux/apps/app1/ciTests.json b/examples/placeholder/linux/apps/app1/ciTests.json index 2a505b5fa74961..f86e8b6d8e1e64 100644 --- a/examples/placeholder/linux/apps/app1/ciTests.json +++ b/examples/placeholder/linux/apps/app1/ciTests.json @@ -23,7 +23,28 @@ "Test_TC_OCC_2_4_Simulated", "Test_TC_ULABEL_3_1_Simulated", "Test_TC_FLABEL_3_1_Simulated", - "Test_TC_LTIME_1_1_Simulated" + "Test_TC_LTIME_1_1_Simulated", + "Test_TC_ILL_3_1_Simulated", + "Test_TC_DGSW_3_2_Simulated", + "Test_TC_DGETH_3_2_Simulated", + "Test_TC_DGWIFI_3_2_Simulated", + "Test_TC_WNCV_6_1_Simulated", + "Test_TC_WNCV_7_1_Simulated", + "Test_TC_CC_3_4_Simulated", + "Test_TC_CC_4_5_Simulated", + "Test_TC_CC_5_4_Simulated", + "Test_TC_CC_6_4_Simulated", + "Test_TC_CC_7_5_Simulated", + "Test_TC_CC_9_4_Simulated", + "Test_TC_DGTHREAD_3_2_Simulated", + "Test_TC_DGTHREAD_3_3_Simulated", + "Test_TC_DGTHREAD_3_4_Simulated", + "Test_TC_LVL_2_3_Simulated", + "Test_TC_OO_3_1_Simulated", + "Test_TC_OO_3_2_Simulated", + "Test_TC_TSUIC_3_1_Simulated", + "Test_TC_PCC_3_1_Simulated", + "Test_TC_TMP_3_1_Simulated" ], "collection": ["Test"] } diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index 1865188c3118af..2d73876882f721 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -369,6 +369,129 @@ server cluster OnOff = 6 { command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } +/** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ +client cluster LevelControl = 8 { + enum MoveMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + enum StepMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + bitmap Feature : BITMAP32 { + kOnOff = 0x1; + kLighting = 0x2; + kFrequency = 0x4; + } + + bitmap LevelControlOptions : BITMAP8 { + kExecuteIfOff = 0x1; + kCoupleColorTempToLevel = 0x2; + } + + readonly attribute nullable int8u currentLevel = 0; + readonly attribute optional int16u remainingTime = 1; + readonly attribute optional int8u minLevel = 2; + readonly attribute optional int8u maxLevel = 3; + readonly attribute optional int16u currentFrequency = 4; + readonly attribute optional int16u minFrequency = 5; + readonly attribute optional int16u maxFrequency = 6; + attribute LevelControlOptions options = 15; + attribute optional int16u onOffTransitionTime = 16; + attribute nullable int8u onLevel = 17; + attribute optional nullable int16u onTransitionTime = 18; + attribute optional nullable int16u offTransitionTime = 19; + attribute optional nullable int8u defaultMoveRate = 20; + attribute access(write: manage) optional nullable int8u startUpCurrentLevel = 16384; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToLevelRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToLevelWithOnOffRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveWithOnOffRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepWithOnOffRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopWithOnOffRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToClosestFrequencyRequest { + INT16U frequency = 0; + } + + /** Command description for MoveToLevel */ + command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; + /** Command description for Move */ + command Move(MoveRequest): DefaultSuccess = 1; + /** Command description for Step */ + command Step(StepRequest): DefaultSuccess = 2; + /** Command description for Stop */ + command Stop(StopRequest): DefaultSuccess = 3; + /** Command description for MoveToLevelWithOnOff */ + command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4; + /** Command description for MoveWithOnOff */ + command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; + /** Command description for StepWithOnOff */ + command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; + /** Command description for StopWithOnOff */ + command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7; + /** Change the currrent frequency to the provided one, or a close + approximation if the exact provided one is not possible. */ + command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8; +} + /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { enum MoveMode : ENUM8 { @@ -394,8 +517,17 @@ server cluster LevelControl = 8 { readonly attribute nullable int8u currentLevel = 0; readonly attribute int16u remainingTime = 1; + readonly attribute int8u minLevel = 2; + readonly attribute int8u maxLevel = 3; + readonly attribute int16u currentFrequency = 4; + readonly attribute int16u minFrequency = 5; + readonly attribute int16u maxFrequency = 6; attribute LevelControlOptions options = 15; + attribute int16u onOffTransitionTime = 16; attribute nullable int8u onLevel = 17; + attribute nullable int16u onTransitionTime = 18; + attribute nullable int16u offTransitionTime = 19; + attribute nullable int8u defaultMoveRate = 20; attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; @@ -1524,6 +1656,333 @@ server cluster SoftwareDiagnostics = 52 { command ResetWatermarks(): DefaultSuccess = 0; } +/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ +client cluster ThreadNetworkDiagnostics = 53 { + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + bitmap Feature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + int16u flags = 1; + } + + info event ConnectionStatus = 0 { + ConnectionStatusEnum connectionStatus = 0; + } + + info event NetworkFaultChange = 1 { + NetworkFault current[] = 0; + NetworkFault previous[] = 1; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute optional int64u overrunCount = 6; + readonly attribute NeighborTable neighborTable[] = 7; + readonly attribute RouteTable routeTable[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute optional int16u detachedRoleCount = 14; + readonly attribute optional int16u childRoleCount = 15; + readonly attribute optional int16u routerRoleCount = 16; + readonly attribute optional int16u leaderRoleCount = 17; + readonly attribute optional int16u attachAttemptCount = 18; + readonly attribute optional int16u partitionIdChangeCount = 19; + readonly attribute optional int16u betterPartitionAttachAttemptCount = 20; + readonly attribute optional int16u parentChangeCount = 21; + readonly attribute optional int32u txTotalCount = 22; + readonly attribute optional int32u txUnicastCount = 23; + readonly attribute optional int32u txBroadcastCount = 24; + readonly attribute optional int32u txAckRequestedCount = 25; + readonly attribute optional int32u txAckedCount = 26; + readonly attribute optional int32u txNoAckRequestedCount = 27; + readonly attribute optional int32u txDataCount = 28; + readonly attribute optional int32u txDataPollCount = 29; + readonly attribute optional int32u txBeaconCount = 30; + readonly attribute optional int32u txBeaconRequestCount = 31; + readonly attribute optional int32u txOtherCount = 32; + readonly attribute optional int32u txRetryCount = 33; + readonly attribute optional int32u txDirectMaxRetryExpiryCount = 34; + readonly attribute optional int32u txIndirectMaxRetryExpiryCount = 35; + readonly attribute optional int32u txErrCcaCount = 36; + readonly attribute optional int32u txErrAbortCount = 37; + readonly attribute optional int32u txErrBusyChannelCount = 38; + readonly attribute optional int32u rxTotalCount = 39; + readonly attribute optional int32u rxUnicastCount = 40; + readonly attribute optional int32u rxBroadcastCount = 41; + readonly attribute optional int32u rxDataCount = 42; + readonly attribute optional int32u rxDataPollCount = 43; + readonly attribute optional int32u rxBeaconCount = 44; + readonly attribute optional int32u rxBeaconRequestCount = 45; + readonly attribute optional int32u rxOtherCount = 46; + readonly attribute optional int32u rxAddressFilteredCount = 47; + readonly attribute optional int32u rxDestAddrFilteredCount = 48; + readonly attribute optional int32u rxDuplicatedCount = 49; + readonly attribute optional int32u rxErrNoFrameCount = 50; + readonly attribute optional int32u rxErrUnknownNeighborCount = 51; + readonly attribute optional int32u rxErrInvalidSrcAddrCount = 52; + readonly attribute optional int32u rxErrSecCount = 53; + readonly attribute optional int32u rxErrFcsCount = 54; + readonly attribute optional int32u rxErrOtherCount = 55; + readonly attribute optional nullable int64u activeTimestamp = 56; + readonly attribute optional nullable int64u pendingTimestamp = 57; + readonly attribute optional nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelPage0Mask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + /** Reception of this command SHALL reset the OverrunCount attributes to 0 */ + command ResetCounts(): DefaultSuccess = 0; +} + +/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ +server cluster ThreadNetworkDiagnostics = 53 { + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + bitmap Feature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + int16u flags = 1; + } + + info event ConnectionStatus = 0 { + ConnectionStatusEnum connectionStatus = 0; + } + + info event NetworkFaultChange = 1 { + NetworkFault current[] = 0; + NetworkFault previous[] = 1; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute int64u overrunCount = 6; + readonly attribute NeighborTable neighborTable[] = 7; + readonly attribute RouteTable routeTable[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute int16u detachedRoleCount = 14; + readonly attribute int16u childRoleCount = 15; + readonly attribute int16u routerRoleCount = 16; + readonly attribute int16u leaderRoleCount = 17; + readonly attribute int16u attachAttemptCount = 18; + readonly attribute int16u partitionIdChangeCount = 19; + readonly attribute int16u betterPartitionAttachAttemptCount = 20; + readonly attribute int16u parentChangeCount = 21; + readonly attribute int32u txTotalCount = 22; + readonly attribute int32u txUnicastCount = 23; + readonly attribute int32u txBroadcastCount = 24; + readonly attribute int32u txAckRequestedCount = 25; + readonly attribute int32u txAckedCount = 26; + readonly attribute int32u txNoAckRequestedCount = 27; + readonly attribute int32u txDataCount = 28; + readonly attribute int32u txDataPollCount = 29; + readonly attribute int32u txBeaconCount = 30; + readonly attribute int32u txBeaconRequestCount = 31; + readonly attribute int32u txOtherCount = 32; + readonly attribute int32u txRetryCount = 33; + readonly attribute int32u txDirectMaxRetryExpiryCount = 34; + readonly attribute int32u txIndirectMaxRetryExpiryCount = 35; + readonly attribute int32u txErrCcaCount = 36; + readonly attribute int32u txErrAbortCount = 37; + readonly attribute int32u txErrBusyChannelCount = 38; + readonly attribute int32u rxTotalCount = 39; + readonly attribute int32u rxUnicastCount = 40; + readonly attribute int32u rxBroadcastCount = 41; + readonly attribute int32u rxDataCount = 42; + readonly attribute int32u rxDataPollCount = 43; + readonly attribute int32u rxBeaconCount = 44; + readonly attribute int32u rxBeaconRequestCount = 45; + readonly attribute int32u rxOtherCount = 46; + readonly attribute int32u rxAddressFilteredCount = 47; + readonly attribute int32u rxDestAddrFilteredCount = 48; + readonly attribute int32u rxDuplicatedCount = 49; + readonly attribute int32u rxErrNoFrameCount = 50; + readonly attribute int32u rxErrUnknownNeighborCount = 51; + readonly attribute int32u rxErrInvalidSrcAddrCount = 52; + readonly attribute int32u rxErrSecCount = 53; + readonly attribute int32u rxErrFcsCount = 54; + readonly attribute int32u rxErrOtherCount = 55; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelPage0Mask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command ResetCounts(): DefaultSuccess = 0; +} + /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { enum AssociationFailureCauseEnum : ENUM8 { @@ -1636,6 +2095,86 @@ server cluster EthernetNetworkDiagnostics = 55 { command ResetCounts(): DefaultSuccess = 0; } +/** This Cluster serves two purposes towards a Node communicating with a Bridge: indicate that the functionality on + the Endpoint where it is placed (and its Parts) is bridged from a non-CHIP technology; and provide a centralized + collection of attributes that the Node MAY collect to aid in conveying information regarding the Bridged Device to a user, + such as the vendor name, the model name, or user-assigned name. */ +server cluster BridgedDeviceBasicInformation = 57 { + enum ColorEnum : ENUM8 { + kBlack = 0; + kNavy = 1; + kGreen = 2; + kTeal = 3; + kMaroon = 4; + kPurple = 5; + kOlive = 6; + kGray = 7; + kBlue = 8; + kLime = 9; + kAqua = 10; + kRed = 11; + kFuchsia = 12; + kYellow = 13; + kWhite = 14; + kNickel = 15; + kChrome = 16; + kBrass = 17; + kCopper = 18; + kSilver = 19; + kGold = 20; + } + + enum ProductFinishEnum : ENUM8 { + kOther = 0; + kMatte = 1; + kSatin = 2; + kPolished = 3; + kRugged = 4; + kFabric = 5; + } + + struct ProductAppearanceStruct { + ProductFinishEnum finish = 0; + nullable ColorEnum primaryColor = 1; + } + + critical event StartUp = 0 { + INT32U softwareVersion = 0; + } + + critical event ShutDown = 1 { + } + + info event Leave = 2 { + } + + info event ReachableChanged = 3 { + boolean reachableNewValue = 0; + } + + readonly attribute char_string<32> vendorName = 1; + readonly attribute vendor_id vendorID = 2; + readonly attribute char_string<32> productName = 3; + attribute char_string<32> nodeLabel = 5; + readonly attribute int16u hardwareVersion = 7; + readonly attribute char_string<64> hardwareVersionString = 8; + readonly attribute int32u softwareVersion = 9; + readonly attribute char_string<64> softwareVersionString = 10; + readonly attribute char_string<16> manufacturingDate = 11; + readonly attribute char_string<32> partNumber = 12; + readonly attribute long_char_string<256> productURL = 13; + readonly attribute char_string<64> productLabel = 14; + readonly attribute char_string<32> serialNumber = 15; + readonly attribute char_string<32> uniqueID = 18; + readonly attribute ProductAppearanceStruct productAppearance = 20; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + /** This cluster exposes interactions with a switch device, for the purpose of using those interactions by other devices. Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ @@ -2161,34 +2700,1094 @@ server cluster ModeSelect = 80 { command ChangeToMode(ChangeToModeRequest): DefaultSuccess = 0; } -/** Provides an interface for controlling and adjusting automatic window coverings. */ -server cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { - kRollerShade = 0; - kRomanShade = 1; - kBalloonShade = 2; - kWovenWood = 3; - kPleatedShade = 4; - kCellularShade = 5; - kLayeredShade = 6; - kLayeredShade2D = 7; - kSheerShade = 8; - kTiltOnlyInteriorBlind = 9; - kInteriorBlind = 10; - kVerticalBlindStripCurtain = 11; - kInteriorVenetianBlind = 12; - kExteriorVenetianBlind = 13; - kLateralLeftCurtain = 14; - kLateralRightCurtain = 15; - kCentralCurtain = 16; - kRollerShutter = 17; - kExteriorVerticalScreen = 18; - kAwningTerracePatio = 19; - kAwningVerticalScreen = 20; - kTiltOnlyPergola = 21; - kSwingingShutter = 22; - kSlidingShutter = 23; - kUnknown = 255; +/** An interface to a generic way to secure a door */ +client cluster DoorLock = 257 { + enum AlarmCodeEnum : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum CredentialRuleEnum : ENUM8 { + kSingle = 0; + kDual = 1; + kTri = 2; + } + + enum CredentialTypeEnum : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DataOperationTypeEnum : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + kUnlatched = 3; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + kEurocylinder = 11; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + enum DoorStateEnum : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum LockDataTypeEnum : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + kFingerVein = 9; + kFace = 10; + } + + enum LockOperationTypeEnum : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + kUnlatch = 4; + } + + enum OperatingModeEnum : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum OperationErrorEnum : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum OperationSourceEnum : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum UserStatusEnum : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum UserTypeEnum : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + bitmap DaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap Feature : BITMAP32 { + kPinCredential = 0x1; + kRfidCredential = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kWeekDayAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOverTheAirAccess = 0x80; + kUser = 0x100; + kNotification = 0x200; + kYearDayAccessSchedules = 0x400; + kHolidaySchedules = 0x800; + kUnbolt = 0x1000; + } + + struct CredentialStruct { + CredentialTypeEnum credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + AlarmCodeEnum alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DoorStateEnum doorState = 0; + } + + critical event LockOperation = 2 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable CredentialStruct credentials[] = 5; + } + + critical event LockOperationError = 3 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + OperationErrorEnum operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable CredentialStruct credentials[] = 6; + } + + info event LockUserChange = 4 { + LockDataTypeEnum lockDataType = 0; + DataOperationTypeEnum dataOperationType = 1; + OperationSourceEnum operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + readonly attribute optional nullable DoorStateEnum doorState = 3; + attribute access(write: manage) optional int32u doorOpenEvents = 4; + attribute access(write: manage) optional int32u doorClosedEvents = 5; + attribute access(write: manage) optional int16u openPeriod = 6; + readonly attribute optional int16u numberOfTotalUsersSupported = 17; + readonly attribute optional int16u numberOfPINUsersSupported = 18; + readonly attribute optional int16u numberOfRFIDUsersSupported = 19; + readonly attribute optional int8u numberOfWeekDaySchedulesSupportedPerUser = 20; + readonly attribute optional int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute optional int8u numberOfHolidaySchedulesSupported = 22; + readonly attribute optional int8u maxPINCodeLength = 23; + readonly attribute optional int8u minPINCodeLength = 24; + readonly attribute optional int8u maxRFIDCodeLength = 25; + readonly attribute optional int8u minRFIDCodeLength = 26; + readonly attribute optional DlCredentialRuleMask credentialRulesSupport = 27; + readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28; + attribute access(write: manage) optional char_string<3> language = 33; + attribute access(write: manage) optional int8u LEDSettings = 34; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) optional int8u soundVolume = 36; + attribute access(write: manage) OperatingModeEnum operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute optional DlDefaultConfigurationRegister defaultConfigurationRegister = 39; + attribute access(write: administer) optional boolean enableLocalProgramming = 40; + attribute access(write: manage) optional boolean enableOneTouchLocking = 41; + attribute access(write: manage) optional boolean enableInsideStatusLED = 42; + attribute access(write: manage) optional boolean enablePrivacyModeButton = 43; + attribute access(write: administer) optional DlLocalProgrammingFeatures localProgrammingFeatures = 44; + attribute access(write: administer) optional int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) optional int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) optional boolean sendPINOverTheAir = 50; + attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; + attribute access(write: administer) optional int16u expiringUserTimeout = 53; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockWithTimeoutRequest { + INT16U timeout = 0; + optional OCTET_STRING PINCode = 1; + } + + request struct SetWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DaysMaskMap daysMask = 2; + INT8U startHour = 3; + INT8U startMinute = 4; + INT8U endHour = 5; + INT8U endMinute = 6; + } + + request struct GetWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + } + + response struct GetWeekDayScheduleResponse = 12 { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional DaysMaskMap daysMask = 3; + optional INT8U startHour = 4; + optional INT8U startMinute = 5; + optional INT8U endHour = 6; + optional INT8U endMinute = 7; + } + + request struct ClearWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + } + + request struct SetYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + epoch_s localStartTime = 2; + epoch_s localEndTime = 3; + } + + request struct GetYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + } + + response struct GetYearDayScheduleResponse = 15 { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional epoch_s localStartTime = 3; + optional epoch_s localEndTime = 4; + } + + request struct ClearYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + } + + request struct SetHolidayScheduleRequest { + INT8U holidayIndex = 0; + epoch_s localStartTime = 1; + epoch_s localEndTime = 2; + OperatingModeEnum operatingMode = 3; + } + + request struct GetHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + response struct GetHolidayScheduleResponse = 18 { + INT8U holidayIndex = 0; + DlStatus status = 1; + optional epoch_s localStartTime = 2; + optional epoch_s localEndTime = 3; + optional OperatingModeEnum operatingMode = 4; + } + + request struct ClearHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + request struct SetUserRequest { + DataOperationTypeEnum operationType = 0; + INT16U userIndex = 1; + nullable CHAR_STRING userName = 2; + nullable INT32U userUniqueID = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + nullable CredentialRuleEnum credentialRule = 6; + } + + request struct GetUserRequest { + INT16U userIndex = 0; + } + + response struct GetUserResponse = 28 { + INT16U userIndex = 0; + nullable CHAR_STRING userName = 1; + nullable INT32U userUniqueID = 2; + nullable UserStatusEnum userStatus = 3; + nullable UserTypeEnum userType = 4; + nullable CredentialRuleEnum credentialRule = 5; + nullable CredentialStruct credentials[] = 6; + nullable fabric_idx creatorFabricIndex = 7; + nullable fabric_idx lastModifiedFabricIndex = 8; + nullable INT16U nextUserIndex = 9; + } + + request struct ClearUserRequest { + INT16U userIndex = 0; + } + + request struct SetCredentialRequest { + DataOperationTypeEnum operationType = 0; + CredentialStruct credential = 1; + LONG_OCTET_STRING credentialData = 2; + nullable INT16U userIndex = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + } + + response struct SetCredentialResponse = 35 { + DlStatus status = 0; + nullable INT16U userIndex = 1; + nullable INT16U nextCredentialIndex = 2; + } + + request struct GetCredentialStatusRequest { + CredentialStruct credential = 0; + } + + response struct GetCredentialStatusResponse = 37 { + boolean credentialExists = 0; + nullable INT16U userIndex = 1; + nullable fabric_idx creatorFabricIndex = 2; + nullable fabric_idx lastModifiedFabricIndex = 3; + nullable INT16U nextCredentialIndex = 4; + } + + request struct ClearCredentialRequest { + nullable CredentialStruct credential = 0; + } + + request struct UnboltDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + /** This command causes the lock device to lock the door. */ + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + /** This command causes the lock device to unlock the door. */ + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; + /** This command causes the lock device to unlock the door with a timeout parameter. */ + timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; + /** Set a weekly repeating schedule for a specified user. */ + command access(invoke: administer) SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; + /** Retrieve the specific weekly schedule for the specific user. */ + command access(invoke: administer) GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; + /** Clear the specific weekly schedule or all weekly schedules for the specific user. */ + command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; + /** Set a time-specific schedule ID for a specified user. */ + command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; + /** Returns the year day schedule data for the specified schedule and user indexes. */ + command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; + /** Clears the specific year day schedule or all year day schedules for the specific user. */ + command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; + /** Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. */ + command access(invoke: administer) SetHolidaySchedule(SetHolidayScheduleRequest): DefaultSuccess = 17; + /** Get the holiday schedule for the specified index. */ + command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; + /** Clears the holiday schedule or all holiday schedules. */ + command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; + /** Set User into the lock. */ + timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; + /** Retrieve User. */ + command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; + /** Clears a User or all Users. */ + timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; + /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ + timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; + /** Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index. */ + command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; + /** Clear one, one type, or all credentials except ProgrammingPIN credential. */ + timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; + /** This command causes the lock device to unlock the door without pulling the latch. */ + timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; +} + +/** An interface to a generic way to secure a door */ +server cluster DoorLock = 257 { + enum AlarmCodeEnum : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum CredentialRuleEnum : ENUM8 { + kSingle = 0; + kDual = 1; + kTri = 2; + } + + enum CredentialTypeEnum : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DataOperationTypeEnum : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + kUnlatched = 3; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + kEurocylinder = 11; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + enum DoorStateEnum : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum LockDataTypeEnum : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + kFingerVein = 9; + kFace = 10; + } + + enum LockOperationTypeEnum : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + kUnlatch = 4; + } + + enum OperatingModeEnum : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum OperationErrorEnum : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum OperationSourceEnum : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum UserStatusEnum : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum UserTypeEnum : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + bitmap DaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap Feature : BITMAP32 { + kPinCredential = 0x1; + kRfidCredential = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kWeekDayAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOverTheAirAccess = 0x80; + kUser = 0x100; + kNotification = 0x200; + kYearDayAccessSchedules = 0x400; + kHolidaySchedules = 0x800; + kUnbolt = 0x1000; + } + + struct CredentialStruct { + CredentialTypeEnum credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + AlarmCodeEnum alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DoorStateEnum doorState = 0; + } + + critical event LockOperation = 2 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable CredentialStruct credentials[] = 5; + } + + critical event LockOperationError = 3 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + OperationErrorEnum operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable CredentialStruct credentials[] = 6; + } + + info event LockUserChange = 4 { + LockDataTypeEnum lockDataType = 0; + DataOperationTypeEnum dataOperationType = 1; + OperationSourceEnum operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + readonly attribute nullable DoorStateEnum doorState = 3; + attribute access(write: manage) int32u doorOpenEvents = 4; + attribute access(write: manage) int32u doorClosedEvents = 5; + attribute access(write: manage) int16u openPeriod = 6; + readonly attribute int16u numberOfTotalUsersSupported = 17; + readonly attribute int16u numberOfPINUsersSupported = 18; + readonly attribute int16u numberOfRFIDUsersSupported = 19; + readonly attribute int8u numberOfWeekDaySchedulesSupportedPerUser = 20; + readonly attribute int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute int8u numberOfHolidaySchedulesSupported = 22; + readonly attribute int8u maxPINCodeLength = 23; + readonly attribute int8u minPINCodeLength = 24; + readonly attribute int8u maxRFIDCodeLength = 25; + readonly attribute int8u minRFIDCodeLength = 26; + readonly attribute DlCredentialRuleMask credentialRulesSupport = 27; + readonly attribute int8u numberOfCredentialsSupportedPerUser = 28; + attribute access(write: manage) char_string<3> language = 33; + attribute access(write: manage) int8u LEDSettings = 34; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) int8u soundVolume = 36; + attribute access(write: manage) OperatingModeEnum operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute DlDefaultConfigurationRegister defaultConfigurationRegister = 39; + attribute access(write: administer) boolean enableLocalProgramming = 40; + attribute access(write: manage) boolean enableOneTouchLocking = 41; + attribute access(write: manage) boolean enableInsideStatusLED = 42; + attribute access(write: manage) boolean enablePrivacyModeButton = 43; + attribute access(write: administer) DlLocalProgrammingFeatures localProgrammingFeatures = 44; + attribute access(write: administer) int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) boolean sendPINOverTheAir = 50; + attribute access(write: administer) boolean requirePINforRemoteOperation = 51; + attribute access(write: administer) int16u expiringUserTimeout = 53; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockWithTimeoutRequest { + INT16U timeout = 0; + optional OCTET_STRING PINCode = 1; + } + + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; + timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; +} + +/** Provides an interface for controlling and adjusting automatic window coverings. */ +server cluster WindowCovering = 258 { + enum EndProductType : ENUM8 { + kRollerShade = 0; + kRomanShade = 1; + kBalloonShade = 2; + kWovenWood = 3; + kPleatedShade = 4; + kCellularShade = 5; + kLayeredShade = 6; + kLayeredShade2D = 7; + kSheerShade = 8; + kTiltOnlyInteriorBlind = 9; + kInteriorBlind = 10; + kVerticalBlindStripCurtain = 11; + kInteriorVenetianBlind = 12; + kExteriorVenetianBlind = 13; + kLateralLeftCurtain = 14; + kLateralRightCurtain = 15; + kCentralCurtain = 16; + kRollerShutter = 17; + kExteriorVerticalScreen = 18; + kAwningTerracePatio = 19; + kAwningVerticalScreen = 20; + kTiltOnlyPergola = 21; + kSwingingShutter = 22; + kSlidingShutter = 23; + kUnknown = 255; } enum Type : ENUM8 { @@ -2423,6 +4022,163 @@ server cluster PumpConfigurationAndControl = 512 { readonly attribute int16u clusterRevision = 65533; } +/** An interface for configuring and controlling the functionality of a thermostat. */ +client cluster Thermostat = 513 { + enum SetpointAdjustMode : ENUM8 { + kHeat = 0; + kCool = 1; + kBoth = 2; + } + + enum ThermostatControlSequence : ENUM8 { + kCoolingOnly = 0; + kCoolingWithReheat = 1; + kHeatingOnly = 2; + kHeatingWithReheat = 3; + kCoolingAndHeating = 4; + kCoolingAndHeatingWithReheat = 5; + } + + enum ThermostatRunningMode : ENUM8 { + kOff = 0; + kCool = 3; + kHeat = 4; + } + + enum ThermostatSystemMode : ENUM8 { + kOff = 0; + kAuto = 1; + kCool = 3; + kHeat = 4; + kEmergencyHeat = 5; + kPrecooling = 6; + kFanOnly = 7; + kDry = 8; + kSleep = 9; + } + + bitmap DayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + kAway = 0x80; + } + + bitmap Feature : BITMAP32 { + kHeating = 0x1; + kCooling = 0x2; + kOccupancy = 0x4; + kScheduleConfiguration = 0x8; + kSetback = 0x10; + kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; + } + + bitmap ModeForSequence : BITMAP8 { + kHeatSetpointPresent = 0x1; + kCoolSetpointPresent = 0x2; + } + + struct ThermostatScheduleTransition { + int16u transitionTime = 0; + nullable int16s heatSetpoint = 1; + nullable int16s coolSetpoint = 2; + } + + readonly attribute nullable int16s localTemperature = 0; + readonly attribute optional nullable int16s outdoorTemperature = 1; + readonly attribute optional bitmap8 occupancy = 2; + readonly attribute optional int16s absMinHeatSetpointLimit = 3; + readonly attribute optional int16s absMaxHeatSetpointLimit = 4; + readonly attribute optional int16s absMinCoolSetpointLimit = 5; + readonly attribute optional int16s absMaxCoolSetpointLimit = 6; + readonly attribute optional int8u PICoolingDemand = 7; + readonly attribute optional int8u PIHeatingDemand = 8; + attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9; + attribute access(write: manage) optional int8s localTemperatureCalibration = 16; + attribute optional int16s occupiedCoolingSetpoint = 17; + attribute optional int16s occupiedHeatingSetpoint = 18; + attribute optional int16s unoccupiedCoolingSetpoint = 19; + attribute optional int16s unoccupiedHeatingSetpoint = 20; + attribute access(write: manage) optional int16s minHeatSetpointLimit = 21; + attribute access(write: manage) optional int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) optional int16s minCoolSetpointLimit = 23; + attribute access(write: manage) optional int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) optional int8s minSetpointDeadBand = 25; + attribute access(write: manage) optional bitmap8 remoteSensing = 26; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; + readonly attribute optional enum8 thermostatRunningMode = 30; + readonly attribute optional enum8 startOfWeek = 32; + readonly attribute optional int8u numberOfWeeklyTransitions = 33; + readonly attribute optional int8u numberOfDailyTransitions = 34; + attribute access(write: manage) optional enum8 temperatureSetpointHold = 35; + attribute access(write: manage) optional nullable int16u temperatureSetpointHoldDuration = 36; + attribute access(write: manage) optional bitmap8 thermostatProgrammingOperationMode = 37; + readonly attribute optional bitmap16 thermostatRunningState = 41; + readonly attribute optional enum8 setpointChangeSource = 48; + readonly attribute optional nullable int16s setpointChangeAmount = 49; + readonly attribute optional epoch_s setpointChangeSourceTimestamp = 50; + attribute access(write: manage) optional nullable int8u occupiedSetback = 52; + readonly attribute optional nullable int8u occupiedSetbackMin = 53; + readonly attribute optional nullable int8u occupiedSetbackMax = 54; + attribute access(write: manage) optional nullable int8u unoccupiedSetback = 55; + readonly attribute optional nullable int8u unoccupiedSetbackMin = 56; + readonly attribute optional nullable int8u unoccupiedSetbackMax = 57; + attribute access(write: manage) optional int8u emergencyHeatDelta = 58; + attribute access(write: manage) optional enum8 ACType = 64; + attribute access(write: manage) optional int16u ACCapacity = 65; + attribute access(write: manage) optional enum8 ACRefrigerantType = 66; + attribute access(write: manage) optional enum8 ACCompressorType = 67; + attribute access(write: manage) optional bitmap32 ACErrorCode = 68; + attribute access(write: manage) optional enum8 ACLouverPosition = 69; + readonly attribute optional nullable int16s ACCoilTemperature = 70; + attribute access(write: manage) optional enum8 ACCapacityformat = 71; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SetpointRaiseLowerRequest { + SetpointAdjustMode mode = 0; + INT8S amount = 1; + } + + response struct GetWeeklyScheduleResponse = 0 { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct SetWeeklyScheduleRequest { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct GetWeeklyScheduleRequest { + DayOfWeek daysToReturn = 0; + ModeForSequence modeToReturn = 1; + } + + /** Command description for SetpointRaiseLower */ + command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; + /** Command description for SetWeeklySchedule */ + command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; + /** Command description for GetWeeklySchedule */ + command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; + /** The Clear Weekly Schedule command is used to clear the weekly schedule. */ + command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3; +} + /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { enum SetpointAdjustMode : ENUM8 { @@ -2491,21 +4247,53 @@ server cluster Thermostat = 513 { } readonly attribute nullable int16s localTemperature = 0; + readonly attribute nullable int16s outdoorTemperature = 1; + readonly attribute bitmap8 occupancy = 2; readonly attribute int16s absMinHeatSetpointLimit = 3; + readonly attribute int16s absMaxHeatSetpointLimit = 4; readonly attribute int16s absMinCoolSetpointLimit = 5; readonly attribute int16s absMaxCoolSetpointLimit = 6; + readonly attribute int8u PICoolingDemand = 7; + readonly attribute int8u PIHeatingDemand = 8; + attribute access(write: manage) bitmap8 HVACSystemTypeConfiguration = 9; + attribute access(write: manage) int8s localTemperatureCalibration = 16; attribute int16s occupiedCoolingSetpoint = 17; attribute int16s occupiedHeatingSetpoint = 18; + attribute int16s unoccupiedCoolingSetpoint = 19; + attribute int16s unoccupiedHeatingSetpoint = 20; attribute access(write: manage) int16s minHeatSetpointLimit = 21; attribute access(write: manage) int16s maxHeatSetpointLimit = 22; attribute access(write: manage) int16s minCoolSetpointLimit = 23; attribute access(write: manage) int16s maxCoolSetpointLimit = 24; attribute access(write: manage) int8s minSetpointDeadBand = 25; + attribute access(write: manage) bitmap8 remoteSensing = 26; attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; attribute access(write: manage) enum8 systemMode = 28; + readonly attribute enum8 thermostatRunningMode = 30; readonly attribute enum8 startOfWeek = 32; readonly attribute int8u numberOfWeeklyTransitions = 33; readonly attribute int8u numberOfDailyTransitions = 34; + attribute access(write: manage) enum8 temperatureSetpointHold = 35; + attribute access(write: manage) nullable int16u temperatureSetpointHoldDuration = 36; + attribute access(write: manage) bitmap8 thermostatProgrammingOperationMode = 37; + readonly attribute bitmap16 thermostatRunningState = 41; + readonly attribute enum8 setpointChangeSource = 48; + readonly attribute nullable int16s setpointChangeAmount = 49; + readonly attribute epoch_s setpointChangeSourceTimestamp = 50; + attribute access(write: manage) nullable int8u occupiedSetback = 52; + readonly attribute nullable int8u occupiedSetbackMin = 53; + readonly attribute nullable int8u occupiedSetbackMax = 54; + attribute access(write: manage) nullable int8u unoccupiedSetback = 55; + readonly attribute nullable int8u unoccupiedSetbackMin = 56; + readonly attribute nullable int8u unoccupiedSetbackMax = 57; + attribute access(write: manage) int8u emergencyHeatDelta = 58; + attribute access(write: manage) enum8 ACType = 64; + attribute access(write: manage) int16u ACCapacity = 65; + attribute access(write: manage) enum8 ACRefrigerantType = 66; + attribute access(write: manage) enum8 ACCompressorType = 67; + attribute access(write: manage) enum8 ACLouverPosition = 69; + readonly attribute nullable int16s ACCoilTemperature = 70; + attribute access(write: manage) enum8 ACCapacityformat = 71; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2540,6 +4328,324 @@ server cluster ThermostatUserInterfaceConfiguration = 516 { readonly attribute int16u clusterRevision = 65533; } +/** Attributes and commands for controlling the color properties of a color-capable light. */ +client cluster ColorControl = 768 { + enum ColorLoopAction : ENUM8 { + kDeactivate = 0; + kActivateFromColorLoopStartEnhancedHue = 1; + kActivateFromEnhancedCurrentHue = 2; + } + + enum ColorLoopDirection : ENUM8 { + kDecrementHue = 0; + kIncrementHue = 1; + } + + enum ColorMode : ENUM8 { + kCurrentHueAndCurrentSaturation = 0; + kCurrentXAndCurrentY = 1; + kColorTemperature = 2; + } + + enum HueDirection : ENUM8 { + kShortestDistance = 0; + kLongestDistance = 1; + kUp = 2; + kDown = 3; + } + + enum HueMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum HueStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + enum SaturationMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum SaturationStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + bitmap ColorCapabilities : BITMAP16 { + kHueSaturationSupported = 0x1; + kEnhancedHueSupported = 0x2; + kColorLoopSupported = 0x4; + kXYAttributesSupported = 0x8; + kColorTemperatureSupported = 0x10; + } + + bitmap ColorLoopUpdateFlags : BITMAP8 { + kUpdateAction = 0x1; + kUpdateDirection = 0x2; + kUpdateTime = 0x4; + kUpdateStartHue = 0x8; + } + + bitmap Feature : BITMAP32 { + kHueAndSaturation = 0x1; + kEnhancedHue = 0x2; + kColorLoop = 0x4; + kXy = 0x8; + kColorTemperature = 0x10; + } + + readonly attribute optional int8u currentHue = 0; + readonly attribute optional int8u currentSaturation = 1; + readonly attribute optional int16u remainingTime = 2; + readonly attribute optional int16u currentX = 3; + readonly attribute optional int16u currentY = 4; + readonly attribute optional enum8 driftCompensation = 5; + readonly attribute optional char_string<254> compensationText = 6; + readonly attribute optional int16u colorTemperatureMireds = 7; + readonly attribute enum8 colorMode = 8; + attribute bitmap8 options = 15; + readonly attribute nullable int8u numberOfPrimaries = 16; + readonly attribute optional int16u primary1X = 17; + readonly attribute optional int16u primary1Y = 18; + readonly attribute optional nullable int8u primary1Intensity = 19; + readonly attribute optional int16u primary2X = 21; + readonly attribute optional int16u primary2Y = 22; + readonly attribute optional nullable int8u primary2Intensity = 23; + readonly attribute optional int16u primary3X = 25; + readonly attribute optional int16u primary3Y = 26; + readonly attribute optional nullable int8u primary3Intensity = 27; + readonly attribute optional int16u primary4X = 32; + readonly attribute optional int16u primary4Y = 33; + readonly attribute optional nullable int8u primary4Intensity = 34; + readonly attribute optional int16u primary5X = 36; + readonly attribute optional int16u primary5Y = 37; + readonly attribute optional nullable int8u primary5Intensity = 38; + readonly attribute optional int16u primary6X = 40; + readonly attribute optional int16u primary6Y = 41; + readonly attribute optional nullable int8u primary6Intensity = 42; + attribute access(write: manage) optional int16u whitePointX = 48; + attribute access(write: manage) optional int16u whitePointY = 49; + attribute access(write: manage) optional int16u colorPointRX = 50; + attribute access(write: manage) optional int16u colorPointRY = 51; + attribute access(write: manage) optional nullable int8u colorPointRIntensity = 52; + attribute access(write: manage) optional int16u colorPointGX = 54; + attribute access(write: manage) optional int16u colorPointGY = 55; + attribute access(write: manage) optional nullable int8u colorPointGIntensity = 56; + attribute access(write: manage) optional int16u colorPointBX = 58; + attribute access(write: manage) optional int16u colorPointBY = 59; + attribute access(write: manage) optional nullable int8u colorPointBIntensity = 60; + readonly attribute optional int16u enhancedCurrentHue = 16384; + readonly attribute enum8 enhancedColorMode = 16385; + readonly attribute optional int8u colorLoopActive = 16386; + readonly attribute optional int8u colorLoopDirection = 16387; + readonly attribute optional int16u colorLoopTime = 16388; + readonly attribute optional int16u colorLoopStartEnhancedHue = 16389; + readonly attribute optional int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute optional int16u colorTempPhysicalMinMireds = 16395; + readonly attribute optional int16u colorTempPhysicalMaxMireds = 16396; + readonly attribute optional int16u coupleColorTempToLevelMinMireds = 16397; + attribute access(write: manage) optional nullable int16u startUpColorTemperatureMireds = 16400; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorRequest { + INT16U colorX = 0; + INT16U colorY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveColorRequest { + INT16S rateX = 0; + INT16S rateY = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepColorRequest { + INT16S stepX = 0; + INT16S stepY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + /** Move to specified hue. */ + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + /** Move hue up or down at specified rate. */ + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + /** Step hue up or down by specified size at specified rate. */ + command StepHue(StepHueRequest): DefaultSuccess = 2; + /** Move to specified saturation. */ + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + /** Move saturation up or down at specified rate. */ + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + /** Step saturation up or down by specified size at specified rate. */ + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + /** Move to hue and saturation. */ + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; + /** Move to specified color. */ + command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; + /** Moves the color. */ + command MoveColor(MoveColorRequest): DefaultSuccess = 8; + /** Steps the lighting to a specific color. */ + command StepColor(StepColorRequest): DefaultSuccess = 9; + /** Move to a specific color temperature. */ + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + /** Command description for EnhancedMoveToHue */ + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + /** Command description for EnhancedMoveHue */ + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + /** Command description for EnhancedStepHue */ + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + /** Command description for EnhancedMoveToHueAndSaturation */ + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + /** Command description for ColorLoopSet */ + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + /** Command description for StopMoveStep */ + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + /** Command description for MoveColorTemperature */ + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + /** Command description for StepColorTemperature */ + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; +} + /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { enum ColorLoopAction : ENUM8 { @@ -2611,9 +4717,56 @@ server cluster ColorControl = 768 { kColorTemperature = 0x10; } + readonly attribute int8u currentHue = 0; + readonly attribute int8u currentSaturation = 1; + readonly attribute int16u remainingTime = 2; readonly attribute int16u currentX = 3; readonly attribute int16u currentY = 4; + readonly attribute enum8 driftCompensation = 5; + readonly attribute char_string<254> compensationText = 6; + readonly attribute int16u colorTemperatureMireds = 7; + readonly attribute enum8 colorMode = 8; attribute bitmap8 options = 15; + readonly attribute nullable int8u numberOfPrimaries = 16; + readonly attribute int16u primary1X = 17; + readonly attribute int16u primary1Y = 18; + readonly attribute nullable int8u primary1Intensity = 19; + readonly attribute int16u primary2X = 21; + readonly attribute int16u primary2Y = 22; + readonly attribute nullable int8u primary2Intensity = 23; + readonly attribute int16u primary3X = 25; + readonly attribute int16u primary3Y = 26; + readonly attribute nullable int8u primary3Intensity = 27; + readonly attribute int16u primary4X = 32; + readonly attribute int16u primary4Y = 33; + readonly attribute nullable int8u primary4Intensity = 34; + readonly attribute int16u primary5X = 36; + readonly attribute int16u primary5Y = 37; + readonly attribute nullable int8u primary5Intensity = 38; + readonly attribute int16u primary6X = 40; + readonly attribute int16u primary6Y = 41; + readonly attribute nullable int8u primary6Intensity = 42; + attribute access(write: manage) int16u whitePointX = 48; + attribute access(write: manage) int16u whitePointY = 49; + attribute access(write: manage) int16u colorPointRX = 50; + attribute access(write: manage) int16u colorPointRY = 51; + attribute access(write: manage) nullable int8u colorPointRIntensity = 52; + attribute access(write: manage) int16u colorPointGX = 54; + attribute access(write: manage) int16u colorPointGY = 55; + attribute access(write: manage) nullable int8u colorPointGIntensity = 56; + attribute access(write: manage) int16u colorPointBX = 58; + attribute access(write: manage) int16u colorPointBY = 59; + attribute access(write: manage) nullable int8u colorPointBIntensity = 60; + readonly attribute int16u enhancedCurrentHue = 16384; + readonly attribute enum8 enhancedColorMode = 16385; + readonly attribute int8u colorLoopActive = 16386; + readonly attribute int8u colorLoopDirection = 16387; + readonly attribute int16u colorLoopTime = 16388; + readonly attribute int16u colorLoopStartEnhancedHue = 16389; + readonly attribute int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute int16u colorTempPhysicalMinMireds = 16395; + readonly attribute int16u colorTempPhysicalMaxMireds = 16396; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; attribute access(write: manage) nullable int16u startUpColorTemperatureMireds = 16400; readonly attribute command_id generatedCommandList[] = 65528; @@ -2623,6 +4776,59 @@ server cluster ColorControl = 768 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + request struct MoveToColorRequest { INT16U colorX = 0; INT16U colorY = 1; @@ -2646,9 +4852,97 @@ server cluster ColorControl = 768 { BITMAP8 optionsOverride = 4; } + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + command StepHue(StepHueRequest): DefaultSuccess = 2; + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; command MoveColor(MoveColorRequest): DefaultSuccess = 8; command StepColor(StepColorRequest): DefaultSuccess = 9; + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; } /** Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements. */ @@ -2803,21 +5097,378 @@ server cluster OccupancySensing = 1030 { readonly attribute int16u clusterRevision = 65533; } -/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ -client cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { - kSuccess = 0; - kTargetNotFound = 1; - kNotAllowed = 2; +/** This cluster provides an interface for controlling the current Channel on a device. */ +client cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap Feature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + struct ChannelInfoStruct { + int16u majorNumber = 0; + int16u minorNumber = 1; + optional char_string name = 2; + optional char_string callSign = 3; + optional char_string affiliateCallSign = 4; + } + + struct LineupInfoStruct { + char_string operatorName = 0; + optional char_string lineupName = 1; + optional char_string postalCode = 2; + LineupInfoTypeEnum lineupInfoType = 3; + } + + readonly attribute optional ChannelInfoStruct channelList[] = 0; + readonly attribute optional nullable LineupInfoStruct lineup = 1; + readonly attribute optional nullable ChannelInfoStruct currentChannel = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelRequest { + CHAR_STRING match = 0; + } + + response struct ChangeChannelResponse = 1 { + ChannelStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16S count = 0; + } + + /** Change the channel on the media player to the channel case-insensitive exact matching the value passed as an argument. */ + command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; + /** Change the channel on the media plaeyer to the channel with the given Number in the ChannelList attribute. */ + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + /** This command provides channel up and channel down functionality, but allows channel index jumps of size Count. When the value of the increase or decrease is larger than the number of channels remaining in the given direction, then the behavior SHALL be to return to the beginning (or end) of the channel list and continue. For example, if the current channel is at index 0 and count value of -1 is given, then the current channel should change to the last channel. */ + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for controlling the current Channel on a device. */ +server cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap Feature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + struct ChannelInfoStruct { + int16u majorNumber = 0; + int16u minorNumber = 1; + optional char_string name = 2; + optional char_string callSign = 3; + optional char_string affiliateCallSign = 4; + } + + struct LineupInfoStruct { + char_string operatorName = 0; + optional char_string lineupName = 1; + optional char_string postalCode = 2; + LineupInfoTypeEnum lineupInfoType = 3; + } + + readonly attribute ChannelInfoStruct channelList[] = 0; + readonly attribute nullable LineupInfoStruct lineup = 1; + readonly attribute nullable ChannelInfoStruct currentChannel = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelRequest { + CHAR_STRING match = 0; + } + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16S count = 0; + } + + command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ +client cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfoStruct { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfoStruct targetList[] = 0; + readonly attribute optional int8u currentTarget = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct NavigateTargetRequest { + INT8U target = 0; + optional CHAR_STRING data = 1; + } + + response struct NavigateTargetResponse = 1 { + TargetNavigatorStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + /** Upon receipt, this SHALL navigation the UX to the target identified. */ + command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; +} + +/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ +server cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfoStruct { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfoStruct targetList[] = 0; + readonly attribute int8u currentTarget = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ +client cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + bitmap Feature : BITMAP32 { + kAdvancedSeek = 0x1; + kVariableSpeed = 0x2; + } + + struct PlaybackPositionStruct { + epoch_us updatedAt = 0; + nullable int64u position = 1; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute optional nullable epoch_us startTime = 1; + readonly attribute optional nullable int64u duration = 2; + readonly attribute optional nullable PlaybackPositionStruct sampledPosition = 3; + readonly attribute optional single playbackSpeed = 4; + readonly attribute optional nullable int64u seekRangeEnd = 5; + readonly attribute optional nullable int64u seekRangeStart = 6; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SkipForwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SkipBackwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + request struct SeekRequest { + INT64U position = 0; + } + + /** Upon receipt, this SHALL play media. */ + command Play(): PlaybackResponse = 0; + /** Upon receipt, this SHALL pause media. */ + command Pause(): PlaybackResponse = 1; + /** Upon receipt, this SHALL stop media. User experience is context-specific. This will often navigate the user back to the location where media was originally launched. */ + command Stop(): PlaybackResponse = 2; + /** Upon receipt, this SHALL Start Over with the current media playback item. */ + command StartOver(): PlaybackResponse = 3; + /** Upon receipt, this SHALL cause the handler to be invoked for "Previous". User experience is context-specific. This will often Go back to the previous media playback item. */ + command Previous(): PlaybackResponse = 4; + /** Upon receipt, this SHALL cause the handler to be invoked for "Next". User experience is context-specific. This will often Go forward to the next media playback item. */ + command Next(): PlaybackResponse = 5; + /** Upon receipt, this SHALL Rewind through media. Different Rewind speeds can be used on the TV based upon the number of sequential calls to this function. This is to avoid needing to define every speed now (multiple fast, slow motion, etc). */ + command Rewind(): PlaybackResponse = 6; + /** Upon receipt, this SHALL Advance through media. Different FF speeds can be used on the TV based upon the number of sequential calls to this function. This is to avoid needing to define every speed now (multiple fast, slow motion, etc). */ + command FastForward(): PlaybackResponse = 7; + /** Upon receipt, this SHALL Skip forward in the media by the given number of seconds, using the data as follows: */ + command SkipForward(SkipForwardRequest): PlaybackResponse = 8; + /** Upon receipt, this SHALL Skip backward in the media by the given number of seconds, using the data as follows: */ + command SkipBackward(SkipBackwardRequest): PlaybackResponse = 9; + /** Upon receipt, this SHALL Skip backward in the media by the given number of seconds, using the data as follows: */ + command Seek(SeekRequest): PlaybackResponse = 11; +} + +/** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ +server cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + bitmap Feature : BITMAP32 { + kAdvancedSeek = 0x1; + kVariableSpeed = 0x2; + } + + struct PlaybackPositionStruct { + epoch_us updatedAt = 0; + nullable int64u position = 1; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute nullable epoch_us startTime = 1; + readonly attribute nullable int64u duration = 2; + readonly attribute nullable PlaybackPositionStruct sampledPosition = 3; + readonly attribute single playbackSpeed = 4; + readonly attribute nullable int64u seekRangeEnd = 5; + readonly attribute nullable int64u seekRangeStart = 6; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SkipForwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SkipBackwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SeekRequest { + INT64U position = 0; + } + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + command Play(): PlaybackResponse = 0; + command Pause(): PlaybackResponse = 1; + command Stop(): PlaybackResponse = 2; + command StartOver(): PlaybackResponse = 3; + command Previous(): PlaybackResponse = 4; + command Next(): PlaybackResponse = 5; + command Rewind(): PlaybackResponse = 6; + command FastForward(): PlaybackResponse = 7; + command SkipForward(SkipForwardRequest): PlaybackResponse = 8; + command SkipBackward(SkipBackwardRequest): PlaybackResponse = 9; + command Seek(SeekRequest): PlaybackResponse = 11; +} + +/** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ +client cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; } - struct TargetInfoStruct { - int8u identifier = 0; - char_string<32> name = 1; + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; } - readonly attribute TargetInfoStruct targetList[] = 0; - readonly attribute optional int8u currentTarget = 1; + struct InputInfoStruct { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfoStruct inputList[] = 0; + readonly attribute int8u currentInput = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2825,35 +5476,55 @@ client cluster TargetNavigator = 1285 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct NavigateTargetRequest { - INT8U target = 0; - optional CHAR_STRING data = 1; + request struct SelectInputRequest { + INT8U index = 0; } - response struct NavigateTargetResponse = 1 { - TargetNavigatorStatusEnum status = 0; - optional CHAR_STRING data = 1; + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; } - /** Upon receipt, this SHALL navigation the UX to the target identified. */ - command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; + /** Upon receipt, this SHALL change the input on the media device to the input at a specific index in the Input List. */ + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + /** Upon receipt, this SHALL display the active status of the input list on screen. */ + command ShowInputStatus(): DefaultSuccess = 1; + /** Upon receipt, this SHALL hide the input list from the screen. */ + command HideInputStatus(): DefaultSuccess = 2; + /** Upon receipt, this SHALL rename the input at a specific index in the Input List. Updates to the input name SHALL appear in the TV settings menus. */ + command RenameInput(RenameInputRequest): DefaultSuccess = 3; } -/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ -server cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { - kSuccess = 0; - kTargetNotFound = 1; - kNotAllowed = 2; +/** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ +server cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; } - struct TargetInfoStruct { - int8u identifier = 0; - char_string<32> name = 1; + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; } - readonly attribute TargetInfoStruct targetList[] = 0; - readonly attribute int8u currentTarget = 1; + struct InputInfoStruct { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfoStruct inputList[] = 0; + readonly attribute int8u currentInput = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2861,17 +5532,32 @@ server cluster TargetNavigator = 1285 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct NavigateTargetRequest { - INT8U target = 0; - optional CHAR_STRING data = 1; + request struct SelectInputRequest { + INT8U index = 0; } - response struct NavigateTargetResponse = 1 { - TargetNavigatorStatusEnum status = 0; - optional CHAR_STRING data = 1; + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; } - command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + command ShowInputStatus(): DefaultSuccess = 1; + command HideInputStatus(): DefaultSuccess = 2; + command RenameInput(RenameInputRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for managing low power mode on a device. */ +client cluster LowPower = 1288 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + /** This command shall put the device into low power mode. */ + command Sleep(): DefaultSuccess = 0; } /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ @@ -3105,16 +5791,6 @@ server cluster KeypadInput = 1289 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - - request struct SendKeyRequest { - CecKeyCode keyCode = 0; - } - - response struct SendKeyResponse = 1 { - KeypadInputStatusEnum status = 0; - } - - command SendKey(SendKeyRequest): SendKeyResponse = 0; } /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ @@ -3331,6 +6007,183 @@ server cluster ContentLauncher = 1290 { command LaunchURL(LaunchURLRequest): LauncherResponse = 1; } +/** This cluster provides an interface for controlling the Output on a media device such as a TV. */ +client cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfoStruct { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfoStruct outputList[] = 0; + readonly attribute optional int8u currentOutput = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + request struct RenameOutputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + /** Upon receipt, this SHALL change the output on the media device to the output at a specific index in the Output List. */ + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; + /** Upon receipt, this SHALL rename the output at a specific index in the Output List. Updates to the output name SHALL appear in the TV settings menus. */ + command RenameOutput(RenameOutputRequest): DefaultSuccess = 1; +} + +/** This cluster provides an interface for controlling the Output on a media device such as a TV. */ +server cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfoStruct { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfoStruct outputList[] = 0; + readonly attribute int8u currentOutput = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + request struct RenameOutputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; + command RenameOutput(RenameOutputRequest): DefaultSuccess = 1; +} + +/** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ +client cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap Feature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; + } + + struct ApplicationEPStruct { + ApplicationStruct application = 0; + optional endpoint_no endpoint = 1; + } + + readonly attribute optional INT16U catalogList[] = 0; + attribute optional nullable ApplicationEPStruct currentApp = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LaunchAppRequest { + optional ApplicationStruct application = 0; + optional OCTET_STRING data = 1; + } + + request struct StopAppRequest { + optional ApplicationStruct application = 0; + } + + request struct HideAppRequest { + optional ApplicationStruct application = 0; + } + + response struct LauncherResponse = 3 { + ApplicationLauncherStatusEnum status = 0; + optional OCTET_STRING data = 1; + } + + /** Upon receipt, this SHALL launch the specified app with optional data. The TV Device SHALL launch and bring to foreground the identified application in the command if the application is not already launched and in foreground. The TV Device SHALL update state attribute on the Application Basic cluster of the Endpoint corresponding to the launched application. This command returns a Launch Response. */ + command LaunchApp(LaunchAppRequest): LauncherResponse = 0; + /** Upon receipt on a Video Player endpoint this SHALL stop the specified application if it is running. */ + command StopApp(StopAppRequest): LauncherResponse = 1; + /** Upon receipt on a Video Player endpoint this SHALL hide the specified application if it is running and visible. */ + command HideApp(HideAppRequest): LauncherResponse = 2; +} + +/** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ +server cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap Feature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; + } + + struct ApplicationEPStruct { + ApplicationStruct application = 0; + optional endpoint_no endpoint = 1; + } + + readonly attribute INT16U catalogList[] = 0; + attribute nullable ApplicationEPStruct currentApp = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + /** This cluster provides information about an application running on a TV or media player device which is represented as an endpoint. */ client cluster ApplicationBasic = 1293 { enum ApplicationStatusEnum : ENUM8 { @@ -3391,30 +6244,86 @@ server cluster ApplicationBasic = 1293 { readonly attribute int16u clusterRevision = 65533; } +/** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ +client cluster AccountLogin = 1294 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + request struct LoginRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + /** Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. */ + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + /** Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. */ + timed command Login(LoginRequest): DefaultSuccess = 2; + /** The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. */ + timed command Logout(): DefaultSuccess = 3; +} + +/** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ +server cluster AccountLogin = 1294 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + } + + request struct LoginRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + timed command Login(LoginRequest): DefaultSuccess = 2; + timed command Logout(): DefaultSuccess = 3; +} + endpoint 0 { device type anonymousEndpointType = 65280, version 1; - binding cluster OnOff; binding cluster GeneralCommissioning; + binding cluster ThreadNetworkDiagnostics; binding cluster Switch; binding cluster OperationalCredentials; binding cluster ModeSelect; + binding cluster DoorLock; + binding cluster Thermostat; binding cluster ThermostatUserInterfaceConfiguration; binding cluster TemperatureMeasurement; binding cluster RelativeHumidityMeasurement; + binding cluster Channel; binding cluster TargetNavigator; + binding cluster MediaPlayback; + binding cluster MediaInput; + binding cluster LowPower; binding cluster KeypadInput; binding cluster ContentLauncher; + binding cluster AudioOutput; + binding cluster ApplicationLauncher; binding cluster ApplicationBasic; - - server cluster OnOff { - ram attribute onOff default = 0x00; - ram attribute globalSceneControl default = 0x01; - ram attribute onTime default = 0x0000; - ram attribute offWaitTime default = 0x0000; - ram attribute startUpOnOff default = 0xFF; - ram attribute featureMap default = 0x0001; - ram attribute clusterRevision default = 4; - } + binding cluster AccountLogin; server cluster Descriptor { callback attribute deviceTypeList; @@ -3574,6 +6483,73 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster ThreadNetworkDiagnostics { + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount default = 0; + callback attribute neighborTable default = 0; + callback attribute routeTable default = 0; + callback attribute partitionId default = 0; + callback attribute weighting default = 0; + callback attribute dataVersion default = 0; + callback attribute stableDataVersion default = 0; + callback attribute leaderRouterId default = 0; + callback attribute detachedRoleCount default = 0; + callback attribute childRoleCount default = 0; + callback attribute routerRoleCount default = 0; + callback attribute leaderRoleCount default = 0; + callback attribute attachAttemptCount default = 0; + callback attribute partitionIdChangeCount default = 0; + callback attribute betterPartitionAttachAttemptCount default = 0; + callback attribute parentChangeCount default = 0; + callback attribute txTotalCount default = 0; + callback attribute txUnicastCount default = 0; + callback attribute txBroadcastCount default = 0; + callback attribute txAckRequestedCount default = 0; + callback attribute txAckedCount default = 0; + callback attribute txNoAckRequestedCount default = 0; + callback attribute txDataCount default = 0; + callback attribute txDataPollCount default = 0; + callback attribute txBeaconCount default = 0; + callback attribute txBeaconRequestCount default = 0; + callback attribute txOtherCount default = 0; + callback attribute txRetryCount default = 0; + callback attribute txDirectMaxRetryExpiryCount default = 0; + callback attribute txIndirectMaxRetryExpiryCount default = 0; + callback attribute txErrCcaCount default = 0; + callback attribute txErrAbortCount default = 0; + callback attribute txErrBusyChannelCount default = 0; + callback attribute rxTotalCount default = 0; + callback attribute rxUnicastCount default = 0; + callback attribute rxBroadcastCount default = 0; + callback attribute rxDataCount default = 0; + callback attribute rxDataPollCount default = 0; + callback attribute rxBeaconCount default = 0; + callback attribute rxBeaconRequestCount default = 0; + callback attribute rxOtherCount default = 0; + callback attribute rxAddressFilteredCount default = 0; + callback attribute rxDestAddrFilteredCount default = 0; + callback attribute rxDuplicatedCount default = 0; + callback attribute rxErrNoFrameCount default = 0; + callback attribute rxErrUnknownNeighborCount default = 0; + callback attribute rxErrInvalidSrcAddrCount default = 0; + callback attribute rxErrSecCount default = 0; + callback attribute rxErrFcsCount default = 0; + callback attribute rxErrOtherCount default = 0; + callback attribute activeTimestamp default = 0; + callback attribute pendingTimestamp default = 0; + callback attribute delay default = 0; + callback attribute securityPolicy; + callback attribute channelPage0Mask; + callback attribute operationalDatasetComponents; + callback attribute activeNetworkFaultsList; + ram attribute clusterRevision default = 1; + } + server cluster WiFiNetworkDiagnostics { emits event Disconnection; emits event AssociationFailure; @@ -3609,6 +6585,29 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster BridgedDeviceBasicInformation { + emits event StartUp; + emits event ShutDown; + emits event Leave; + callback attribute vendorName; + callback attribute vendorID; + callback attribute productName; + persist attribute nodeLabel; + callback attribute hardwareVersion; + callback attribute hardwareVersionString; + callback attribute softwareVersion; + callback attribute softwareVersionString; + callback attribute manufacturingDate; + callback attribute partNumber; + callback attribute productURL; + callback attribute productLabel; + callback attribute serialNumber; + callback attribute uniqueID; + callback attribute productAppearance; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 2; + } + server cluster Switch { ram attribute numberOfPositions default = 2; ram attribute currentPosition; @@ -3657,6 +6656,46 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster DoorLock { + callback attribute lockState; + callback attribute lockType; + ram attribute actuatorEnabled; + callback attribute doorState; + callback attribute doorOpenEvents; + callback attribute doorClosedEvents; + callback attribute openPeriod; + callback attribute numberOfTotalUsersSupported default = 0; + callback attribute numberOfPINUsersSupported default = 0; + callback attribute numberOfRFIDUsersSupported default = 0; + callback attribute numberOfWeekDaySchedulesSupportedPerUser default = 0; + callback attribute numberOfYearDaySchedulesSupportedPerUser default = 0; + callback attribute numberOfHolidaySchedulesSupported default = 0; + callback attribute maxPINCodeLength; + callback attribute minPINCodeLength; + callback attribute maxRFIDCodeLength; + callback attribute minRFIDCodeLength; + callback attribute credentialRulesSupport default = 1; + callback attribute numberOfCredentialsSupportedPerUser default = 0; + callback attribute language; + callback attribute LEDSettings default = 0; + callback attribute autoRelockTime; + callback attribute soundVolume default = 0; + callback attribute operatingMode default = 0; + callback attribute supportedOperatingModes default = 65526; + callback attribute defaultConfigurationRegister default = 0; + callback attribute enableLocalProgramming default = 1; + callback attribute enableOneTouchLocking default = 0; + callback attribute enableInsideStatusLED default = 0; + callback attribute enablePrivacyModeButton default = 0; + callback attribute localProgrammingFeatures default = 0; + callback attribute wrongCodeEntryLimit; + callback attribute userCodeTemporaryDisableTime; + callback attribute sendPINOverTheAir default = 0; + callback attribute requirePINforRemoteOperation default = 0; + callback attribute expiringUserTimeout; + ram attribute clusterRevision default = 6; + } + server cluster WindowCovering { ram attribute type default = 0x00; persist attribute currentPositionLift default = 0x7FFF; @@ -3710,21 +6749,53 @@ endpoint 0 { server cluster Thermostat { ram attribute localTemperature; + callback attribute outdoorTemperature; + callback attribute occupancy default = 1; ram attribute absMinHeatSetpointLimit default = 0x02BC; + callback attribute absMaxHeatSetpointLimit default = 0x0BB8; ram attribute absMinCoolSetpointLimit default = 0x0640; ram attribute absMaxCoolSetpointLimit default = 0x0C80; + ram attribute PICoolingDemand; + ram attribute PIHeatingDemand; + callback attribute HVACSystemTypeConfiguration default = 0; + callback attribute localTemperatureCalibration default = 0; ram attribute occupiedCoolingSetpoint default = 0x0A28; ram attribute occupiedHeatingSetpoint default = 0x07D0; + callback attribute unoccupiedCoolingSetpoint default = 0x0A28; + callback attribute unoccupiedHeatingSetpoint default = 0x07D0; ram attribute minHeatSetpointLimit default = 0x02BC; ram attribute maxHeatSetpointLimit default = 0x0BB8; ram attribute minCoolSetpointLimit default = 0x0640; ram attribute maxCoolSetpointLimit default = 0x0C80; ram attribute minSetpointDeadBand default = 0x19; + callback attribute remoteSensing default = 0x0; ram attribute controlSequenceOfOperation default = 0x04; ram attribute systemMode default = 0x01; + callback attribute thermostatRunningMode default = 0x00; ram attribute startOfWeek default = 0; ram attribute numberOfWeeklyTransitions default = 7; ram attribute numberOfDailyTransitions default = 4; + ram attribute temperatureSetpointHold default = 0x00; + callback attribute temperatureSetpointHoldDuration; + callback attribute thermostatProgrammingOperationMode default = 0x00; + callback attribute thermostatRunningState; + callback attribute setpointChangeSource default = 0x00; + callback attribute setpointChangeAmount; + callback attribute setpointChangeSourceTimestamp default = 0x00; + callback attribute occupiedSetback; + callback attribute occupiedSetbackMin; + callback attribute occupiedSetbackMax; + callback attribute unoccupiedSetback; + callback attribute unoccupiedSetbackMin; + callback attribute unoccupiedSetbackMax; + callback attribute emergencyHeatDelta default = 0x009F6; + callback attribute ACType default = 0x00; + callback attribute ACCapacity default = 0x00; + callback attribute ACRefrigerantType; + callback attribute ACCompressorType default = 0x00; + callback attribute ACLouverPosition default = 0x00; + callback attribute ACCoilTemperature; + callback attribute ACCapacityformat default = 0x00; ram attribute featureMap default = 0x000b; ram attribute clusterRevision default = 5; } @@ -3794,6 +6865,14 @@ endpoint 0 { ram attribute clusterRevision default = 3; } + server cluster Channel { + callback attribute channelList; + callback attribute lineup; + callback attribute currentChannel; + ram attribute featureMap default = 0; + callback attribute clusterRevision default = 1; + } + server cluster TargetNavigator { callback attribute targetList; ram attribute currentTarget default = 0; @@ -3804,6 +6883,24 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster MediaPlayback { + ram attribute currentState; + ram attribute startTime; + ram attribute duration; + callback attribute sampledPosition; + ram attribute playbackSpeed default = 1; + ram attribute seekRangeEnd; + ram attribute seekRangeStart default = 1; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster MediaInput { + callback attribute inputList; + callback attribute currentInput; + ram attribute clusterRevision default = 1; + } + server cluster KeypadInput { callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -3822,6 +6919,20 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster AudioOutput { + callback attribute outputList; + ram attribute currentOutput; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster ApplicationLauncher { + callback attribute catalogList; + callback attribute currentApp; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + server cluster ApplicationBasic { ram attribute vendorName; ram attribute vendorID default = 0x0; @@ -3837,13 +6948,19 @@ endpoint 0 { ram attribute featureMap default = 0; ram attribute clusterRevision default = 1; } + + server cluster AccountLogin { + ram attribute clusterRevision default = 1; + } } endpoint 1 { device type anonymousEndpointType = 257, version 1; binding cluster OnOff; + binding cluster LevelControl; binding cluster LocalizationConfiguration; binding cluster UnitLocalization; binding cluster FixedLabel; + binding cluster ColorControl; server cluster Identify { ram attribute identifyTime default = 0x0; @@ -3881,24 +6998,33 @@ endpoint 1 { } server cluster OnOff { - ram attribute onOff default = 0; - ram attribute globalSceneControl default = 1; - ram attribute onTime default = 0; - ram attribute offWaitTime default = 0; - ram attribute startUpOnOff; + ram attribute onOff default = 0x00; + ram attribute globalSceneControl default = 0x01; + ram attribute onTime default = 0x0000; + ram attribute offWaitTime default = 0x0000; + ram attribute startUpOnOff default = 0xFF; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; - ram attribute featureMap default = 0; + ram attribute featureMap default = 0x0001; ram attribute clusterRevision default = 4; } server cluster LevelControl { ram attribute currentLevel default = 0x00; ram attribute remainingTime default = 0x0000; + ram attribute minLevel default = 0x00; + ram attribute maxLevel default = 0xFE; + ram attribute currentFrequency default = 0x0000; + ram attribute minFrequency default = 0x0000; + ram attribute maxFrequency default = 0x0000; ram attribute options default = 0x00; + ram attribute onOffTransitionTime default = 0x0000; ram attribute onLevel; + ram attribute onTransitionTime; + ram attribute offTransitionTime; + ram attribute defaultMoveRate; ram attribute startUpCurrentLevel; callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -3971,9 +7097,56 @@ endpoint 1 { } server cluster ColorControl { + ram attribute currentHue default = 0x00; + ram attribute currentSaturation default = 0x00; + callback attribute remainingTime default = 0x00; ram attribute currentX default = 0x616B; ram attribute currentY default = 0x607D; + callback attribute driftCompensation; + callback attribute compensationText; + ram attribute colorTemperatureMireds default = 0x00FA; + callback attribute colorMode default = 1; ram attribute options default = 0x00; + callback attribute numberOfPrimaries; + callback attribute primary1X; + callback attribute primary1Y; + callback attribute primary1Intensity; + callback attribute primary2X; + callback attribute primary2Y; + callback attribute primary2Intensity; + callback attribute primary3X; + callback attribute primary3Y; + callback attribute primary3Intensity; + callback attribute primary4X; + callback attribute primary4Y; + callback attribute primary4Intensity; + callback attribute primary5X; + callback attribute primary5Y; + callback attribute primary5Intensity; + callback attribute primary6X; + callback attribute primary6Y; + callback attribute primary6Intensity; + callback attribute whitePointX; + callback attribute whitePointY; + callback attribute colorPointRX; + callback attribute colorPointRY; + callback attribute colorPointRIntensity; + callback attribute colorPointGX; + callback attribute colorPointGY; + callback attribute colorPointGIntensity; + callback attribute colorPointBX; + callback attribute colorPointBY; + callback attribute colorPointBIntensity; + ram attribute enhancedCurrentHue default = 0x00; + callback attribute enhancedColorMode default = 0x01; + ram attribute colorLoopActive default = 0x00; + ram attribute colorLoopDirection default = 0x00; + ram attribute colorLoopTime default = 0x0019; + ram attribute colorLoopStartEnhancedHue default = 0x2300; + ram attribute colorLoopStoredEnhancedHue default = 0x00; + callback attribute colorCapabilities default = 0x00; + callback attribute colorTempPhysicalMinMireds default = 0x00; + callback attribute colorTempPhysicalMaxMireds default = 0xfeff; ram attribute coupleColorTempToLevelMinMireds; ram attribute startUpColorTemperatureMireds; ram attribute featureMap default = 0; diff --git a/examples/placeholder/linux/apps/app1/config.zap b/examples/placeholder/linux/apps/app1/config.zap index e4d8f4d12b5046..6370993996752e 100644 --- a/examples/placeholder/linux/apps/app1/config.zap +++ b/examples/placeholder/linux/apps/app1/config.zap @@ -38,204 +38,6 @@ "deviceTypeCode": null, "deviceTypeProfileId": null, "clusters": [ - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "Off", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "On", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "Toggle", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OffWithEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OnWithRecallGlobalScene", - "code": 65, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OnWithTimedOff", - "code": 66, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "OnOff", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "GlobalSceneControl", - "code": 16384, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OnTime", - "code": 16385, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OffWaitTime", - "code": 16386, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "StartUpOnOff", - "code": 16387, - "mfgCode": null, - "side": "server", - "type": "OnOffStartUpOnOff", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFF", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0001", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, { "name": "Descriptor", "code": 29, @@ -2843,12 +2645,12 @@ ] }, { - "name": "WiFi Network Diagnostics", - "code": 54, + "name": "Thread Network Diagnostics", + "code": 53, "mfgCode": null, - "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, "commands": [ { "name": "ResetCounts", @@ -2872,26 +2674,42 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "WiFi Network Diagnostics", - "code": 54, + "name": "Thread Network Diagnostics", + "code": 53, "mfgCode": null, - "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "BSSID", + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Channel", "code": 0, "mfgCode": null, "side": "server", - "type": "octet_string", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, @@ -2899,15 +2717,15 @@ "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SecurityType", + "name": "RoutingRole", "code": 1, "mfgCode": null, "side": "server", - "type": "SecurityTypeEnum", + "type": "RoutingRoleEnum", "included": 1, "storageOption": "External", "singleton": 0, @@ -2919,23 +2737,23 @@ "reportableChange": 0 }, { - "name": "WiFiVersion", + "name": "NetworkName", "code": 2, "mfgCode": null, "side": "server", - "type": "WiFiVersionEnum", + "type": "String", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ChannelNumber", + "name": "PanId", "code": 3, "mfgCode": null, "side": "server", @@ -2944,94 +2762,94 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "RSSI", + "name": "ExtendedPanId", "code": 4, "mfgCode": null, "side": "server", - "type": "int8s", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "BeaconLostCount", + "name": "MeshLocalPrefix", "code": 5, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "octet_string", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "BeaconRxCount", + "name": "OverrunCount", "code": 6, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketMulticastRxCount", + "name": "NeighborTable", "code": 7, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "NeighborTableStruct", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketMulticastTxCount", + "name": "RouteTable", "code": 8, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "RouteTableStruct", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketUnicastRxCount", + "name": "PartitionId", "code": 9, "mfgCode": null, "side": "server", @@ -3040,1027 +2858,880 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketUnicastTxCount", + "name": "Weighting", "code": 10, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentMaxRate", + "name": "DataVersion", "code": 11, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OverrunCount", + "name": "StableDataVersion", "code": 12, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "LeaderRouterId", + "code": 13, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "DetachedRoleCount", + "code": 14, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ], - "events": [ - { - "name": "Disconnection", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 }, { - "name": "AssociationFailure", - "code": 1, + "name": "ChildRoleCount", + "code": 15, "mfgCode": null, "side": "server", - "included": 1 + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "ConnectionStatus", - "code": 2, + "name": "RouterRoleCount", + "code": 16, "mfgCode": null, "side": "server", - "included": 1 - } - ] - }, - { - "name": "Ethernet Network Diagnostics", - "code": 55, - "mfgCode": null, - "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "ResetCounts", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Ethernet Network Diagnostics", - "code": 55, - "mfgCode": null, - "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "PHYRate", - "code": 0, + "name": "LeaderRoleCount", + "code": 17, "mfgCode": null, "side": "server", - "type": "PHYRateEnum", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FullDuplex", - "code": 1, + "name": "AttachAttemptCount", + "code": 18, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketRxCount", - "code": 2, + "name": "PartitionIdChangeCount", + "code": 19, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketTxCount", - "code": 3, + "name": "BetterPartitionAttachAttemptCount", + "code": 20, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TxErrCount", - "code": 4, + "name": "ParentChangeCount", + "code": 21, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CollisionCount", - "code": 5, + "name": "TxTotalCount", + "code": 22, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OverrunCount", - "code": 6, + "name": "TxUnicastCount", + "code": 23, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CarrierDetect", - "code": 7, + "name": "TxBroadcastCount", + "code": 24, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TimeSinceReset", - "code": 8, + "name": "TxAckRequestedCount", + "code": 25, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxAckedCount", + "code": 26, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxNoAckRequestedCount", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Switch", - "code": 59, - "mfgCode": null, - "define": "SWITCH_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxDataCount", + "code": 28, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxDataPollCount", + "code": 29, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Switch", - "code": 59, - "mfgCode": null, - "define": "SWITCH_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "NumberOfPositions", - "code": 0, + "name": "TxBeaconCount", + "code": 30, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPosition", - "code": 1, + "name": "TxBeaconRequestCount", + "code": 31, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MultiPressMax", - "code": 2, + "name": "TxOtherCount", + "code": 32, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "TxRetryCount", + "code": 33, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "TxDirectMaxRetryExpiryCount", + "code": 34, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "TxIndirectMaxRetryExpiryCount", + "code": 35, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxErrCcaCount", + "code": 36, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxErrAbortCount", + "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Administrator Commissioning", - "code": 60, - "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "OpenCommissioningWindow", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "OpenBasicCommissioningWindow", - "code": 1, + "name": "TxErrBusyChannelCount", + "code": 38, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RevokeCommissioning", - "code": 2, + "name": "RxTotalCount", + "code": 39, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxUnicastCount", + "code": 40, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Administrator Commissioning", - "code": 60, - "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "WindowStatus", - "code": 0, + "name": "RxBroadcastCount", + "code": 41, "mfgCode": null, "side": "server", - "type": "CommissioningWindowStatusEnum", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AdminFabricIndex", - "code": 1, + "name": "RxDataCount", + "code": 42, "mfgCode": null, "side": "server", - "type": "fabric_idx", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AdminVendorId", - "code": 2, + "name": "RxDataPollCount", + "code": 43, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RxBeaconCount", + "code": 44, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxBeaconRequestCount", + "code": 45, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Operational Credentials", - "code": 62, - "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ + }, { - "name": "AttestationRequest", - "code": 0, + "name": "RxOtherCount", + "code": 46, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CertificateChainRequest", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CSRRequest", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddNOC", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UpdateNOC", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UpdateFabricLabel", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "RemoveFabric", - "code": 10, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddTrustedRootCertificate", - "code": 11, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Operational Credentials", - "code": 62, - "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "AttestationResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "CertificateChainResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "CSRResponse", - "code": 5, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 }, { - "name": "NOCResponse", - "code": 8, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "Fabrics", - "code": 1, + "name": "RxAddressFilteredCount", + "code": 47, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedFabrics", - "code": 2, + "name": "RxDestAddrFilteredCount", + "code": 48, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CommissionedFabrics", - "code": 3, + "name": "RxDuplicatedCount", + "code": 49, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "TrustedRootCertificates", - "code": 4, + "name": "RxErrNoFrameCount", + "code": 50, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentFabricIndex", - "code": 5, + "name": "RxErrUnknownNeighborCount", + "code": 51, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RxErrInvalidSrcAddrCount", + "code": 52, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxErrSecCount", + "code": 53, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Boolean State", - "code": 69, - "mfgCode": null, - "define": "BOOLEAN_STATE_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxErrFcsCount", + "code": 54, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Boolean State", - "code": 69, - "mfgCode": null, - "define": "BOOLEAN_STATE_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "StateValue", - "code": 0, + "name": "RxErrOtherCount", + "code": 55, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ActiveTimestamp", + "code": 56, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "PendingTimestamp", + "code": 57, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Delay", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SecurityPolicy", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "SecurityPolicy", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelPage0Mask", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperationalDatasetComponents", + "code": 61, + "mfgCode": null, + "side": "server", + "type": "OperationalDatasetComponents", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 62, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Mode Select", - "code": 80, + "name": "WiFi Network Diagnostics", + "code": 54, "mfgCode": null, - "define": "MODE_SELECT_CLUSTER", + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [ { - "name": "ChangeToMode", + "name": "ResetCounts", "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -4073,245 +3744,300 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Mode Select", - "code": 80, + "name": "WiFi Network Diagnostics", + "code": 54, "mfgCode": null, - "define": "MODE_SELECT_CLUSTER", + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "Description", + "name": "BSSID", "code": 0, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StandardNamespace", + "name": "SecurityType", "code": 1, "mfgCode": null, "side": "server", - "type": "enum16", + "type": "SecurityTypeEnum", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedModes", + "name": "WiFiVersion", "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "WiFiVersionEnum", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "255", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentMode", + "name": "ChannelNumber", "code": 3, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpMode", + "name": "RSSI", "code": 4, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int8s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "BeaconLostCount", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "BeaconRxCount", + "code": 6, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "PacketMulticastRxCount", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "PacketMulticastTxCount", + "code": 8, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "PacketUnicastRxCount", + "code": 9, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Window Covering", - "code": 258, - "mfgCode": null, - "define": "WINDOW_COVERING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "UpOrOpen", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "DownOrClose", - "code": 1, + "name": "PacketUnicastTxCount", + "code": 10, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StopMotion", - "code": 2, + "name": "CurrentMaxRate", + "code": 11, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "GoToLiftValue", - "code": 4, + "name": "OverrunCount", + "code": 12, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "GoToLiftPercentage", - "code": 5, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "GoToTiltValue", - "code": 7, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "events": [ + { + "name": "Disconnection", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1 }, { - "name": "GoToTiltPercentage", - "code": 8, + "name": "AssociationFailure", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1 + }, + { + "name": "ConnectionStatus", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 0 + "outgoing": 1 } ], "attributes": [ @@ -4325,7 +4051,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -4334,378 +4060,394 @@ ] }, { - "name": "Window Covering", - "code": 258, + "name": "Ethernet Network Diagnostics", + "code": 55, "mfgCode": null, - "define": "WINDOW_COVERING_CLUSTER", + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "Type", + "name": "PHYRate", "code": 0, "mfgCode": null, "side": "server", - "type": "Type", + "type": "PHYRateEnum", "included": 1, - "storageOption": "RAM", + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FullDuplex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentPositionLift", - "code": 3, + "name": "PacketRxCount", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionTilt", - "code": 4, + "name": "PacketTxCount", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ConfigStatus", - "code": 7, + "name": "TxErrCount", + "code": 4, "mfgCode": null, "side": "server", - "type": "ConfigStatus", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x03", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionLiftPercentage", - "code": 8, + "name": "CollisionCount", + "code": 5, "mfgCode": null, "side": "server", - "type": "Percent", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "50", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 100, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionTiltPercentage", - "code": 9, + "name": "OverrunCount", + "code": 6, "mfgCode": null, "side": "server", - "type": "Percent", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "50", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 100, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OperationalStatus", - "code": 10, + "name": "CarrierDetect", + "code": 7, "mfgCode": null, "side": "server", - "type": "OperationalStatus", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 127, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TargetPositionLiftPercent100ths", - "code": 11, + "name": "TimeSinceReset", + "code": 8, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "0x0000000000000000", "reportable": 1, - "minInterval": 0, - "maxInterval": 10000, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TargetPositionTiltPercent100ths", - "code": 12, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "3", "reportable": 1, - "minInterval": 0, - "maxInterval": 10000, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EndProductType", - "code": 13, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "EndProductType", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Device Basic Information", + "code": 57, + "mfgCode": null, + "define": "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "CurrentPositionLiftPercent100ths", - "code": 14, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "Percent100ths", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "RAM", + "singleton": 1, "bounded": 0, - "defaultValue": "500", + "defaultValue": "2", "reportable": 1, "minInterval": 0, - "maxInterval": 10000, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Device Basic Information", + "code": 57, + "mfgCode": null, + "define": "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "CurrentPositionTiltPercent100ths", - "code": 15, + "name": "DataModelRevision", + "code": 0, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "500", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 10000, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledOpenLimitLift", - "code": 16, + "name": "VendorName", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledClosedLimitLift", - "code": 17, + "name": "VendorID", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "vendor_id", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFFFF", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledOpenLimitTilt", - "code": 18, + "name": "ProductName", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledClosedLimitTilt", - "code": 19, + "name": "ProductID", + "code": 4, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFFFF", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Mode", - "code": 23, + "name": "NodeLabel", + "code": 5, "mfgCode": null, "side": "server", - "type": "Mode", + "type": "char_string", "included": 1, "storageOption": "NVM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 15, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SafetyStatus", - "code": 26, + "name": "Location", + "code": 6, "mfgCode": null, "side": "server", - "type": "SafetyStatus", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "XX", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "HardwareVersion", + "code": 7, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x17", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "HardwareVersionString", + "code": 8, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pump Configuration and Control", - "code": 512, - "mfgCode": null, - "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "SoftwareVersion", + "code": 9, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pump Configuration and Control", - "code": 512, - "mfgCode": null, - "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MaxPressure", - "code": 0, + "name": "SoftwareVersionString", + "code": 10, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -4714,14 +4456,14 @@ "reportableChange": 0 }, { - "name": "MaxSpeed", - "code": 1, + "name": "ManufacturingDate", + "code": 11, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -4730,14 +4472,14 @@ "reportableChange": 0 }, { - "name": "MaxFlow", - "code": 2, + "name": "PartNumber", + "code": 12, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -4746,109 +4488,109 @@ "reportableChange": 0 }, { - "name": "MinConstPressure", - "code": 3, + "name": "ProductURL", + "code": 13, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "long_char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstPressure", - "code": 4, + "name": "ProductLabel", + "code": 14, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinCompPressure", - "code": 5, + "name": "SerialNumber", + "code": 15, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxCompPressure", - "code": 6, + "name": "LocalConfigDisabled", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "boolean", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "NVM", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstSpeed", - "code": 7, + "name": "Reachable", + "code": 17, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, + "type": "boolean", + "included": 0, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstSpeed", - "code": 8, + "name": "UniqueID", + "code": 18, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstFlow", - "code": 9, + "name": "CapabilityMinima", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "CapabilityMinimaStruct", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -4858,208 +4600,219 @@ "reportableChange": 0 }, { - "name": "MaxConstFlow", - "code": 10, + "name": "ProductAppearance", + "code": 20, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "ProductAppearanceStruct", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstTemp", - "code": 11, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxConstTemp", - "code": 12, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ], + "events": [ { - "name": "PumpStatus", - "code": 16, + "name": "StartUp", + "code": 0, "mfgCode": null, "side": "server", - "type": "PumpStatusBitmap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "included": 1 }, { - "name": "EffectiveOperationMode", - "code": 17, + "name": "ShutDown", + "code": 1, "mfgCode": null, "side": "server", - "type": "OperationModeEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "included": 1 }, { - "name": "EffectiveControlMode", - "code": 18, + "name": "Leave", + "code": 2, "mfgCode": null, "side": "server", - "type": "ControlModeEnum", + "included": 1 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Capacity", - "code": 19, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "int16s", + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "Speed", - "code": 20, + "name": "NumberOfPositions", + "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LifetimeRunningHours", - "code": 21, + "name": "CurrentPosition", + "code": 1, "mfgCode": null, "side": "server", - "type": "int24u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Power", - "code": 22, + "name": "MultiPressMax", + "code": 2, "mfgCode": null, "side": "server", - "type": "int24u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LifetimeEnergyConsumed", - "code": 23, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OperationMode", - "code": 32, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "OperationModeEnum", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ControlMode", - "code": 33, + "name": "AttributeList", + "code": 65531, "mfgCode": null, "side": "server", - "type": "ControlModeEnum", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5091,52 +4844,44 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Thermostat", - "code": 513, + "name": "Administrator Commissioning", + "code": 60, "mfgCode": null, - "define": "THERMOSTAT_CLUSTER", + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", "side": "client", "enabled": 0, "commands": [ { - "name": "SetpointRaiseLower", + "name": "OpenCommissioningWindow", "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { - "name": "SetWeeklySchedule", + "name": "OpenBasicCommissioningWindow", "code": 1, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { - "name": "GetWeeklySchedule", + "name": "RevokeCommissioning", "code": 2, "mfgCode": null, "source": "client", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ClearWeeklySchedule", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -5151,7 +4896,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -5160,325 +4905,307 @@ ] }, { - "name": "Thermostat", - "code": 513, + "name": "Administrator Commissioning", + "code": 60, "mfgCode": null, - "define": "THERMOSTAT_CLUSTER", + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", "side": "server", "enabled": 1, - "commands": [ - { - "name": "GetWeeklyScheduleResponse", - "code": 0, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 0 - } - ], "attributes": [ { - "name": "LocalTemperature", + "name": "WindowStatus", "code": 0, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "CommissioningWindowStatusEnum", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMinHeatSetpointLimit", - "code": 3, + "name": "AdminFabricIndex", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "fabric_idx", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x02BC", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMinCoolSetpointLimit", - "code": 5, + "name": "AdminVendorId", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0640", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMaxCoolSetpointLimit", - "code": 6, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0C80", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PICoolingDemand", - "code": 7, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "int16u", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ { - "name": "PIHeatingDemand", - "code": 8, + "name": "AttestationRequest", + "code": 0, "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OccupiedCoolingSetpoint", - "code": 17, + "name": "CertificateChainRequest", + "code": 2, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0A28", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OccupiedHeatingSetpoint", - "code": 18, + "name": "CSRRequest", + "code": 4, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x07D0", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinHeatSetpointLimit", - "code": 21, + "name": "AddNOC", + "code": 6, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x02BC", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MaxHeatSetpointLimit", - "code": 22, + "name": "UpdateNOC", + "code": 7, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0BB8", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinCoolSetpointLimit", - "code": 23, + "name": "UpdateFabricLabel", + "code": 9, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0640", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MaxCoolSetpointLimit", - "code": 24, + "name": "RemoveFabric", + "code": 10, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0C80", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinSetpointDeadBand", - "code": 25, + "name": "AddTrustedRootCertificate", + "code": 11, "mfgCode": null, - "side": "server", - "type": "int8s", + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x19", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 }, { - "name": "ControlSequenceOfOperation", - "code": 27, - "mfgCode": null, - "side": "server", - "type": "ThermostatControlSequence", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x04", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SystemMode", - "code": 28, + "name": "CertificateChainResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Fabrics", + "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "StartOfWeek", - "code": 32, + "name": "SupportedFabrics", + "code": 2, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfWeeklyTransitions", - "code": 33, + "name": "CommissionedFabrics", + "code": 3, "mfgCode": null, "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "7", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfDailyTransitions", - "code": 34, + "name": "TrustedRootCertificates", + "code": 4, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TemperatureSetpointHold", - "code": 35, + "name": "CurrentFabricIndex", + "code": 5, "mfgCode": null, "side": "server", - "type": "enum8", - "included": 0, - "storageOption": "RAM", + "type": "int8u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5491,10 +5218,10 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000b", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5507,27 +5234,69 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Thermostat User Interface Configuration", - "code": 516, + "name": "Boolean State", + "code": 69, "mfgCode": null, - "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "define": "BOOLEAN_STATE_CLUSTER", "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Boolean State", + "code": 69, + "mfgCode": null, + "define": "BOOLEAN_STATE_CLUSTER", + "side": "server", "enabled": 1, "attributes": [ + { + "name": "StateValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, "mfgCode": null, - "side": "client", + "side": "server", "type": "bitmap32", "included": 1, "storageOption": "RAM", @@ -5543,13 +5312,13 @@ "name": "ClusterRevision", "code": 65533, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5558,51 +5327,71 @@ ] }, { - "name": "Thermostat User Interface Configuration", - "code": 516, + "name": "Mode Select", + "code": 80, "mfgCode": null, - "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", - "side": "server", + "define": "MODE_SELECT_CLUSTER", + "side": "client", "enabled": 1, - "attributes": [ + "commands": [ { - "name": "TemperatureDisplayMode", + "name": "ChangeToMode", "code": 0, "mfgCode": null, - "side": "server", - "type": "enum8", + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "KeypadLockout", - "code": 1, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "enum8", + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Mode Select", + "code": 80, + "mfgCode": null, + "define": "MODE_SELECT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "ScheduleProgrammingVisibility", - "code": 2, + "name": "Description", + "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "char_string", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -5614,11 +5403,11 @@ "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "StandardNamespace", + "code": 1, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum16", "included": 1, "storageOption": "External", "singleton": 0, @@ -5630,8 +5419,8 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "SupportedModes", + "code": 2, "mfgCode": null, "side": "server", "type": "array", @@ -5639,20 +5428,20 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "255", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, - "mfgCode": null, + "name": "CurrentMode", + "code": 3, + "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -5662,108 +5451,88 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "StartUpMode", + "code": 4, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Illuminance Measurement", - "code": 1024, - "mfgCode": null, - "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Illuminance Measurement", - "code": 1024, - "mfgCode": null, - "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "AttributeList", + "code": 65531, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", "type": "int16u", @@ -5771,85 +5540,139 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFFFE", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + } + ] + }, + { + "name": "Window Covering", + "code": 258, + "mfgCode": null, + "define": "WINDOW_COVERING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "UpOrOpen", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "DownOrClose", + "code": 1, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 0 }, { - "name": "LightSensorType", + "name": "StopMotion", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToLiftValue", "code": 4, "mfgCode": null, - "side": "server", - "type": "enum8", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFF", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "GoToLiftPercentage", + "code": 5, "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToTiltValue", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 }, + { + "name": "GoToTiltPercentage", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ { "name": "ClusterRevision", "code": 65533, "mfgCode": null, - "side": "server", + "side": "client", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Temperature Measurement", - "code": 1026, + "name": "Door Lock", + "code": 257, "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "define": "DOOR_LOCK_CLUSTER", "side": "client", "enabled": 1, + "commands": [ + { + "name": "Lock Door", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Unlock Door", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Unlock with Timeout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "ClusterRevision", @@ -5861,76 +5684,76 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "6", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Temperature Measurement", - "code": 1026, + "name": "Door Lock", + "code": 257, "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "define": "DOOR_LOCK_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "MeasuredValue", - "code": 0, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "6", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "LockState", + "code": 0, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "LockType", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "ActuatorEnabled", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -5938,117 +5761,49 @@ "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Pressure Measurement", - "code": 1027, - "mfgCode": null, - "define": "PRESSURE_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "3", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Pressure Measurement", - "code": 1027, - "mfgCode": null, - "define": "PRESSURE_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "MeasuredValue", - "code": 0, + "name": "DoorState", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "DoorOpenEvents", + "code": 4, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "DoorClosedEvents", + "code": 5, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6058,93 +5813,93 @@ "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "OpenPeriod", + "code": 6, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ScaledValue", + "name": "NumberOfLogRecordsSupported", "code": 16, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinScaledValue", + "name": "NumberOfTotalUsersSupported", "code": 17, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxScaledValue", + "name": "NumberOfPINUsersSupported", "code": 18, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ScaledTolerance", + "name": "NumberOfRFIDUsersSupported", "code": 19, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Scale", + "name": "NumberOfWeekDaySchedulesSupportedPerUser", "code": 20, "mfgCode": null, "side": "server", - "type": "int8s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -6154,81 +5909,61 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "NumberOfYearDaySchedulesSupportedPerUser", + "code": 21, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "NumberOfHolidaySchedulesSupported", + "code": 22, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Flow Measurement", - "code": 1028, - "mfgCode": null, - "define": "FLOW_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MaxPINCodeLength", + "code": 23, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Flow Measurement", - "code": 1028, - "mfgCode": null, - "define": "FLOW_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "MinPINCodeLength", + "code": 24, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6238,29 +5973,29 @@ "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "MaxRFIDCodeLength", + "code": 25, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "MinRFIDCodeLength", + "code": 26, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6270,939 +6005,765 @@ "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "CredentialRulesSupport", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "NumberOfCredentialsSupportedPerUser", + "code": 28, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "EnableLogging", + "code": 32, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Relative Humidity Measurement", - "code": 1029, - "mfgCode": null, - "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "Language", + "code": 33, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "String", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, + } + ,{ + "name": "LEDSettings", + "code": 34, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Relative Humidity Measurement", - "code": 1029, - "mfgCode": null, - "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "AutoRelockTime", + "code": 35, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "SoundVolume", + "code": 36, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "OperatingMode", + "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x2710", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "SupportedOperatingModes", + "code": 38, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "65526", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "DefaultConfigurationRegister", + "code": 39, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "EnableLocalProgramming", + "code": 40, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "EnableOneTouchLocking", + "code": 41, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "EnableInsideStatusLED", + "code": 42, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "EnablePrivacyModeButton", + "code": 43, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Target Navigator", - "code": 1285, - "mfgCode": null, - "define": "TARGET_NAVIGATOR_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "NavigateTarget", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "LocalProgrammingFeatures", + "code": 44, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Target Navigator", - "code": 1285, - "mfgCode": null, - "define": "TARGET_NAVIGATOR_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "NavigateTargetResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "TargetList", - "code": 0, + "name": "WrongCodeEntryLimit", + "code": 48, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentTarget", - "code": 1, + "name": "UserCodeTemporaryDisableTime", + "code": 49, "mfgCode": null, "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "SendPINOverTheAir", + "code": 50, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "RequirePINforRemoteOperation", + "code": 51, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "SecurityLevel", + "code": 52, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ExpiringUserTimeout", + "code": 53, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "AlarmMask", + "code": 64, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Keypad Input", - "code": 1289, - "mfgCode": null, - "define": "KEYPAD_INPUT_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "SendKey", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "KeypadOperationEventMask", + "code": 65, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Keypad Input", - "code": 1289, - "mfgCode": null, - "define": "KEYPAD_INPUT_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "SendKeyResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "RemoteOperationEventMask", + "code": 66, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ManualOperationEventMask", + "code": 67, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "RFIDOperationEventMask", + "code": 68, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "KeypadProgrammingEventMask", + "code": 69, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RemoteProgrammingEventMask", + "code": 70, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Content Launcher", - "code": 1290, - "mfgCode": null, - "define": "CONTENT_LAUNCHER_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "LaunchContent", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "LaunchURL", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "RFIDProgrammingEventMask", + "code": 71, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] - }, + }, { - "name": "Content Launcher", - "code": 1290, + "name": "Window Covering", + "code": 258, "mfgCode": null, - "define": "CONTENT_LAUNCHER_CLUSTER", + "define": "WINDOW_COVERING_CLUSTER", "side": "server", "enabled": 1, - "commands": [ - { - "name": "LauncherResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], "attributes": [ { - "name": "AcceptHeader", + "name": "Type", "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "Type", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedStreamingProtocols", - "code": 1, + "name": "CurrentPositionLift", + "code": 3, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x7FFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "CurrentPositionTilt", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x7FFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ConfigStatus", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "ConfigStatus", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x03", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "CurrentPositionLiftPercentage", + "code": 8, "mfgCode": null, "side": "server", - "type": "array", + "type": "Percent", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "50", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 100, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "CurrentPositionTiltPercentage", + "code": 9, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "Percent", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "50", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 100, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OperationalStatus", + "code": 10, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Application Basic", - "code": 1293, - "mfgCode": null, - "define": "APPLICATION_BASIC_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "type": "OperationalStatus", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 127, "reportableChange": 0 - } - ] - }, - { - "name": "Application Basic", - "code": 1293, - "mfgCode": null, - "define": "APPLICATION_BASIC_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "VendorName", - "code": 0, + "name": "TargetPositionLiftPercent100ths", + "code": 11, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "Percent100ths", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "VendorID", - "code": 1, + "name": "TargetPositionTiltPercent100ths", + "code": 12, "mfgCode": null, "side": "server", - "type": "vendor_id", + "type": "Percent100ths", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "ApplicationName", - "code": 2, + "name": "EndProductType", + "code": 13, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "EndProductType", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ProductID", - "code": 3, + "name": "CurrentPositionLiftPercent100ths", + "code": 14, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "Percent100ths", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "Application", - "code": 4, + "name": "CurrentPositionTiltPercent100ths", + "code": 15, "mfgCode": null, "side": "server", - "type": "ApplicationStruct", + "type": "Percent100ths", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "Status", - "code": 5, + "name": "InstalledOpenLimitLift", + "code": 16, "mfgCode": null, "side": "server", - "type": "ApplicationStatusEnum", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "0x0000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ApplicationVersion", - "code": 6, + "name": "InstalledClosedLimitLift", + "code": 17, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AllowedVendorList", - "code": 7, + "name": "InstalledOpenLimitTilt", + "code": 18, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "InstalledClosedLimitTilt", + "code": 19, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "Mode", + "code": 23, "mfgCode": null, "side": "server", - "type": "array", + "type": "Mode", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 15, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "SafetyStatus", + "code": 26, "mfgCode": null, "side": "server", - "type": "array", + "type": "SafetyStatus", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -7215,10 +6776,10 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x17", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -7231,64 +6792,22 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] - } - ] - }, - { - "name": "Anonymous Endpoint Type", - "deviceTypeName": "MA-dimmablelight", - "deviceTypeCode": 257, - "deviceTypeProfileId": 259, - "clusters": [ + }, { - "name": "Identify", - "code": 3, + "name": "Pump Configuration and Control", + "code": 512, "mfgCode": null, - "define": "IDENTIFY_CLUSTER", + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "client", "enabled": 0, - "commands": [ - { - "name": "Identify", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "TriggerEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -7299,7 +6818,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "3", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7308,69 +6827,69 @@ ] }, { - "name": "Identify", - "code": 3, + "name": "Pump Configuration and Control", + "code": 512, "mfgCode": null, - "define": "IDENTIFY_CLUSTER", + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "IdentifyTime", + "name": "MaxPressure", "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "IdentifyType", + "name": "MaxSpeed", "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "MaxFlow", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "MinConstPressure", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7380,13 +6899,13 @@ "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "MaxConstPressure", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7396,13 +6915,13 @@ "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "MinCompPressure", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7412,24 +6931,24 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "MaxCompPressure", + "code": 6, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MinConstSpeed", + "code": 7, "mfgCode": null, "side": "server", "type": "int16u", @@ -7437,154 +6956,50 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Groups", - "code": 4, - "mfgCode": null, - "define": "GROUPS_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "AddGroup", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ViewGroup", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "GetGroupMembership", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "RemoveGroup", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "RemoveAllGroups", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "AddGroupIfIdentifying", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "MaxConstSpeed", + "code": 8, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MinConstFlow", + "code": 9, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Groups", - "code": 4, - "mfgCode": null, - "define": "GROUPS_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "AddGroupResponse", - "code": 0, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ViewGroupResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "GetGroupMembershipResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 }, { - "name": "RemoveGroupResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "NameSupport", - "code": 0, + "name": "MaxConstFlow", + "code": 10, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7596,13 +7011,13 @@ "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "MinConstTemp", + "code": 11, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7612,13 +7027,13 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "MaxConstTemp", + "code": 12, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7628,497 +7043,265 @@ "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "PumpStatus", + "code": 16, "mfgCode": null, "side": "server", - "type": "array", + "type": "PumpStatusBitmap", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "EffectiveOperationMode", + "code": 17, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationModeEnum", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "EffectiveControlMode", + "code": 18, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "ControlModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Capacity", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Scenes", - "code": 5, - "mfgCode": null, - "define": "SCENES_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "AddScene", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ViewScene", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "RemoveScene", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "RemoveAllScenes", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "StoreScene", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "RecallScene", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "GetSceneMembership", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Speed", + "code": 20, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Scenes", - "code": 5, - "mfgCode": null, - "define": "SCENES_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "AddSceneResponse", - "code": 0, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ViewSceneResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "RemoveSceneResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "RemoveAllScenesResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "StoreSceneResponse", - "code": 4, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 }, { - "name": "GetSceneMembershipResponse", - "code": 6, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "SceneCount", - "code": 0, + "name": "LifetimeRunningHours", + "code": 21, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int24u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x000000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentScene", - "code": 1, + "name": "Power", + "code": 22, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int24u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentGroup", - "code": 2, + "name": "LifetimeEnergyConsumed", + "code": 23, "mfgCode": null, "side": "server", - "type": "group_id", + "type": "int32u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00000000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SceneValid", - "code": 3, + "name": "OperationMode", + "code": 32, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "OperationModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "NameSupport", - "code": 4, + "name": "ControlMode", + "code": 33, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "ControlModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LastConfiguredBy", - "code": 5, + "name": "AlarmMask", + "code": 34, "mfgCode": null, "side": "server", - "type": "node_id", - "included": 0, + "type": "bitmap16", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "3", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "EventList", - "code": 65530, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AttributeList", - "code": 65531, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "On/Off", - "code": 6, + "name": "Thermostat", + "code": 513, "mfgCode": null, - "define": "ON_OFF_CLUSTER", + "define": "THERMOSTAT_CLUSTER", "side": "client", "enabled": 1, "commands": [ { - "name": "Off", + "name": "SetpointRaiseLower", "code": 0, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "On", + "name": "SetWeeklySchedule", "code": 1, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "Toggle", + "name": "GetWeeklySchedule", "code": 2, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "OffWithEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "OnWithRecallGlobalScene", - "code": 65, + "name": "ClearWeeklySchedule", + "code": 3, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "OnWithTimedOff", - "code": 66, + "name": "GetRelayStatusLog", + "code": 4, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 } ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -8129,601 +7312,5869 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "On/Off", - "code": 6, + "name": "Thermostat", + "code": 513, "mfgCode": null, - "define": "ON_OFF_CLUSTER", + "define": "THERMOSTAT_CLUSTER", "side": "server", "enabled": 1, + "commands": [ + { + "name": "GetWeeklyScheduleResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetRelayStatusLogResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { - "name": "OnOff", + "name": "LocalTemperature", "code": 0, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GlobalSceneControl", - "code": 16384, + "name": "OutdoorTemperature", + "code": 1, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OnTime", - "code": 16385, + "name": "Occupancy", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OffWaitTime", - "code": 16386, + "name": "AbsMinHeatSetpointLimit", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x02BC", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpOnOff", - "code": 16387, + "name": "AbsMaxHeatSetpointLimit", + "code": 4, "mfgCode": null, "side": "server", - "type": "OnOffStartUpOnOff", + "type": "int16s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0BB8", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "AbsMinCoolSetpointLimit", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0640", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "AbsMaxCoolSetpointLimit", + "code": 6, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0C80", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "PICoolingDemand", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "PIHeatingDemand", + "code": 8, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "HVACSystemTypeConfiguration", + "code": 9, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "LocalTemperatureCalibration", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Level Control", - "code": 8, - "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToLevel", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "Move", - "code": 1, + "name": "OccupiedCoolingSetpoint", + "code": 17, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0A28", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Step", - "code": 2, + "name": "OccupiedHeatingSetpoint", + "code": 18, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07D0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Stop", - "code": 3, + "name": "UnoccupiedCoolingSetpoint", + "code": 19, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0A28", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "MoveToLevelWithOnOff", - "code": 4, + "name": "UnoccupiedHeatingSetpoint", + "code": 20, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07D0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "MoveWithOnOff", - "code": 5, + "name": "MinHeatSetpointLimit", + "code": 21, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02BC", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StepWithOnOff", - "code": 6, + "name": "MaxHeatSetpointLimit", + "code": 22, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0BB8", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StopWithOnOff", - "code": 7, + "name": "MinCoolSetpointLimit", + "code": 23, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0640", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "FeatureMap", - "code": 65532, + "name": "MaxCoolSetpointLimit", + "code": 24, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x0C80", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MinSetpointDeadBand", + "code": 25, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int8s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "0x19", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Level Control", - "code": 8, - "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "CurrentLevel", - "code": 0, + "name": "RemoteSensing", + "code": 26, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "RemainingTime", - "code": 1, + "name": "ControlSequenceOfOperation", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "ThermostatControlSequence", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x04", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinLevel", - "code": 2, + "name": "SystemMode", + "code": 28, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "enum8", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AlarmMask", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ThermostatRunningMode", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartOfWeek", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfWeeklyTransitions", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "7", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfDailyTransitions", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TemperatureSetpointHold", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TemperatureSetpointHoldDuration", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ThermostatProgrammingOperationMode", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ThermostatRunningState", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SetpointChangeSource", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SetpointChangeAmount", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SetpointChangeSourceTimestamp", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "utc", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupiedSetback", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupiedSetbackMin", + "code": 53, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupiedSetbackMax", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UnoccupiedSetback", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UnoccupiedSetbackMin", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UnoccupiedSetbackMax", + "code": 57, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EmergencyHeatDelta", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x009F6", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACType", + "code": 64, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACCapacity", + "code": 65, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACRefrigerantType", + "code": 66, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACCompressorType", + "code": 67, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACErrorCode", + "code": 68, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 1, + "defaultValue": "0", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACLouverPosition", + "code": 69, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACCoilTemperature", + "code": 70, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACCapacityFormat", + "code": 71, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000b", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thermostat User Interface Configuration", + "code": 516, + "mfgCode": null, + "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Thermostat User Interface Configuration", + "code": 516, + "mfgCode": null, + "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "TemperatureDisplayMode", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "KeypadLockout", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScheduleProgrammingVisibility", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LightSensorType", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledValue", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinScaledValue", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxScaledValue", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledTolerance", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Scale", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2710", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "NavigateTarget", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "NavigateTargetResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "TargetList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentTarget", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "SendKey", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "SendKeyResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "LaunchContent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "LaunchURL", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "LauncherResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "AcceptHeader", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedStreamingProtocols", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "VendorName", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ApplicationName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Application", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "ApplicationStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Status", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "ApplicationStatusEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ApplicationVersion", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AllowedVendorList", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPIN", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Login", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Logout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPINResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "LaunchApp", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StopApp", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "HideApp", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CatalogList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentApp", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "ApplicationEP", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "LauncherResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "SelectOutput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RenameOutput", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OutputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentOutput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ChangeChannel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ChangeChannelByNumber", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "SkipChannel", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ChannelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Lineup", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "LineupInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentChannel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "ChannelInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ChangeChannelResponse", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Sleep", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Play", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Pause", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StartOver", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Previous", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Next", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Rewind", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "FastForward", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipForward", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipBackward", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Seek", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "PlaybackResponse", + "code": 10, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "CurrentState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PlaybackStateType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "epoch_us", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Duration", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SampledPosition", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "PlaybackPositionType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PlaybackSpeed", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "SingleType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeEnd", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeStart", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "SelectInput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ShowInputStatus", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "HideInputStatus", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RenameInput", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "InputInfoStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentInput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-dimmablelight", + "deviceTypeCode": 257, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "IdentifyTime", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "IdentifyType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NameSupport", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConfiguredBy", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "node_id", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OffWithEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OnWithRecallGlobalScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OnWithTimedOff", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CurrentLevel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinLevel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxLevel", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentFrequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinFrequency", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxFrequency", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "LevelControlOptions", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnOffTransitionTime", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnLevel", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTransitionTime", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffTransitionTime", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "DefaultMoveRate", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpCurrentLevel", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxLevel", - "code": 3, + "name": "SerialNumber", + "code": 15, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFE", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentFrequency", - "code": 4, + "name": "LocalConfigDisabled", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinFrequency", - "code": 5, + "name": "Reachable", + "code": 17, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "boolean", + "included": 1, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxFrequency", - "code": 6, + "name": "UniqueID", + "code": 18, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "CapabilityMinima", + "code": 19, "mfgCode": null, "side": "server", - "type": "LevelControlOptions", + "type": "CapabilityMinimaStruct", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OnOffTransitionTime", - "code": 16, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "bitmap32", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OnLevel", - "code": 17, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ { - "name": "OnTransitionTime", - "code": 18, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, + "side": "client", + "type": "bitmap32", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OffTransitionTime", - "code": 19, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", + "side": "client", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "DefaultMoveRate", - "code": 20, + "name": "ActiveLocale", + "code": 0, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "char_string", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpCurrentLevel", - "code": 16384, + "name": "SupportedLocales", + "code": 1, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ { - "name": "EventList", - "code": 65530, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "array", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "AttributeList", - "code": 65531, + "name": "TemperatureUnit", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "TempUnitEnum", "included": 1, - "storageOption": "External", - "singleton": 0, + "storageOption": "RAM", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, @@ -8753,7 +13204,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -8762,29 +13213,81 @@ ] }, { - "name": "Descriptor", - "code": 29, + "name": "Fixed Label", + "code": 64, "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", + "define": "FIXED_LABEL_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, "attributes": [ { - "name": "FeatureMap", - "code": 65532, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "client", - "type": "bitmap32", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { "name": "ClusterRevision", "code": 65533, @@ -8804,15 +13307,15 @@ ] }, { - "name": "Descriptor", - "code": 29, + "name": "User Label", + "code": 65, "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", + "define": "USER_LABEL_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "DeviceTypeList", + "name": "LabelList", "code": 0, "mfgCode": null, "side": "server", @@ -8828,136 +13331,294 @@ "reportableChange": 0 }, { - "name": "ServerList", - "code": 1, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClientList", - "code": 2, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "PartsList", + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToSaturation", "code": 3, "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveToHue", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveHue", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedStepHue", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveToHueAndSaturation", + "code": 67, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ColorLoopSet", + "code": 68, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopMoveStep", + "code": 71, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColorTemperature", + "code": 75, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "array", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "5", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "AcceptedCommandList", - "code": 65529, + "name": "CurrentHue", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "CurrentSaturation", + "code": 1, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "RemainingTime", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "CurrentX", + "code": 3, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x616B", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "CurrentY", + "code": 4, "mfgCode": null, "side": "server", "type": "int16u", @@ -8965,358 +13626,290 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x607D", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 1, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "DataModelRevision", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "VendorName", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 }, { - "name": "VendorID", - "code": 2, + "name": "DriftCompensation", + "code": 5, "mfgCode": null, "side": "server", - "type": "vendor_id", + "type": "enum8", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductName", - "code": 3, + "name": "CompensationText", + "code": 6, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "string", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductID", - "code": 4, + "name": "ColorTemperatureMireds", + "code": 7, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00FA", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NodeLabel", - "code": 5, + "name": "ColorMode", + "code": 8, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "enum8", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Location", - "code": 6, + "name": "Options", + "code": 15, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "bitmap8", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "XX", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "HardwareVersion", - "code": 7, + "name": "EnhancedCurrentHue", + "code": 16384, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "HardwareVersionString", - "code": 8, + "name": "EnhancedColorMode", + "code": 16385, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "enum8", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x01", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SoftwareVersion", - "code": 9, + "name": "ColorLoopActive", + "code": 16386, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int8u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SoftwareVersionString", - "code": 10, + "name": "ColorLoopDirection", + "code": 16387, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ManufacturingDate", - "code": 11, + "name": "ColorLoopTime", + "code": 16388, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "20210614123456ZZ", + "defaultValue": "0x0019", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PartNumber", - "code": 12, + "name": "ColorLoopStartEnhancedHue", + "code": 16389, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x2300", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductURL", - "code": 13, + "name": "ColorLoopStoredEnhancedHue", + "code": 16390, "mfgCode": null, "side": "server", - "type": "long_char_string", + "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductLabel", - "code": 14, + "name": "ColorCapabilities", + "code": 16394, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "bitmap16", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SerialNumber", - "code": 15, + "name": "ColorTempPhysicalMinMireds", + "code": 16395, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LocalConfigDisabled", - "code": 16, + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "bitmap8", "included": 1, - "storageOption": "NVM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0xfeff", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Reachable", - "code": 17, + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "UniqueID", - "code": 18, + "name": "NumberOfPrimaries", + "code": 16, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CapabilityMinima", - "code": 19, + "name": "Primary1X", + "code": 17, "mfgCode": null, "side": "server", - "type": "CapabilityMinimaStruct", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, @@ -9328,347 +13921,267 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary1Y", + "code": 18, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary1Intensity", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Localization Configuration", - "code": 43, - "mfgCode": null, - "define": "LOCALIZATION_CONFIGURATION_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary2X", + "code": 21, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary2Y", + "code": 22, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Localization Configuration", - "code": 43, - "mfgCode": null, - "define": "LOCALIZATION_CONFIGURATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "ActiveLocale", - "code": 0, + "name": "Primary2Intensity", + "code": 23, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SupportedLocales", - "code": 1, + "name": "Primary3X", + "code": 25, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary3Y", + "code": 26, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary3Intensity", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Unit Localization", - "code": 45, - "mfgCode": null, - "define": "UNIT_LOCALIZATION_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary4X", + "code": 32, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Unit Localization", - "code": 45, - "mfgCode": null, - "define": "UNIT_LOCALIZATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "TemperatureUnit", - "code": 0, + "name": "Primary4Y", + "code": 33, "mfgCode": null, "side": "server", - "type": "TempUnitEnum", + "type": "int16u", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, + "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary4Intensity", + "code": 34, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary5X", + "code": 36, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary5Y", + "code": 37, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "LabelList", - "code": 0, + "name": "Primary5Intensity", + "code": 38, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary6X", + "code": 40, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary6Y", + "code": 41, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "LabelList", - "code": 0, + "name": "Primary6Intensity", + "code": 42, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, @@ -9680,24 +14193,24 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "WhitePointX", + "code": 48, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "WhitePointY", + "code": 49, "mfgCode": null, "side": "server", "type": "int16u", @@ -9705,178 +14218,148 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToColor", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "MoveColor", - "code": 8, + "name": "ColorPointRX", + "code": 50, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "StepColor", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorPointRY", + "code": 51, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "CurrentHue", - "code": 0, + "name": "ColorPointRIntensity", + "code": 52, "mfgCode": null, "side": "server", "type": "int8u", - "included": 0, - "storageOption": "RAM", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentSaturation", - "code": 1, + "name": "ColorPointGX", + "code": 54, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", + "type": "int16u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentX", - "code": 3, + "name": "ColorPointGY", + "code": 55, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x616B", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentY", - "code": 4, + "name": "ColorPointGIntensity", + "code": 56, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x607D", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorTemperatureMireds", - "code": 7, + "name": "ColorPointBX", + "code": 58, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, - "storageOption": "RAM", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00FA", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "ColorPointBY", + "code": 59, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CoupleColorTempToLevelMinMireds", - "code": 16397, + "name": "ColorPointBIntensity", + "code": 60, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -9935,32 +14418,6 @@ } ] }, - { - "name": "Occupancy Sensing", - "code": 1030, - "mfgCode": null, - "define": "OCCUPANCY_SENSING_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "3", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, { "name": "Occupancy Sensing", "code": 1030, diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 7ae83770cc884a..f2b0b6e22083e4 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -369,6 +369,129 @@ server cluster OnOff = 6 { command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } +/** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ +client cluster LevelControl = 8 { + enum MoveMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + enum StepMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + bitmap Feature : BITMAP32 { + kOnOff = 0x1; + kLighting = 0x2; + kFrequency = 0x4; + } + + bitmap LevelControlOptions : BITMAP8 { + kExecuteIfOff = 0x1; + kCoupleColorTempToLevel = 0x2; + } + + readonly attribute nullable int8u currentLevel = 0; + readonly attribute optional int16u remainingTime = 1; + readonly attribute optional int8u minLevel = 2; + readonly attribute optional int8u maxLevel = 3; + readonly attribute optional int16u currentFrequency = 4; + readonly attribute optional int16u minFrequency = 5; + readonly attribute optional int16u maxFrequency = 6; + attribute LevelControlOptions options = 15; + attribute optional int16u onOffTransitionTime = 16; + attribute nullable int8u onLevel = 17; + attribute optional nullable int16u onTransitionTime = 18; + attribute optional nullable int16u offTransitionTime = 19; + attribute optional nullable int8u defaultMoveRate = 20; + attribute access(write: manage) optional nullable int8u startUpCurrentLevel = 16384; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToLevelRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToLevelWithOnOffRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveWithOnOffRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepWithOnOffRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopWithOnOffRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToClosestFrequencyRequest { + INT16U frequency = 0; + } + + /** Command description for MoveToLevel */ + command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; + /** Command description for Move */ + command Move(MoveRequest): DefaultSuccess = 1; + /** Command description for Step */ + command Step(StepRequest): DefaultSuccess = 2; + /** Command description for Stop */ + command Stop(StopRequest): DefaultSuccess = 3; + /** Command description for MoveToLevelWithOnOff */ + command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4; + /** Command description for MoveWithOnOff */ + command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; + /** Command description for StepWithOnOff */ + command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; + /** Command description for StopWithOnOff */ + command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7; + /** Change the currrent frequency to the provided one, or a close + approximation if the exact provided one is not possible. */ + command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8; +} + /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { enum MoveMode : ENUM8 { @@ -394,8 +517,15 @@ server cluster LevelControl = 8 { readonly attribute nullable int8u currentLevel = 0; readonly attribute int16u remainingTime = 1; + readonly attribute int8u minLevel = 2; + readonly attribute int8u maxLevel = 3; + readonly attribute int16u minFrequency = 5; + readonly attribute int16u maxFrequency = 6; attribute LevelControlOptions options = 15; + attribute int16u onOffTransitionTime = 16; attribute nullable int8u onLevel = 17; + attribute nullable int16u onTransitionTime = 18; + attribute nullable int16u offTransitionTime = 19; attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; @@ -1485,6 +1615,333 @@ server cluster SoftwareDiagnostics = 52 { command ResetWatermarks(): DefaultSuccess = 0; } +/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ +client cluster ThreadNetworkDiagnostics = 53 { + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + bitmap Feature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + int16u flags = 1; + } + + info event ConnectionStatus = 0 { + ConnectionStatusEnum connectionStatus = 0; + } + + info event NetworkFaultChange = 1 { + NetworkFault current[] = 0; + NetworkFault previous[] = 1; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute optional int64u overrunCount = 6; + readonly attribute NeighborTable neighborTable[] = 7; + readonly attribute RouteTable routeTable[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute optional int16u detachedRoleCount = 14; + readonly attribute optional int16u childRoleCount = 15; + readonly attribute optional int16u routerRoleCount = 16; + readonly attribute optional int16u leaderRoleCount = 17; + readonly attribute optional int16u attachAttemptCount = 18; + readonly attribute optional int16u partitionIdChangeCount = 19; + readonly attribute optional int16u betterPartitionAttachAttemptCount = 20; + readonly attribute optional int16u parentChangeCount = 21; + readonly attribute optional int32u txTotalCount = 22; + readonly attribute optional int32u txUnicastCount = 23; + readonly attribute optional int32u txBroadcastCount = 24; + readonly attribute optional int32u txAckRequestedCount = 25; + readonly attribute optional int32u txAckedCount = 26; + readonly attribute optional int32u txNoAckRequestedCount = 27; + readonly attribute optional int32u txDataCount = 28; + readonly attribute optional int32u txDataPollCount = 29; + readonly attribute optional int32u txBeaconCount = 30; + readonly attribute optional int32u txBeaconRequestCount = 31; + readonly attribute optional int32u txOtherCount = 32; + readonly attribute optional int32u txRetryCount = 33; + readonly attribute optional int32u txDirectMaxRetryExpiryCount = 34; + readonly attribute optional int32u txIndirectMaxRetryExpiryCount = 35; + readonly attribute optional int32u txErrCcaCount = 36; + readonly attribute optional int32u txErrAbortCount = 37; + readonly attribute optional int32u txErrBusyChannelCount = 38; + readonly attribute optional int32u rxTotalCount = 39; + readonly attribute optional int32u rxUnicastCount = 40; + readonly attribute optional int32u rxBroadcastCount = 41; + readonly attribute optional int32u rxDataCount = 42; + readonly attribute optional int32u rxDataPollCount = 43; + readonly attribute optional int32u rxBeaconCount = 44; + readonly attribute optional int32u rxBeaconRequestCount = 45; + readonly attribute optional int32u rxOtherCount = 46; + readonly attribute optional int32u rxAddressFilteredCount = 47; + readonly attribute optional int32u rxDestAddrFilteredCount = 48; + readonly attribute optional int32u rxDuplicatedCount = 49; + readonly attribute optional int32u rxErrNoFrameCount = 50; + readonly attribute optional int32u rxErrUnknownNeighborCount = 51; + readonly attribute optional int32u rxErrInvalidSrcAddrCount = 52; + readonly attribute optional int32u rxErrSecCount = 53; + readonly attribute optional int32u rxErrFcsCount = 54; + readonly attribute optional int32u rxErrOtherCount = 55; + readonly attribute optional nullable int64u activeTimestamp = 56; + readonly attribute optional nullable int64u pendingTimestamp = 57; + readonly attribute optional nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelPage0Mask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + /** Reception of this command SHALL reset the OverrunCount attributes to 0 */ + command ResetCounts(): DefaultSuccess = 0; +} + +/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ +server cluster ThreadNetworkDiagnostics = 53 { + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + bitmap Feature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + int16u flags = 1; + } + + info event ConnectionStatus = 0 { + ConnectionStatusEnum connectionStatus = 0; + } + + info event NetworkFaultChange = 1 { + NetworkFault current[] = 0; + NetworkFault previous[] = 1; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute int64u overrunCount = 6; + readonly attribute NeighborTable neighborTable[] = 7; + readonly attribute RouteTable routeTable[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute int16u detachedRoleCount = 14; + readonly attribute int16u childRoleCount = 15; + readonly attribute int16u routerRoleCount = 16; + readonly attribute int16u leaderRoleCount = 17; + readonly attribute int16u attachAttemptCount = 18; + readonly attribute int16u partitionIdChangeCount = 19; + readonly attribute int16u betterPartitionAttachAttemptCount = 20; + readonly attribute int16u parentChangeCount = 21; + readonly attribute int32u txTotalCount = 22; + readonly attribute int32u txUnicastCount = 23; + readonly attribute int32u txBroadcastCount = 24; + readonly attribute int32u txAckRequestedCount = 25; + readonly attribute int32u txAckedCount = 26; + readonly attribute int32u txNoAckRequestedCount = 27; + readonly attribute int32u txDataCount = 28; + readonly attribute int32u txDataPollCount = 29; + readonly attribute int32u txBeaconCount = 30; + readonly attribute int32u txBeaconRequestCount = 31; + readonly attribute int32u txOtherCount = 32; + readonly attribute int32u txRetryCount = 33; + readonly attribute int32u txDirectMaxRetryExpiryCount = 34; + readonly attribute int32u txIndirectMaxRetryExpiryCount = 35; + readonly attribute int32u txErrCcaCount = 36; + readonly attribute int32u txErrAbortCount = 37; + readonly attribute int32u txErrBusyChannelCount = 38; + readonly attribute int32u rxTotalCount = 39; + readonly attribute int32u rxUnicastCount = 40; + readonly attribute int32u rxBroadcastCount = 41; + readonly attribute int32u rxDataCount = 42; + readonly attribute int32u rxDataPollCount = 43; + readonly attribute int32u rxBeaconCount = 44; + readonly attribute int32u rxBeaconRequestCount = 45; + readonly attribute int32u rxOtherCount = 46; + readonly attribute int32u rxAddressFilteredCount = 47; + readonly attribute int32u rxDestAddrFilteredCount = 48; + readonly attribute int32u rxDuplicatedCount = 49; + readonly attribute int32u rxErrNoFrameCount = 50; + readonly attribute int32u rxErrUnknownNeighborCount = 51; + readonly attribute int32u rxErrInvalidSrcAddrCount = 52; + readonly attribute int32u rxErrSecCount = 53; + readonly attribute int32u rxErrFcsCount = 54; + readonly attribute int32u rxErrOtherCount = 55; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelPage0Mask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command ResetCounts(): DefaultSuccess = 0; +} + /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { enum AssociationFailureCauseEnum : ENUM8 { @@ -1597,6 +2054,86 @@ server cluster EthernetNetworkDiagnostics = 55 { command ResetCounts(): DefaultSuccess = 0; } +/** This Cluster serves two purposes towards a Node communicating with a Bridge: indicate that the functionality on + the Endpoint where it is placed (and its Parts) is bridged from a non-CHIP technology; and provide a centralized + collection of attributes that the Node MAY collect to aid in conveying information regarding the Bridged Device to a user, + such as the vendor name, the model name, or user-assigned name. */ +server cluster BridgedDeviceBasicInformation = 57 { + enum ColorEnum : ENUM8 { + kBlack = 0; + kNavy = 1; + kGreen = 2; + kTeal = 3; + kMaroon = 4; + kPurple = 5; + kOlive = 6; + kGray = 7; + kBlue = 8; + kLime = 9; + kAqua = 10; + kRed = 11; + kFuchsia = 12; + kYellow = 13; + kWhite = 14; + kNickel = 15; + kChrome = 16; + kBrass = 17; + kCopper = 18; + kSilver = 19; + kGold = 20; + } + + enum ProductFinishEnum : ENUM8 { + kOther = 0; + kMatte = 1; + kSatin = 2; + kPolished = 3; + kRugged = 4; + kFabric = 5; + } + + struct ProductAppearanceStruct { + ProductFinishEnum finish = 0; + nullable ColorEnum primaryColor = 1; + } + + critical event StartUp = 0 { + INT32U softwareVersion = 0; + } + + critical event ShutDown = 1 { + } + + info event Leave = 2 { + } + + info event ReachableChanged = 3 { + boolean reachableNewValue = 0; + } + + readonly attribute char_string<32> vendorName = 1; + readonly attribute vendor_id vendorID = 2; + readonly attribute char_string<32> productName = 3; + attribute char_string<32> nodeLabel = 5; + readonly attribute int16u hardwareVersion = 7; + readonly attribute char_string<64> hardwareVersionString = 8; + readonly attribute int32u softwareVersion = 9; + readonly attribute char_string<64> softwareVersionString = 10; + readonly attribute char_string<16> manufacturingDate = 11; + readonly attribute char_string<32> partNumber = 12; + readonly attribute long_char_string<256> productURL = 13; + readonly attribute char_string<64> productLabel = 14; + readonly attribute char_string<32> serialNumber = 15; + readonly attribute char_string<32> uniqueID = 18; + readonly attribute ProductAppearanceStruct productAppearance = 20; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + /** This cluster exposes interactions with a switch device, for the purpose of using those interactions by other devices. Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ @@ -2122,34 +2659,1094 @@ server cluster ModeSelect = 80 { command ChangeToMode(ChangeToModeRequest): DefaultSuccess = 0; } -/** Provides an interface for controlling and adjusting automatic window coverings. */ -server cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { - kRollerShade = 0; - kRomanShade = 1; - kBalloonShade = 2; - kWovenWood = 3; - kPleatedShade = 4; - kCellularShade = 5; - kLayeredShade = 6; - kLayeredShade2D = 7; - kSheerShade = 8; - kTiltOnlyInteriorBlind = 9; - kInteriorBlind = 10; - kVerticalBlindStripCurtain = 11; - kInteriorVenetianBlind = 12; - kExteriorVenetianBlind = 13; - kLateralLeftCurtain = 14; - kLateralRightCurtain = 15; - kCentralCurtain = 16; - kRollerShutter = 17; - kExteriorVerticalScreen = 18; - kAwningTerracePatio = 19; - kAwningVerticalScreen = 20; - kTiltOnlyPergola = 21; - kSwingingShutter = 22; - kSlidingShutter = 23; - kUnknown = 255; +/** An interface to a generic way to secure a door */ +client cluster DoorLock = 257 { + enum AlarmCodeEnum : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum CredentialRuleEnum : ENUM8 { + kSingle = 0; + kDual = 1; + kTri = 2; + } + + enum CredentialTypeEnum : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DataOperationTypeEnum : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + kUnlatched = 3; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + kEurocylinder = 11; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + enum DoorStateEnum : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum LockDataTypeEnum : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + kFingerVein = 9; + kFace = 10; + } + + enum LockOperationTypeEnum : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + kUnlatch = 4; + } + + enum OperatingModeEnum : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum OperationErrorEnum : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum OperationSourceEnum : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum UserStatusEnum : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum UserTypeEnum : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + bitmap DaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap Feature : BITMAP32 { + kPinCredential = 0x1; + kRfidCredential = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kWeekDayAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOverTheAirAccess = 0x80; + kUser = 0x100; + kNotification = 0x200; + kYearDayAccessSchedules = 0x400; + kHolidaySchedules = 0x800; + kUnbolt = 0x1000; + } + + struct CredentialStruct { + CredentialTypeEnum credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + AlarmCodeEnum alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DoorStateEnum doorState = 0; + } + + critical event LockOperation = 2 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable CredentialStruct credentials[] = 5; + } + + critical event LockOperationError = 3 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + OperationErrorEnum operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable CredentialStruct credentials[] = 6; + } + + info event LockUserChange = 4 { + LockDataTypeEnum lockDataType = 0; + DataOperationTypeEnum dataOperationType = 1; + OperationSourceEnum operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + readonly attribute optional nullable DoorStateEnum doorState = 3; + attribute access(write: manage) optional int32u doorOpenEvents = 4; + attribute access(write: manage) optional int32u doorClosedEvents = 5; + attribute access(write: manage) optional int16u openPeriod = 6; + readonly attribute optional int16u numberOfTotalUsersSupported = 17; + readonly attribute optional int16u numberOfPINUsersSupported = 18; + readonly attribute optional int16u numberOfRFIDUsersSupported = 19; + readonly attribute optional int8u numberOfWeekDaySchedulesSupportedPerUser = 20; + readonly attribute optional int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute optional int8u numberOfHolidaySchedulesSupported = 22; + readonly attribute optional int8u maxPINCodeLength = 23; + readonly attribute optional int8u minPINCodeLength = 24; + readonly attribute optional int8u maxRFIDCodeLength = 25; + readonly attribute optional int8u minRFIDCodeLength = 26; + readonly attribute optional DlCredentialRuleMask credentialRulesSupport = 27; + readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28; + attribute access(write: manage) optional char_string<3> language = 33; + attribute access(write: manage) optional int8u LEDSettings = 34; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) optional int8u soundVolume = 36; + attribute access(write: manage) OperatingModeEnum operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute optional DlDefaultConfigurationRegister defaultConfigurationRegister = 39; + attribute access(write: administer) optional boolean enableLocalProgramming = 40; + attribute access(write: manage) optional boolean enableOneTouchLocking = 41; + attribute access(write: manage) optional boolean enableInsideStatusLED = 42; + attribute access(write: manage) optional boolean enablePrivacyModeButton = 43; + attribute access(write: administer) optional DlLocalProgrammingFeatures localProgrammingFeatures = 44; + attribute access(write: administer) optional int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) optional int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) optional boolean sendPINOverTheAir = 50; + attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; + attribute access(write: administer) optional int16u expiringUserTimeout = 53; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockWithTimeoutRequest { + INT16U timeout = 0; + optional OCTET_STRING PINCode = 1; + } + + request struct SetWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DaysMaskMap daysMask = 2; + INT8U startHour = 3; + INT8U startMinute = 4; + INT8U endHour = 5; + INT8U endMinute = 6; + } + + request struct GetWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + } + + response struct GetWeekDayScheduleResponse = 12 { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional DaysMaskMap daysMask = 3; + optional INT8U startHour = 4; + optional INT8U startMinute = 5; + optional INT8U endHour = 6; + optional INT8U endMinute = 7; + } + + request struct ClearWeekDayScheduleRequest { + INT8U weekDayIndex = 0; + INT16U userIndex = 1; + } + + request struct SetYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + epoch_s localStartTime = 2; + epoch_s localEndTime = 3; + } + + request struct GetYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + } + + response struct GetYearDayScheduleResponse = 15 { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + DlStatus status = 2; + optional epoch_s localStartTime = 3; + optional epoch_s localEndTime = 4; + } + + request struct ClearYearDayScheduleRequest { + INT8U yearDayIndex = 0; + INT16U userIndex = 1; + } + + request struct SetHolidayScheduleRequest { + INT8U holidayIndex = 0; + epoch_s localStartTime = 1; + epoch_s localEndTime = 2; + OperatingModeEnum operatingMode = 3; + } + + request struct GetHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + response struct GetHolidayScheduleResponse = 18 { + INT8U holidayIndex = 0; + DlStatus status = 1; + optional epoch_s localStartTime = 2; + optional epoch_s localEndTime = 3; + optional OperatingModeEnum operatingMode = 4; + } + + request struct ClearHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + request struct SetUserRequest { + DataOperationTypeEnum operationType = 0; + INT16U userIndex = 1; + nullable CHAR_STRING userName = 2; + nullable INT32U userUniqueID = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + nullable CredentialRuleEnum credentialRule = 6; + } + + request struct GetUserRequest { + INT16U userIndex = 0; + } + + response struct GetUserResponse = 28 { + INT16U userIndex = 0; + nullable CHAR_STRING userName = 1; + nullable INT32U userUniqueID = 2; + nullable UserStatusEnum userStatus = 3; + nullable UserTypeEnum userType = 4; + nullable CredentialRuleEnum credentialRule = 5; + nullable CredentialStruct credentials[] = 6; + nullable fabric_idx creatorFabricIndex = 7; + nullable fabric_idx lastModifiedFabricIndex = 8; + nullable INT16U nextUserIndex = 9; + } + + request struct ClearUserRequest { + INT16U userIndex = 0; + } + + request struct SetCredentialRequest { + DataOperationTypeEnum operationType = 0; + CredentialStruct credential = 1; + LONG_OCTET_STRING credentialData = 2; + nullable INT16U userIndex = 3; + nullable UserStatusEnum userStatus = 4; + nullable UserTypeEnum userType = 5; + } + + response struct SetCredentialResponse = 35 { + DlStatus status = 0; + nullable INT16U userIndex = 1; + nullable INT16U nextCredentialIndex = 2; + } + + request struct GetCredentialStatusRequest { + CredentialStruct credential = 0; + } + + response struct GetCredentialStatusResponse = 37 { + boolean credentialExists = 0; + nullable INT16U userIndex = 1; + nullable fabric_idx creatorFabricIndex = 2; + nullable fabric_idx lastModifiedFabricIndex = 3; + nullable INT16U nextCredentialIndex = 4; + } + + request struct ClearCredentialRequest { + nullable CredentialStruct credential = 0; + } + + request struct UnboltDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + /** This command causes the lock device to lock the door. */ + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + /** This command causes the lock device to unlock the door. */ + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; + /** This command causes the lock device to unlock the door with a timeout parameter. */ + timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; + /** Set a weekly repeating schedule for a specified user. */ + command access(invoke: administer) SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; + /** Retrieve the specific weekly schedule for the specific user. */ + command access(invoke: administer) GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; + /** Clear the specific weekly schedule or all weekly schedules for the specific user. */ + command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; + /** Set a time-specific schedule ID for a specified user. */ + command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; + /** Returns the year day schedule data for the specified schedule and user indexes. */ + command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; + /** Clears the specific year day schedule or all year day schedules for the specific user. */ + command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; + /** Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. */ + command access(invoke: administer) SetHolidaySchedule(SetHolidayScheduleRequest): DefaultSuccess = 17; + /** Get the holiday schedule for the specified index. */ + command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; + /** Clears the holiday schedule or all holiday schedules. */ + command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; + /** Set User into the lock. */ + timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; + /** Retrieve User. */ + command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; + /** Clears a User or all Users. */ + timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; + /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ + timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; + /** Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index. */ + command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; + /** Clear one, one type, or all credentials except ProgrammingPIN credential. */ + timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; + /** This command causes the lock device to unlock the door without pulling the latch. */ + timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; +} + +/** An interface to a generic way to secure a door */ +server cluster DoorLock = 257 { + enum AlarmCodeEnum : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum CredentialRuleEnum : ENUM8 { + kSingle = 0; + kDual = 1; + kTri = 2; + } + + enum CredentialTypeEnum : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DataOperationTypeEnum : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + kUnlatched = 3; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + kEurocylinder = 11; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + enum DoorStateEnum : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum LockDataTypeEnum : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + kFingerVein = 9; + kFace = 10; + } + + enum LockOperationTypeEnum : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + kUnlatch = 4; + } + + enum OperatingModeEnum : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum OperationErrorEnum : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum OperationSourceEnum : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum UserStatusEnum : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum UserTypeEnum : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + bitmap DaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap Feature : BITMAP32 { + kPinCredential = 0x1; + kRfidCredential = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kWeekDayAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOverTheAirAccess = 0x80; + kUser = 0x100; + kNotification = 0x200; + kYearDayAccessSchedules = 0x400; + kHolidaySchedules = 0x800; + kUnbolt = 0x1000; + } + + struct CredentialStruct { + CredentialTypeEnum credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + AlarmCodeEnum alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DoorStateEnum doorState = 0; + } + + critical event LockOperation = 2 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable CredentialStruct credentials[] = 5; + } + + critical event LockOperationError = 3 { + LockOperationTypeEnum lockOperationType = 0; + OperationSourceEnum operationSource = 1; + OperationErrorEnum operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable CredentialStruct credentials[] = 6; + } + + info event LockUserChange = 4 { + LockDataTypeEnum lockDataType = 0; + DataOperationTypeEnum dataOperationType = 1; + OperationSourceEnum operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + readonly attribute nullable DoorStateEnum doorState = 3; + attribute access(write: manage) int32u doorOpenEvents = 4; + attribute access(write: manage) int32u doorClosedEvents = 5; + attribute access(write: manage) int16u openPeriod = 6; + readonly attribute int16u numberOfTotalUsersSupported = 17; + readonly attribute int16u numberOfPINUsersSupported = 18; + readonly attribute int16u numberOfRFIDUsersSupported = 19; + readonly attribute int8u numberOfWeekDaySchedulesSupportedPerUser = 20; + readonly attribute int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute int8u numberOfHolidaySchedulesSupported = 22; + readonly attribute int8u maxPINCodeLength = 23; + readonly attribute int8u minPINCodeLength = 24; + readonly attribute int8u maxRFIDCodeLength = 25; + readonly attribute int8u minRFIDCodeLength = 26; + readonly attribute DlCredentialRuleMask credentialRulesSupport = 27; + readonly attribute int8u numberOfCredentialsSupportedPerUser = 28; + attribute access(write: manage) char_string<3> language = 33; + attribute access(write: manage) int8u LEDSettings = 34; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) int8u soundVolume = 36; + attribute access(write: manage) OperatingModeEnum operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute DlDefaultConfigurationRegister defaultConfigurationRegister = 39; + attribute access(write: administer) boolean enableLocalProgramming = 40; + attribute access(write: manage) boolean enableOneTouchLocking = 41; + attribute access(write: manage) boolean enableInsideStatusLED = 42; + attribute access(write: manage) boolean enablePrivacyModeButton = 43; + attribute access(write: administer) DlLocalProgrammingFeatures localProgrammingFeatures = 44; + attribute access(write: administer) int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) boolean sendPINOverTheAir = 50; + attribute access(write: administer) boolean requirePINforRemoteOperation = 51; + attribute access(write: administer) int16u expiringUserTimeout = 53; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING PINCode = 0; + } + + request struct UnlockWithTimeoutRequest { + INT16U timeout = 0; + optional OCTET_STRING PINCode = 1; + } + + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; + timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; +} + +/** Provides an interface for controlling and adjusting automatic window coverings. */ +server cluster WindowCovering = 258 { + enum EndProductType : ENUM8 { + kRollerShade = 0; + kRomanShade = 1; + kBalloonShade = 2; + kWovenWood = 3; + kPleatedShade = 4; + kCellularShade = 5; + kLayeredShade = 6; + kLayeredShade2D = 7; + kSheerShade = 8; + kTiltOnlyInteriorBlind = 9; + kInteriorBlind = 10; + kVerticalBlindStripCurtain = 11; + kInteriorVenetianBlind = 12; + kExteriorVenetianBlind = 13; + kLateralLeftCurtain = 14; + kLateralRightCurtain = 15; + kCentralCurtain = 16; + kRollerShutter = 17; + kExteriorVerticalScreen = 18; + kAwningTerracePatio = 19; + kAwningVerticalScreen = 20; + kTiltOnlyPergola = 21; + kSwingingShutter = 22; + kSlidingShutter = 23; + kUnknown = 255; } enum Type : ENUM8 { @@ -2384,6 +3981,163 @@ server cluster PumpConfigurationAndControl = 512 { readonly attribute int16u clusterRevision = 65533; } +/** An interface for configuring and controlling the functionality of a thermostat. */ +client cluster Thermostat = 513 { + enum SetpointAdjustMode : ENUM8 { + kHeat = 0; + kCool = 1; + kBoth = 2; + } + + enum ThermostatControlSequence : ENUM8 { + kCoolingOnly = 0; + kCoolingWithReheat = 1; + kHeatingOnly = 2; + kHeatingWithReheat = 3; + kCoolingAndHeating = 4; + kCoolingAndHeatingWithReheat = 5; + } + + enum ThermostatRunningMode : ENUM8 { + kOff = 0; + kCool = 3; + kHeat = 4; + } + + enum ThermostatSystemMode : ENUM8 { + kOff = 0; + kAuto = 1; + kCool = 3; + kHeat = 4; + kEmergencyHeat = 5; + kPrecooling = 6; + kFanOnly = 7; + kDry = 8; + kSleep = 9; + } + + bitmap DayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + kAway = 0x80; + } + + bitmap Feature : BITMAP32 { + kHeating = 0x1; + kCooling = 0x2; + kOccupancy = 0x4; + kScheduleConfiguration = 0x8; + kSetback = 0x10; + kAutoMode = 0x20; + kLocalTemperatureNotExposed = 0x40; + } + + bitmap ModeForSequence : BITMAP8 { + kHeatSetpointPresent = 0x1; + kCoolSetpointPresent = 0x2; + } + + struct ThermostatScheduleTransition { + int16u transitionTime = 0; + nullable int16s heatSetpoint = 1; + nullable int16s coolSetpoint = 2; + } + + readonly attribute nullable int16s localTemperature = 0; + readonly attribute optional nullable int16s outdoorTemperature = 1; + readonly attribute optional bitmap8 occupancy = 2; + readonly attribute optional int16s absMinHeatSetpointLimit = 3; + readonly attribute optional int16s absMaxHeatSetpointLimit = 4; + readonly attribute optional int16s absMinCoolSetpointLimit = 5; + readonly attribute optional int16s absMaxCoolSetpointLimit = 6; + readonly attribute optional int8u PICoolingDemand = 7; + readonly attribute optional int8u PIHeatingDemand = 8; + attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9; + attribute access(write: manage) optional int8s localTemperatureCalibration = 16; + attribute optional int16s occupiedCoolingSetpoint = 17; + attribute optional int16s occupiedHeatingSetpoint = 18; + attribute optional int16s unoccupiedCoolingSetpoint = 19; + attribute optional int16s unoccupiedHeatingSetpoint = 20; + attribute access(write: manage) optional int16s minHeatSetpointLimit = 21; + attribute access(write: manage) optional int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) optional int16s minCoolSetpointLimit = 23; + attribute access(write: manage) optional int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) optional int8s minSetpointDeadBand = 25; + attribute access(write: manage) optional bitmap8 remoteSensing = 26; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; + readonly attribute optional enum8 thermostatRunningMode = 30; + readonly attribute optional enum8 startOfWeek = 32; + readonly attribute optional int8u numberOfWeeklyTransitions = 33; + readonly attribute optional int8u numberOfDailyTransitions = 34; + attribute access(write: manage) optional enum8 temperatureSetpointHold = 35; + attribute access(write: manage) optional nullable int16u temperatureSetpointHoldDuration = 36; + attribute access(write: manage) optional bitmap8 thermostatProgrammingOperationMode = 37; + readonly attribute optional bitmap16 thermostatRunningState = 41; + readonly attribute optional enum8 setpointChangeSource = 48; + readonly attribute optional nullable int16s setpointChangeAmount = 49; + readonly attribute optional epoch_s setpointChangeSourceTimestamp = 50; + attribute access(write: manage) optional nullable int8u occupiedSetback = 52; + readonly attribute optional nullable int8u occupiedSetbackMin = 53; + readonly attribute optional nullable int8u occupiedSetbackMax = 54; + attribute access(write: manage) optional nullable int8u unoccupiedSetback = 55; + readonly attribute optional nullable int8u unoccupiedSetbackMin = 56; + readonly attribute optional nullable int8u unoccupiedSetbackMax = 57; + attribute access(write: manage) optional int8u emergencyHeatDelta = 58; + attribute access(write: manage) optional enum8 ACType = 64; + attribute access(write: manage) optional int16u ACCapacity = 65; + attribute access(write: manage) optional enum8 ACRefrigerantType = 66; + attribute access(write: manage) optional enum8 ACCompressorType = 67; + attribute access(write: manage) optional bitmap32 ACErrorCode = 68; + attribute access(write: manage) optional enum8 ACLouverPosition = 69; + readonly attribute optional nullable int16s ACCoilTemperature = 70; + attribute access(write: manage) optional enum8 ACCapacityformat = 71; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SetpointRaiseLowerRequest { + SetpointAdjustMode mode = 0; + INT8S amount = 1; + } + + response struct GetWeeklyScheduleResponse = 0 { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct SetWeeklyScheduleRequest { + INT8U numberOfTransitionsForSequence = 0; + DayOfWeek dayOfWeekForSequence = 1; + ModeForSequence modeForSequence = 2; + ThermostatScheduleTransition transitions[] = 3; + } + + request struct GetWeeklyScheduleRequest { + DayOfWeek daysToReturn = 0; + ModeForSequence modeToReturn = 1; + } + + /** Command description for SetpointRaiseLower */ + command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; + /** Command description for SetWeeklySchedule */ + command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; + /** Command description for GetWeeklySchedule */ + command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; + /** The Clear Weekly Schedule command is used to clear the weekly schedule. */ + command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3; +} + /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { enum SetpointAdjustMode : ENUM8 { @@ -2452,21 +4206,53 @@ server cluster Thermostat = 513 { } readonly attribute nullable int16s localTemperature = 0; + readonly attribute nullable int16s outdoorTemperature = 1; + readonly attribute bitmap8 occupancy = 2; readonly attribute int16s absMinHeatSetpointLimit = 3; + readonly attribute int16s absMaxHeatSetpointLimit = 4; readonly attribute int16s absMinCoolSetpointLimit = 5; readonly attribute int16s absMaxCoolSetpointLimit = 6; + readonly attribute int8u PICoolingDemand = 7; + readonly attribute int8u PIHeatingDemand = 8; + attribute access(write: manage) bitmap8 HVACSystemTypeConfiguration = 9; + attribute access(write: manage) int8s localTemperatureCalibration = 16; attribute int16s occupiedCoolingSetpoint = 17; attribute int16s occupiedHeatingSetpoint = 18; + attribute int16s unoccupiedCoolingSetpoint = 19; + attribute int16s unoccupiedHeatingSetpoint = 20; attribute access(write: manage) int16s minHeatSetpointLimit = 21; attribute access(write: manage) int16s maxHeatSetpointLimit = 22; attribute access(write: manage) int16s minCoolSetpointLimit = 23; attribute access(write: manage) int16s maxCoolSetpointLimit = 24; attribute access(write: manage) int8s minSetpointDeadBand = 25; + attribute access(write: manage) bitmap8 remoteSensing = 26; attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; attribute access(write: manage) enum8 systemMode = 28; + readonly attribute enum8 thermostatRunningMode = 30; readonly attribute enum8 startOfWeek = 32; readonly attribute int8u numberOfWeeklyTransitions = 33; readonly attribute int8u numberOfDailyTransitions = 34; + attribute access(write: manage) enum8 temperatureSetpointHold = 35; + attribute access(write: manage) nullable int16u temperatureSetpointHoldDuration = 36; + attribute access(write: manage) bitmap8 thermostatProgrammingOperationMode = 37; + readonly attribute bitmap16 thermostatRunningState = 41; + readonly attribute enum8 setpointChangeSource = 48; + readonly attribute nullable int16s setpointChangeAmount = 49; + readonly attribute epoch_s setpointChangeSourceTimestamp = 50; + attribute access(write: manage) nullable int8u occupiedSetback = 52; + readonly attribute nullable int8u occupiedSetbackMin = 53; + readonly attribute nullable int8u occupiedSetbackMax = 54; + attribute access(write: manage) nullable int8u unoccupiedSetback = 55; + readonly attribute nullable int8u unoccupiedSetbackMin = 56; + readonly attribute nullable int8u unoccupiedSetbackMax = 57; + attribute access(write: manage) int8u emergencyHeatDelta = 58; + attribute access(write: manage) enum8 ACType = 64; + attribute access(write: manage) int16u ACCapacity = 65; + attribute access(write: manage) enum8 ACRefrigerantType = 66; + attribute access(write: manage) enum8 ACCompressorType = 67; + attribute access(write: manage) enum8 ACLouverPosition = 69; + readonly attribute nullable int16s ACCoilTemperature = 70; + attribute access(write: manage) enum8 ACCapacityformat = 71; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2501,6 +4287,324 @@ server cluster ThermostatUserInterfaceConfiguration = 516 { readonly attribute int16u clusterRevision = 65533; } +/** Attributes and commands for controlling the color properties of a color-capable light. */ +client cluster ColorControl = 768 { + enum ColorLoopAction : ENUM8 { + kDeactivate = 0; + kActivateFromColorLoopStartEnhancedHue = 1; + kActivateFromEnhancedCurrentHue = 2; + } + + enum ColorLoopDirection : ENUM8 { + kDecrementHue = 0; + kIncrementHue = 1; + } + + enum ColorMode : ENUM8 { + kCurrentHueAndCurrentSaturation = 0; + kCurrentXAndCurrentY = 1; + kColorTemperature = 2; + } + + enum HueDirection : ENUM8 { + kShortestDistance = 0; + kLongestDistance = 1; + kUp = 2; + kDown = 3; + } + + enum HueMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum HueStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + enum SaturationMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum SaturationStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + bitmap ColorCapabilities : BITMAP16 { + kHueSaturationSupported = 0x1; + kEnhancedHueSupported = 0x2; + kColorLoopSupported = 0x4; + kXYAttributesSupported = 0x8; + kColorTemperatureSupported = 0x10; + } + + bitmap ColorLoopUpdateFlags : BITMAP8 { + kUpdateAction = 0x1; + kUpdateDirection = 0x2; + kUpdateTime = 0x4; + kUpdateStartHue = 0x8; + } + + bitmap Feature : BITMAP32 { + kHueAndSaturation = 0x1; + kEnhancedHue = 0x2; + kColorLoop = 0x4; + kXy = 0x8; + kColorTemperature = 0x10; + } + + readonly attribute optional int8u currentHue = 0; + readonly attribute optional int8u currentSaturation = 1; + readonly attribute optional int16u remainingTime = 2; + readonly attribute optional int16u currentX = 3; + readonly attribute optional int16u currentY = 4; + readonly attribute optional enum8 driftCompensation = 5; + readonly attribute optional char_string<254> compensationText = 6; + readonly attribute optional int16u colorTemperatureMireds = 7; + readonly attribute enum8 colorMode = 8; + attribute bitmap8 options = 15; + readonly attribute nullable int8u numberOfPrimaries = 16; + readonly attribute optional int16u primary1X = 17; + readonly attribute optional int16u primary1Y = 18; + readonly attribute optional nullable int8u primary1Intensity = 19; + readonly attribute optional int16u primary2X = 21; + readonly attribute optional int16u primary2Y = 22; + readonly attribute optional nullable int8u primary2Intensity = 23; + readonly attribute optional int16u primary3X = 25; + readonly attribute optional int16u primary3Y = 26; + readonly attribute optional nullable int8u primary3Intensity = 27; + readonly attribute optional int16u primary4X = 32; + readonly attribute optional int16u primary4Y = 33; + readonly attribute optional nullable int8u primary4Intensity = 34; + readonly attribute optional int16u primary5X = 36; + readonly attribute optional int16u primary5Y = 37; + readonly attribute optional nullable int8u primary5Intensity = 38; + readonly attribute optional int16u primary6X = 40; + readonly attribute optional int16u primary6Y = 41; + readonly attribute optional nullable int8u primary6Intensity = 42; + attribute access(write: manage) optional int16u whitePointX = 48; + attribute access(write: manage) optional int16u whitePointY = 49; + attribute access(write: manage) optional int16u colorPointRX = 50; + attribute access(write: manage) optional int16u colorPointRY = 51; + attribute access(write: manage) optional nullable int8u colorPointRIntensity = 52; + attribute access(write: manage) optional int16u colorPointGX = 54; + attribute access(write: manage) optional int16u colorPointGY = 55; + attribute access(write: manage) optional nullable int8u colorPointGIntensity = 56; + attribute access(write: manage) optional int16u colorPointBX = 58; + attribute access(write: manage) optional int16u colorPointBY = 59; + attribute access(write: manage) optional nullable int8u colorPointBIntensity = 60; + readonly attribute optional int16u enhancedCurrentHue = 16384; + readonly attribute enum8 enhancedColorMode = 16385; + readonly attribute optional int8u colorLoopActive = 16386; + readonly attribute optional int8u colorLoopDirection = 16387; + readonly attribute optional int16u colorLoopTime = 16388; + readonly attribute optional int16u colorLoopStartEnhancedHue = 16389; + readonly attribute optional int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute optional int16u colorTempPhysicalMinMireds = 16395; + readonly attribute optional int16u colorTempPhysicalMaxMireds = 16396; + readonly attribute optional int16u coupleColorTempToLevelMinMireds = 16397; + attribute access(write: manage) optional nullable int16u startUpColorTemperatureMireds = 16400; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorRequest { + INT16U colorX = 0; + INT16U colorY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveColorRequest { + INT16S rateX = 0; + INT16S rateY = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepColorRequest { + INT16S stepX = 0; + INT16S stepY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + /** Move to specified hue. */ + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + /** Move hue up or down at specified rate. */ + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + /** Step hue up or down by specified size at specified rate. */ + command StepHue(StepHueRequest): DefaultSuccess = 2; + /** Move to specified saturation. */ + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + /** Move saturation up or down at specified rate. */ + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + /** Step saturation up or down by specified size at specified rate. */ + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + /** Move to hue and saturation. */ + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; + /** Move to specified color. */ + command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; + /** Moves the color. */ + command MoveColor(MoveColorRequest): DefaultSuccess = 8; + /** Steps the lighting to a specific color. */ + command StepColor(StepColorRequest): DefaultSuccess = 9; + /** Move to a specific color temperature. */ + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + /** Command description for EnhancedMoveToHue */ + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + /** Command description for EnhancedMoveHue */ + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + /** Command description for EnhancedStepHue */ + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + /** Command description for EnhancedMoveToHueAndSaturation */ + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + /** Command description for ColorLoopSet */ + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + /** Command description for StopMoveStep */ + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + /** Command description for MoveColorTemperature */ + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + /** Command description for StepColorTemperature */ + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; +} + /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { enum ColorLoopAction : ENUM8 { @@ -2572,9 +4676,56 @@ server cluster ColorControl = 768 { kColorTemperature = 0x10; } + readonly attribute int8u currentHue = 0; + readonly attribute int8u currentSaturation = 1; + readonly attribute int16u remainingTime = 2; readonly attribute int16u currentX = 3; readonly attribute int16u currentY = 4; + readonly attribute enum8 driftCompensation = 5; + readonly attribute char_string<254> compensationText = 6; + readonly attribute int16u colorTemperatureMireds = 7; + readonly attribute enum8 colorMode = 8; attribute bitmap8 options = 15; + readonly attribute nullable int8u numberOfPrimaries = 16; + readonly attribute int16u primary1X = 17; + readonly attribute int16u primary1Y = 18; + readonly attribute nullable int8u primary1Intensity = 19; + readonly attribute int16u primary2X = 21; + readonly attribute int16u primary2Y = 22; + readonly attribute nullable int8u primary2Intensity = 23; + readonly attribute int16u primary3X = 25; + readonly attribute int16u primary3Y = 26; + readonly attribute nullable int8u primary3Intensity = 27; + readonly attribute int16u primary4X = 32; + readonly attribute int16u primary4Y = 33; + readonly attribute nullable int8u primary4Intensity = 34; + readonly attribute int16u primary5X = 36; + readonly attribute int16u primary5Y = 37; + readonly attribute nullable int8u primary5Intensity = 38; + readonly attribute int16u primary6X = 40; + readonly attribute int16u primary6Y = 41; + readonly attribute nullable int8u primary6Intensity = 42; + attribute access(write: manage) int16u whitePointX = 48; + attribute access(write: manage) int16u whitePointY = 49; + attribute access(write: manage) int16u colorPointRX = 50; + attribute access(write: manage) int16u colorPointRY = 51; + attribute access(write: manage) nullable int8u colorPointRIntensity = 52; + attribute access(write: manage) int16u colorPointGX = 54; + attribute access(write: manage) int16u colorPointGY = 55; + attribute access(write: manage) nullable int8u colorPointGIntensity = 56; + attribute access(write: manage) int16u colorPointBX = 58; + attribute access(write: manage) int16u colorPointBY = 59; + attribute access(write: manage) nullable int8u colorPointBIntensity = 60; + readonly attribute int16u enhancedCurrentHue = 16384; + readonly attribute enum8 enhancedColorMode = 16385; + readonly attribute int8u colorLoopActive = 16386; + readonly attribute int8u colorLoopDirection = 16387; + readonly attribute int16u colorLoopTime = 16388; + readonly attribute int16u colorLoopStartEnhancedHue = 16389; + readonly attribute int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute int16u colorTempPhysicalMinMireds = 16395; + readonly attribute int16u colorTempPhysicalMaxMireds = 16396; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; attribute access(write: manage) nullable int16u startUpColorTemperatureMireds = 16400; readonly attribute command_id generatedCommandList[] = 65528; @@ -2584,6 +4735,59 @@ server cluster ColorControl = 768 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + request struct MoveToColorRequest { INT16U colorX = 0; INT16U colorY = 1; @@ -2607,9 +4811,97 @@ server cluster ColorControl = 768 { BITMAP8 optionsOverride = 4; } + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + command StepHue(StepHueRequest): DefaultSuccess = 2; + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; command MoveColor(MoveColorRequest): DefaultSuccess = 8; command StepColor(StepColorRequest): DefaultSuccess = 9; + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; } /** Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements. */ @@ -2764,21 +5056,378 @@ server cluster OccupancySensing = 1030 { readonly attribute int16u clusterRevision = 65533; } -/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ -client cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { - kSuccess = 0; - kTargetNotFound = 1; - kNotAllowed = 2; +/** This cluster provides an interface for controlling the current Channel on a device. */ +client cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap Feature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + struct ChannelInfoStruct { + int16u majorNumber = 0; + int16u minorNumber = 1; + optional char_string name = 2; + optional char_string callSign = 3; + optional char_string affiliateCallSign = 4; + } + + struct LineupInfoStruct { + char_string operatorName = 0; + optional char_string lineupName = 1; + optional char_string postalCode = 2; + LineupInfoTypeEnum lineupInfoType = 3; + } + + readonly attribute optional ChannelInfoStruct channelList[] = 0; + readonly attribute optional nullable LineupInfoStruct lineup = 1; + readonly attribute optional nullable ChannelInfoStruct currentChannel = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelRequest { + CHAR_STRING match = 0; + } + + response struct ChangeChannelResponse = 1 { + ChannelStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16S count = 0; + } + + /** Change the channel on the media player to the channel case-insensitive exact matching the value passed as an argument. */ + command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; + /** Change the channel on the media plaeyer to the channel with the given Number in the ChannelList attribute. */ + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + /** This command provides channel up and channel down functionality, but allows channel index jumps of size Count. When the value of the increase or decrease is larger than the number of channels remaining in the given direction, then the behavior SHALL be to return to the beginning (or end) of the channel list and continue. For example, if the current channel is at index 0 and count value of -1 is given, then the current channel should change to the last channel. */ + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for controlling the current Channel on a device. */ +server cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap Feature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + struct ChannelInfoStruct { + int16u majorNumber = 0; + int16u minorNumber = 1; + optional char_string name = 2; + optional char_string callSign = 3; + optional char_string affiliateCallSign = 4; + } + + struct LineupInfoStruct { + char_string operatorName = 0; + optional char_string lineupName = 1; + optional char_string postalCode = 2; + LineupInfoTypeEnum lineupInfoType = 3; + } + + readonly attribute ChannelInfoStruct channelList[] = 0; + readonly attribute nullable LineupInfoStruct lineup = 1; + readonly attribute nullable ChannelInfoStruct currentChannel = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelRequest { + CHAR_STRING match = 0; + } + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16S count = 0; + } + + command ChangeChannel(ChangeChannelRequest): ChangeChannelResponse = 0; + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ +client cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfoStruct { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfoStruct targetList[] = 0; + readonly attribute optional int8u currentTarget = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct NavigateTargetRequest { + INT8U target = 0; + optional CHAR_STRING data = 1; + } + + response struct NavigateTargetResponse = 1 { + TargetNavigatorStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + /** Upon receipt, this SHALL navigation the UX to the target identified. */ + command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; +} + +/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ +server cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfoStruct { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfoStruct targetList[] = 0; + readonly attribute int8u currentTarget = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +/** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ +client cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + bitmap Feature : BITMAP32 { + kAdvancedSeek = 0x1; + kVariableSpeed = 0x2; + } + + struct PlaybackPositionStruct { + epoch_us updatedAt = 0; + nullable int64u position = 1; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute optional nullable epoch_us startTime = 1; + readonly attribute optional nullable int64u duration = 2; + readonly attribute optional nullable PlaybackPositionStruct sampledPosition = 3; + readonly attribute optional single playbackSpeed = 4; + readonly attribute optional nullable int64u seekRangeEnd = 5; + readonly attribute optional nullable int64u seekRangeStart = 6; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SkipForwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SkipBackwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + request struct SeekRequest { + INT64U position = 0; + } + + /** Upon receipt, this SHALL play media. */ + command Play(): PlaybackResponse = 0; + /** Upon receipt, this SHALL pause media. */ + command Pause(): PlaybackResponse = 1; + /** Upon receipt, this SHALL stop media. User experience is context-specific. This will often navigate the user back to the location where media was originally launched. */ + command Stop(): PlaybackResponse = 2; + /** Upon receipt, this SHALL Start Over with the current media playback item. */ + command StartOver(): PlaybackResponse = 3; + /** Upon receipt, this SHALL cause the handler to be invoked for "Previous". User experience is context-specific. This will often Go back to the previous media playback item. */ + command Previous(): PlaybackResponse = 4; + /** Upon receipt, this SHALL cause the handler to be invoked for "Next". User experience is context-specific. This will often Go forward to the next media playback item. */ + command Next(): PlaybackResponse = 5; + /** Upon receipt, this SHALL Rewind through media. Different Rewind speeds can be used on the TV based upon the number of sequential calls to this function. This is to avoid needing to define every speed now (multiple fast, slow motion, etc). */ + command Rewind(): PlaybackResponse = 6; + /** Upon receipt, this SHALL Advance through media. Different FF speeds can be used on the TV based upon the number of sequential calls to this function. This is to avoid needing to define every speed now (multiple fast, slow motion, etc). */ + command FastForward(): PlaybackResponse = 7; + /** Upon receipt, this SHALL Skip forward in the media by the given number of seconds, using the data as follows: */ + command SkipForward(SkipForwardRequest): PlaybackResponse = 8; + /** Upon receipt, this SHALL Skip backward in the media by the given number of seconds, using the data as follows: */ + command SkipBackward(SkipBackwardRequest): PlaybackResponse = 9; + /** Upon receipt, this SHALL Skip backward in the media by the given number of seconds, using the data as follows: */ + command Seek(SeekRequest): PlaybackResponse = 11; +} + +/** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ +server cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + bitmap Feature : BITMAP32 { + kAdvancedSeek = 0x1; + kVariableSpeed = 0x2; + } + + struct PlaybackPositionStruct { + epoch_us updatedAt = 0; + nullable int64u position = 1; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute nullable epoch_us startTime = 1; + readonly attribute nullable int64u duration = 2; + readonly attribute nullable PlaybackPositionStruct sampledPosition = 3; + readonly attribute single playbackSpeed = 4; + readonly attribute nullable int64u seekRangeEnd = 5; + readonly attribute nullable int64u seekRangeStart = 6; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SkipForwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SkipBackwardRequest { + INT64U deltaPositionMilliseconds = 0; + } + + request struct SeekRequest { + INT64U position = 0; + } + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + command Play(): PlaybackResponse = 0; + command Pause(): PlaybackResponse = 1; + command Stop(): PlaybackResponse = 2; + command StartOver(): PlaybackResponse = 3; + command Previous(): PlaybackResponse = 4; + command Next(): PlaybackResponse = 5; + command Rewind(): PlaybackResponse = 6; + command FastForward(): PlaybackResponse = 7; + command SkipForward(SkipForwardRequest): PlaybackResponse = 8; + command SkipBackward(SkipBackwardRequest): PlaybackResponse = 9; + command Seek(SeekRequest): PlaybackResponse = 11; +} + +/** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ +client cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; } - struct TargetInfoStruct { - int8u identifier = 0; - char_string<32> name = 1; + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; } - readonly attribute TargetInfoStruct targetList[] = 0; - readonly attribute optional int8u currentTarget = 1; + struct InputInfoStruct { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfoStruct inputList[] = 0; + readonly attribute int8u currentInput = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2786,35 +5435,55 @@ client cluster TargetNavigator = 1285 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct NavigateTargetRequest { - INT8U target = 0; - optional CHAR_STRING data = 1; + request struct SelectInputRequest { + INT8U index = 0; } - response struct NavigateTargetResponse = 1 { - TargetNavigatorStatusEnum status = 0; - optional CHAR_STRING data = 1; + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; } - /** Upon receipt, this SHALL navigation the UX to the target identified. */ - command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; + /** Upon receipt, this SHALL change the input on the media device to the input at a specific index in the Input List. */ + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + /** Upon receipt, this SHALL display the active status of the input list on screen. */ + command ShowInputStatus(): DefaultSuccess = 1; + /** Upon receipt, this SHALL hide the input list from the screen. */ + command HideInputStatus(): DefaultSuccess = 2; + /** Upon receipt, this SHALL rename the input at a specific index in the Input List. Updates to the input name SHALL appear in the TV settings menus. */ + command RenameInput(RenameInputRequest): DefaultSuccess = 3; } -/** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ -server cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { - kSuccess = 0; - kTargetNotFound = 1; - kNotAllowed = 2; +/** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ +server cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; } - struct TargetInfoStruct { - int8u identifier = 0; - char_string<32> name = 1; + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; } - readonly attribute TargetInfoStruct targetList[] = 0; - readonly attribute int8u currentTarget = 1; + struct InputInfoStruct { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfoStruct inputList[] = 0; + readonly attribute int8u currentInput = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2822,17 +5491,32 @@ server cluster TargetNavigator = 1285 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct NavigateTargetRequest { - INT8U target = 0; - optional CHAR_STRING data = 1; + request struct SelectInputRequest { + INT8U index = 0; } - response struct NavigateTargetResponse = 1 { - TargetNavigatorStatusEnum status = 0; - optional CHAR_STRING data = 1; + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; } - command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + command ShowInputStatus(): DefaultSuccess = 1; + command HideInputStatus(): DefaultSuccess = 2; + command RenameInput(RenameInputRequest): DefaultSuccess = 3; +} + +/** This cluster provides an interface for managing low power mode on a device. */ +client cluster LowPower = 1288 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + /** This command shall put the device into low power mode. */ + command Sleep(): DefaultSuccess = 0; } /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ @@ -3066,16 +5750,6 @@ server cluster KeypadInput = 1289 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - - request struct SendKeyRequest { - CecKeyCode keyCode = 0; - } - - response struct SendKeyResponse = 1 { - KeypadInputStatusEnum status = 0; - } - - command SendKey(SendKeyRequest): SendKeyResponse = 0; } /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ @@ -3292,6 +5966,183 @@ server cluster ContentLauncher = 1290 { command LaunchURL(LaunchURLRequest): LauncherResponse = 1; } +/** This cluster provides an interface for controlling the Output on a media device such as a TV. */ +client cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfoStruct { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfoStruct outputList[] = 0; + readonly attribute optional int8u currentOutput = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + request struct RenameOutputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + /** Upon receipt, this SHALL change the output on the media device to the output at a specific index in the Output List. */ + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; + /** Upon receipt, this SHALL rename the output at a specific index in the Output List. Updates to the output name SHALL appear in the TV settings menus. */ + command RenameOutput(RenameOutputRequest): DefaultSuccess = 1; +} + +/** This cluster provides an interface for controlling the Output on a media device such as a TV. */ +server cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap Feature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfoStruct { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfoStruct outputList[] = 0; + readonly attribute int8u currentOutput = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + request struct RenameOutputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; + command RenameOutput(RenameOutputRequest): DefaultSuccess = 1; +} + +/** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ +client cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap Feature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; + } + + struct ApplicationEPStruct { + ApplicationStruct application = 0; + optional endpoint_no endpoint = 1; + } + + readonly attribute optional INT16U catalogList[] = 0; + attribute optional nullable ApplicationEPStruct currentApp = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LaunchAppRequest { + optional ApplicationStruct application = 0; + optional OCTET_STRING data = 1; + } + + request struct StopAppRequest { + optional ApplicationStruct application = 0; + } + + request struct HideAppRequest { + optional ApplicationStruct application = 0; + } + + response struct LauncherResponse = 3 { + ApplicationLauncherStatusEnum status = 0; + optional OCTET_STRING data = 1; + } + + /** Upon receipt, this SHALL launch the specified app with optional data. The TV Device SHALL launch and bring to foreground the identified application in the command if the application is not already launched and in foreground. The TV Device SHALL update state attribute on the Application Basic cluster of the Endpoint corresponding to the launched application. This command returns a Launch Response. */ + command LaunchApp(LaunchAppRequest): LauncherResponse = 0; + /** Upon receipt on a Video Player endpoint this SHALL stop the specified application if it is running. */ + command StopApp(StopAppRequest): LauncherResponse = 1; + /** Upon receipt on a Video Player endpoint this SHALL hide the specified application if it is running and visible. */ + command HideApp(HideAppRequest): LauncherResponse = 2; +} + +/** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ +server cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap Feature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct ApplicationStruct { + int16u catalogVendorID = 0; + char_string applicationID = 1; + } + + struct ApplicationEPStruct { + ApplicationStruct application = 0; + optional endpoint_no endpoint = 1; + } + + readonly attribute INT16U catalogList[] = 0; + attribute nullable ApplicationEPStruct currentApp = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + /** This cluster provides information about an application running on a TV or media player device which is represented as an endpoint. */ client cluster ApplicationBasic = 1293 { enum ApplicationStatusEnum : ENUM8 { @@ -3352,30 +6203,86 @@ server cluster ApplicationBasic = 1293 { readonly attribute int16u clusterRevision = 65533; } +/** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ +client cluster AccountLogin = 1294 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + request struct LoginRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + /** Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response. */ + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + /** Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active. */ + timed command Login(LoginRequest): DefaultSuccess = 2; + /** The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session. */ + timed command Logout(): DefaultSuccess = 3; +} + +/** This cluster provides commands that facilitate user account login on a Content App or a node. For example, a Content App running on a Video Player device, which is represented as an endpoint (see [TV Architecture]), can use this cluster to help make the user account on the Content App match the user account on the Client. */ +server cluster AccountLogin = 1294 { + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + } + + request struct LoginRequest { + CHAR_STRING<100> tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + timed command Login(LoginRequest): DefaultSuccess = 2; + timed command Logout(): DefaultSuccess = 3; +} + endpoint 0 { device type anonymousEndpointType = 65280, version 1; - binding cluster OnOff; binding cluster GeneralCommissioning; + binding cluster ThreadNetworkDiagnostics; binding cluster Switch; binding cluster OperationalCredentials; binding cluster ModeSelect; + binding cluster DoorLock; + binding cluster Thermostat; binding cluster ThermostatUserInterfaceConfiguration; binding cluster TemperatureMeasurement; binding cluster RelativeHumidityMeasurement; + binding cluster Channel; binding cluster TargetNavigator; + binding cluster MediaPlayback; + binding cluster MediaInput; + binding cluster LowPower; binding cluster KeypadInput; binding cluster ContentLauncher; + binding cluster AudioOutput; + binding cluster ApplicationLauncher; binding cluster ApplicationBasic; - - server cluster OnOff { - ram attribute onOff default = 0x00; - ram attribute globalSceneControl default = 0x01; - ram attribute onTime default = 0x0000; - ram attribute offWaitTime default = 0x0000; - ram attribute startUpOnOff default = 0xFF; - ram attribute featureMap default = 0x0001; - ram attribute clusterRevision default = 4; - } + binding cluster AccountLogin; server cluster Descriptor { callback attribute deviceTypeList; @@ -3548,6 +6455,73 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster ThreadNetworkDiagnostics { + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount default = 0; + callback attribute neighborTable default = 0; + callback attribute routeTable default = 0; + callback attribute partitionId default = 0; + callback attribute weighting default = 0; + callback attribute dataVersion default = 0; + callback attribute stableDataVersion default = 0; + callback attribute leaderRouterId default = 0; + callback attribute detachedRoleCount default = 0; + callback attribute childRoleCount default = 0; + callback attribute routerRoleCount default = 0; + callback attribute leaderRoleCount default = 0; + callback attribute attachAttemptCount default = 0; + callback attribute partitionIdChangeCount default = 0; + callback attribute betterPartitionAttachAttemptCount default = 0; + callback attribute parentChangeCount default = 0; + callback attribute txTotalCount default = 0; + callback attribute txUnicastCount default = 0; + callback attribute txBroadcastCount default = 0; + callback attribute txAckRequestedCount default = 0; + callback attribute txAckedCount default = 0; + callback attribute txNoAckRequestedCount default = 0; + callback attribute txDataCount default = 0; + callback attribute txDataPollCount default = 0; + callback attribute txBeaconCount default = 0; + callback attribute txBeaconRequestCount default = 0; + callback attribute txOtherCount default = 0; + callback attribute txRetryCount default = 0; + callback attribute txDirectMaxRetryExpiryCount default = 0; + callback attribute txIndirectMaxRetryExpiryCount default = 0; + callback attribute txErrCcaCount default = 0; + callback attribute txErrAbortCount default = 0; + callback attribute txErrBusyChannelCount default = 0; + callback attribute rxTotalCount default = 0; + callback attribute rxUnicastCount default = 0; + callback attribute rxBroadcastCount default = 0; + callback attribute rxDataCount default = 0; + callback attribute rxDataPollCount default = 0; + callback attribute rxBeaconCount default = 0; + callback attribute rxBeaconRequestCount default = 0; + callback attribute rxOtherCount default = 0; + callback attribute rxAddressFilteredCount default = 0; + callback attribute rxDestAddrFilteredCount default = 0; + callback attribute rxDuplicatedCount default = 0; + callback attribute rxErrNoFrameCount default = 0; + callback attribute rxErrUnknownNeighborCount default = 0; + callback attribute rxErrInvalidSrcAddrCount default = 0; + callback attribute rxErrSecCount default = 0; + callback attribute rxErrFcsCount default = 0; + callback attribute rxErrOtherCount default = 0; + callback attribute activeTimestamp default = 0; + callback attribute pendingTimestamp default = 0; + callback attribute delay default = 0; + callback attribute securityPolicy; + callback attribute channelPage0Mask; + callback attribute operationalDatasetComponents; + callback attribute activeNetworkFaultsList; + ram attribute clusterRevision default = 1; + } + server cluster WiFiNetworkDiagnostics { emits event Disconnection; emits event AssociationFailure; @@ -3583,6 +6557,29 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster BridgedDeviceBasicInformation { + emits event StartUp; + emits event ShutDown; + emits event Leave; + callback attribute vendorName; + callback attribute vendorID; + callback attribute productName; + persist attribute nodeLabel; + callback attribute hardwareVersion; + callback attribute hardwareVersionString; + callback attribute softwareVersion; + callback attribute softwareVersionString; + callback attribute manufacturingDate; + callback attribute partNumber; + callback attribute productURL; + callback attribute productLabel; + callback attribute serialNumber; + callback attribute uniqueID; + callback attribute productAppearance; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 2; + } + server cluster Switch { ram attribute numberOfPositions default = 2; ram attribute currentPosition; @@ -3637,6 +6634,46 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster DoorLock { + callback attribute lockState; + callback attribute lockType; + ram attribute actuatorEnabled; + callback attribute doorState; + callback attribute doorOpenEvents; + callback attribute doorClosedEvents; + callback attribute openPeriod; + callback attribute numberOfTotalUsersSupported default = 0; + callback attribute numberOfPINUsersSupported default = 0; + callback attribute numberOfRFIDUsersSupported default = 0; + callback attribute numberOfWeekDaySchedulesSupportedPerUser default = 0; + callback attribute numberOfYearDaySchedulesSupportedPerUser default = 0; + callback attribute numberOfHolidaySchedulesSupported default = 0; + callback attribute maxPINCodeLength; + callback attribute minPINCodeLength; + callback attribute maxRFIDCodeLength; + callback attribute minRFIDCodeLength; + callback attribute credentialRulesSupport default = 1; + callback attribute numberOfCredentialsSupportedPerUser default = 0; + callback attribute language; + callback attribute LEDSettings default = 0; + callback attribute autoRelockTime; + callback attribute soundVolume default = 0; + callback attribute operatingMode default = 0; + callback attribute supportedOperatingModes default = 65526; + callback attribute defaultConfigurationRegister default = 0; + callback attribute enableLocalProgramming default = 1; + callback attribute enableOneTouchLocking default = 0; + callback attribute enableInsideStatusLED default = 0; + callback attribute enablePrivacyModeButton default = 0; + callback attribute localProgrammingFeatures default = 0; + callback attribute wrongCodeEntryLimit; + callback attribute userCodeTemporaryDisableTime; + callback attribute sendPINOverTheAir default = 0; + callback attribute requirePINforRemoteOperation default = 0; + callback attribute expiringUserTimeout; + ram attribute clusterRevision default = 6; + } + server cluster WindowCovering { ram attribute type default = 0x00; persist attribute currentPositionLift default = 0x7FFF; @@ -3690,21 +6727,53 @@ endpoint 0 { server cluster Thermostat { ram attribute localTemperature; + callback attribute outdoorTemperature; + callback attribute occupancy default = 1; ram attribute absMinHeatSetpointLimit default = 0x02BC; + callback attribute absMaxHeatSetpointLimit default = 0x0BB8; ram attribute absMinCoolSetpointLimit default = 0x0640; ram attribute absMaxCoolSetpointLimit default = 0x0C80; + ram attribute PICoolingDemand; + ram attribute PIHeatingDemand; + callback attribute HVACSystemTypeConfiguration default = 0; + callback attribute localTemperatureCalibration default = 0; ram attribute occupiedCoolingSetpoint default = 0x0A28; ram attribute occupiedHeatingSetpoint default = 0x07D0; + callback attribute unoccupiedCoolingSetpoint default = 0x0A28; + callback attribute unoccupiedHeatingSetpoint default = 0x07D0; ram attribute minHeatSetpointLimit default = 0x02BC; ram attribute maxHeatSetpointLimit default = 0x0BB8; ram attribute minCoolSetpointLimit default = 0x0640; ram attribute maxCoolSetpointLimit default = 0x0C80; ram attribute minSetpointDeadBand default = 0x19; + callback attribute remoteSensing default = 0x0; ram attribute controlSequenceOfOperation default = 0x04; ram attribute systemMode default = 0x01; + callback attribute thermostatRunningMode default = 0x00; ram attribute startOfWeek default = 0; ram attribute numberOfWeeklyTransitions default = 7; ram attribute numberOfDailyTransitions default = 4; + ram attribute temperatureSetpointHold default = 0x00; + callback attribute temperatureSetpointHoldDuration; + callback attribute thermostatProgrammingOperationMode default = 0x00; + callback attribute thermostatRunningState; + callback attribute setpointChangeSource default = 0x00; + callback attribute setpointChangeAmount; + callback attribute setpointChangeSourceTimestamp default = 0x00; + callback attribute occupiedSetback; + callback attribute occupiedSetbackMin; + callback attribute occupiedSetbackMax; + callback attribute unoccupiedSetback; + callback attribute unoccupiedSetbackMin; + callback attribute unoccupiedSetbackMax; + callback attribute emergencyHeatDelta default = 0x009F6; + callback attribute ACType default = 0x00; + callback attribute ACCapacity default = 0x00; + callback attribute ACRefrigerantType; + callback attribute ACCompressorType default = 0x00; + callback attribute ACLouverPosition default = 0x00; + callback attribute ACCoilTemperature; + callback attribute ACCapacityformat default = 0x00; ram attribute featureMap default = 0x000b; ram attribute clusterRevision default = 5; } @@ -3774,6 +6843,14 @@ endpoint 0 { ram attribute clusterRevision default = 3; } + server cluster Channel { + callback attribute channelList; + callback attribute lineup; + callback attribute currentChannel; + ram attribute featureMap default = 0; + callback attribute clusterRevision default = 1; + } + server cluster TargetNavigator { callback attribute targetList; ram attribute currentTarget default = 0; @@ -3784,6 +6861,24 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster MediaPlayback { + ram attribute currentState; + ram attribute startTime; + ram attribute duration; + callback attribute sampledPosition; + ram attribute playbackSpeed default = 1; + ram attribute seekRangeEnd; + ram attribute seekRangeStart default = 1; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster MediaInput { + callback attribute inputList; + callback attribute currentInput; + ram attribute clusterRevision default = 1; + } + server cluster KeypadInput { callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -3802,6 +6897,20 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster AudioOutput { + callback attribute outputList; + ram attribute currentOutput; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + + server cluster ApplicationLauncher { + callback attribute catalogList; + callback attribute currentApp; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } + server cluster ApplicationBasic { ram attribute vendorName; ram attribute vendorID default = 0x0; @@ -3817,11 +6926,17 @@ endpoint 0 { ram attribute featureMap default = 0; ram attribute clusterRevision default = 1; } + + server cluster AccountLogin { + ram attribute clusterRevision default = 1; + } } endpoint 1 { device type anonymousEndpointType = 257, version 1; binding cluster OnOff; + binding cluster LevelControl; binding cluster FixedLabel; + binding cluster ColorControl; server cluster Identify { ram attribute identifyTime default = 0x0; @@ -3859,24 +6974,31 @@ endpoint 1 { } server cluster OnOff { - ram attribute onOff default = 0; - ram attribute globalSceneControl default = 1; - ram attribute onTime default = 0; - ram attribute offWaitTime default = 0; - ram attribute startUpOnOff; + ram attribute onOff default = 0x00; + ram attribute globalSceneControl default = 0x01; + ram attribute onTime default = 0x0000; + ram attribute offWaitTime default = 0x0000; + ram attribute startUpOnOff default = 0xFF; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; - ram attribute featureMap default = 0; + ram attribute featureMap default = 0x0001; ram attribute clusterRevision default = 4; } server cluster LevelControl { ram attribute currentLevel default = 0x00; ram attribute remainingTime default = 0x0000; + ram attribute minLevel default = 0x00; + ram attribute maxLevel default = 0xFE; + ram attribute minFrequency default = 0x0000; + ram attribute maxFrequency default = 0x0000; ram attribute options default = 0x00; + ram attribute onOffTransitionTime default = 0x0000; ram attribute onLevel; + ram attribute onTransitionTime; + ram attribute offTransitionTime; ram attribute startUpCurrentLevel; callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -3930,9 +7052,56 @@ endpoint 1 { } server cluster ColorControl { + ram attribute currentHue default = 0x00; + ram attribute currentSaturation default = 0x00; + callback attribute remainingTime default = 0x00; ram attribute currentX default = 0x616B; ram attribute currentY default = 0x607D; + callback attribute driftCompensation; + callback attribute compensationText; + ram attribute colorTemperatureMireds default = 0x00FA; + callback attribute colorMode default = 1; ram attribute options default = 0x00; + callback attribute numberOfPrimaries; + callback attribute primary1X; + callback attribute primary1Y; + callback attribute primary1Intensity; + callback attribute primary2X; + callback attribute primary2Y; + callback attribute primary2Intensity; + callback attribute primary3X; + callback attribute primary3Y; + callback attribute primary3Intensity; + callback attribute primary4X; + callback attribute primary4Y; + callback attribute primary4Intensity; + callback attribute primary5X; + callback attribute primary5Y; + callback attribute primary5Intensity; + callback attribute primary6X; + callback attribute primary6Y; + callback attribute primary6Intensity; + callback attribute whitePointX; + callback attribute whitePointY; + callback attribute colorPointRX; + callback attribute colorPointRY; + callback attribute colorPointRIntensity; + callback attribute colorPointGX; + callback attribute colorPointGY; + callback attribute colorPointGIntensity; + callback attribute colorPointBX; + callback attribute colorPointBY; + callback attribute colorPointBIntensity; + callback attribute enhancedCurrentHue default = 0x00; + callback attribute enhancedColorMode default = 0x01; + ram attribute colorLoopActive default = 0x00; + ram attribute colorLoopDirection default = 0x00; + ram attribute colorLoopTime default = 0x0019; + ram attribute colorLoopStartEnhancedHue default = 0x2300; + callback attribute colorLoopStoredEnhancedHue default = 0x00; + callback attribute colorCapabilities default = 0x00; + callback attribute colorTempPhysicalMinMireds default = 0x00; + callback attribute colorTempPhysicalMaxMireds default = 0xfeff; ram attribute coupleColorTempToLevelMinMireds; ram attribute startUpColorTemperatureMireds; ram attribute featureMap default = 0; diff --git a/examples/placeholder/linux/apps/app2/config.zap b/examples/placeholder/linux/apps/app2/config.zap index 431464e472546b..22cf3673249346 100644 --- a/examples/placeholder/linux/apps/app2/config.zap +++ b/examples/placeholder/linux/apps/app2/config.zap @@ -38,204 +38,6 @@ "deviceTypeCode": null, "deviceTypeProfileId": null, "clusters": [ - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "Off", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "On", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "Toggle", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OffWithEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OnWithRecallGlobalScene", - "code": 65, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "OnWithTimedOff", - "code": 66, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "OnOff", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "GlobalSceneControl", - "code": 16384, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OnTime", - "code": 16385, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OffWaitTime", - "code": 16386, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "StartUpOnOff", - "code": 16387, - "mfgCode": null, - "side": "server", - "type": "OnOffStartUpOnOff", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFF", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0001", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, { "name": "Descriptor", "code": 29, @@ -3043,12 +2845,12 @@ ] }, { - "name": "WiFi Network Diagnostics", - "code": 54, + "name": "Thread Network Diagnostics", + "code": 53, "mfgCode": null, - "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, "commands": [ { "name": "ResetCounts", @@ -3072,26 +2874,42 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "WiFi Network Diagnostics", - "code": 54, + "name": "Thread Network Diagnostics", + "code": 53, "mfgCode": null, - "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "BSSID", + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Channel", "code": 0, "mfgCode": null, "side": "server", - "type": "octet_string", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, @@ -3099,15 +2917,15 @@ "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SecurityType", + "name": "RoutingRole", "code": 1, "mfgCode": null, "side": "server", - "type": "SecurityTypeEnum", + "type": "RoutingRoleEnum", "included": 1, "storageOption": "External", "singleton": 0, @@ -3119,23 +2937,23 @@ "reportableChange": 0 }, { - "name": "WiFiVersion", + "name": "NetworkName", "code": 2, "mfgCode": null, "side": "server", - "type": "WiFiVersionEnum", + "type": "String", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ChannelNumber", + "name": "PanId", "code": 3, "mfgCode": null, "side": "server", @@ -3144,94 +2962,94 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "RSSI", + "name": "ExtendedPanId", "code": 4, "mfgCode": null, "side": "server", - "type": "int8s", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "BeaconLostCount", + "name": "MeshLocalPrefix", "code": 5, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "octet_string", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "BeaconRxCount", + "name": "OverrunCount", "code": 6, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketMulticastRxCount", + "name": "NeighborTable", "code": 7, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "NeighborTableStruct", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketMulticastTxCount", + "name": "RouteTable", "code": 8, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "RouteTableStruct", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketUnicastRxCount", + "name": "PartitionId", "code": 9, "mfgCode": null, "side": "server", @@ -3240,1111 +3058,880 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketUnicastTxCount", + "name": "Weighting", "code": 10, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentMaxRate", + "name": "DataVersion", "code": 11, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OverrunCount", + "name": "StableDataVersion", "code": 12, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "LeaderRouterId", + "code": 13, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "DetachedRoleCount", + "code": 14, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ], - "events": [ - { - "name": "Disconnection", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 }, { - "name": "AssociationFailure", - "code": 1, + "name": "ChildRoleCount", + "code": 15, "mfgCode": null, "side": "server", - "included": 1 + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "ConnectionStatus", - "code": 2, + "name": "RouterRoleCount", + "code": 16, "mfgCode": null, "side": "server", - "included": 1 - } - ] - }, - { - "name": "Ethernet Network Diagnostics", - "code": 55, - "mfgCode": null, - "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "ResetCounts", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Ethernet Network Diagnostics", - "code": 55, - "mfgCode": null, - "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "PHYRate", - "code": 0, + "name": "LeaderRoleCount", + "code": 17, "mfgCode": null, "side": "server", - "type": "PHYRateEnum", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FullDuplex", - "code": 1, + "name": "AttachAttemptCount", + "code": 18, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PacketRxCount", - "code": 2, + "name": "PartitionIdChangeCount", + "code": 19, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "PacketTxCount", - "code": 3, + "name": "BetterPartitionAttachAttemptCount", + "code": 20, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TxErrCount", - "code": 4, + "name": "ParentChangeCount", + "code": 21, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CollisionCount", - "code": 5, + "name": "TxTotalCount", + "code": 22, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OverrunCount", - "code": 6, + "name": "TxUnicastCount", + "code": 23, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CarrierDetect", - "code": 7, + "name": "TxBroadcastCount", + "code": 24, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TimeSinceReset", - "code": 8, + "name": "TxAckRequestedCount", + "code": 25, "mfgCode": null, "side": "server", - "type": "int64u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000000000000000", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxAckedCount", + "code": 26, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxNoAckRequestedCount", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Switch", - "code": 59, - "mfgCode": null, - "define": "SWITCH_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxDataCount", + "code": 28, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxDataPollCount", + "code": 29, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Switch", - "code": 59, - "mfgCode": null, - "define": "SWITCH_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "NumberOfPositions", - "code": 0, + "name": "TxBeaconCount", + "code": 30, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPosition", - "code": 1, + "name": "TxBeaconRequestCount", + "code": 31, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MultiPressMax", - "code": 2, + "name": "TxOtherCount", + "code": 32, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "TxRetryCount", + "code": 33, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "TxDirectMaxRetryExpiryCount", + "code": 34, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "TxIndirectMaxRetryExpiryCount", + "code": 35, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "TxErrCcaCount", + "code": 36, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "TxErrAbortCount", + "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Administrator Commissioning", - "code": 60, - "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "OpenCommissioningWindow", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "OpenBasicCommissioningWindow", - "code": 1, + "name": "TxErrBusyChannelCount", + "code": 38, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RevokeCommissioning", - "code": 2, + "name": "RxTotalCount", + "code": 39, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxUnicastCount", + "code": 40, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Administrator Commissioning", - "code": 60, - "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "WindowStatus", - "code": 0, + "name": "RxBroadcastCount", + "code": 41, "mfgCode": null, "side": "server", - "type": "CommissioningWindowStatusEnum", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AdminFabricIndex", - "code": 1, + "name": "RxDataCount", + "code": 42, "mfgCode": null, "side": "server", - "type": "fabric_idx", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AdminVendorId", - "code": 2, + "name": "RxDataPollCount", + "code": 43, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RxBeaconCount", + "code": 44, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxBeaconRequestCount", + "code": 45, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Operational Credentials", - "code": 62, - "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ + }, { - "name": "AttestationRequest", - "code": 0, + "name": "RxOtherCount", + "code": 46, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CertificateChainRequest", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CSRRequest", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddNOC", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UpdateNOC", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UpdateFabricLabel", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "RemoveFabric", - "code": 10, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddTrustedRootCertificate", - "code": 11, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Operational Credentials", - "code": 62, - "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "AttestationResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "CertificateChainResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "CSRResponse", - "code": 5, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 }, { - "name": "NOCResponse", - "code": 8, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "Fabrics", - "code": 1, + "name": "RxAddressFilteredCount", + "code": 47, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedFabrics", - "code": 2, + "name": "RxDestAddrFilteredCount", + "code": 48, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CommissionedFabrics", - "code": 3, + "name": "RxDuplicatedCount", + "code": 49, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "TrustedRootCertificates", - "code": 4, + "name": "RxErrNoFrameCount", + "code": 50, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentFabricIndex", - "code": 5, + "name": "RxErrUnknownNeighborCount", + "code": 51, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RxErrInvalidSrcAddrCount", + "code": 52, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxErrSecCount", + "code": 53, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RxErrFcsCount", + "code": 54, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "LabelList", - "code": 0, + "name": "RxErrOtherCount", + "code": 55, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ActiveTimestamp", + "code": 56, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "PendingTimestamp", + "code": 57, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Boolean State", - "code": 69, - "mfgCode": null, - "define": "BOOLEAN_STATE_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Delay", + "code": 58, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Boolean State", - "code": 69, - "mfgCode": null, - "define": "BOOLEAN_STATE_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "StateValue", - "code": 0, + "name": "SecurityPolicy", + "code": 59, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "SecurityPolicy", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ChannelPage0Mask", + "code": 60, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OperationalDatasetComponents", + "code": 61, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "OperationalDatasetComponents", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 62, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Mode Select", - "code": 80, + "name": "WiFi Network Diagnostics", + "code": 54, "mfgCode": null, - "define": "MODE_SELECT_CLUSTER", + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [ { - "name": "ChangeToMode", + "name": "ResetCounts", "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -4357,245 +3944,300 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Mode Select", - "code": 80, + "name": "WiFi Network Diagnostics", + "code": 54, "mfgCode": null, - "define": "MODE_SELECT_CLUSTER", + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "Description", + "name": "BSSID", "code": 0, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StandardNamespace", + "name": "SecurityType", "code": 1, "mfgCode": null, "side": "server", - "type": "enum16", + "type": "SecurityTypeEnum", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SupportedModes", + "name": "WiFiVersion", "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "WiFiVersionEnum", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "255", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentMode", + "name": "ChannelNumber", "code": 3, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpMode", + "name": "RSSI", "code": 4, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int8s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "BeaconLostCount", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "BeaconRxCount", + "code": 6, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "PacketMulticastRxCount", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "PacketMulticastTxCount", + "code": 8, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "PacketUnicastRxCount", + "code": 9, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00000000", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Window Covering", - "code": 258, - "mfgCode": null, - "define": "WINDOW_COVERING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ + }, { - "name": "UpOrOpen", - "code": 0, + "name": "PacketUnicastTxCount", + "code": 10, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "DownOrClose", - "code": 1, + "name": "CurrentMaxRate", + "code": 11, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StopMotion", - "code": 2, + "name": "OverrunCount", + "code": 12, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "GoToLiftValue", - "code": 4, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "GoToLiftPercentage", - "code": 5, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "events": [ + { + "name": "Disconnection", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1 }, { - "name": "GoToTiltValue", - "code": 7, + "name": "AssociationFailure", + "code": 1, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "included": 1 }, { - "name": "GoToTiltPercentage", - "code": 8, + "name": "ConnectionStatus", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 0 + "outgoing": 1 } ], "attributes": [ @@ -4609,7 +4251,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -4618,378 +4260,378 @@ ] }, { - "name": "Window Covering", - "code": 258, + "name": "Ethernet Network Diagnostics", + "code": 55, "mfgCode": null, - "define": "WINDOW_COVERING_CLUSTER", + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "Type", + "name": "PHYRate", "code": 0, "mfgCode": null, "side": "server", - "type": "Type", + "type": "PHYRateEnum", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentPositionLift", - "code": 3, + "name": "FullDuplex", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentPositionTilt", - "code": 4, + "name": "PacketRxCount", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ConfigStatus", - "code": 7, + "name": "PacketTxCount", + "code": 3, "mfgCode": null, "side": "server", - "type": "ConfigStatus", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x03", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionLiftPercentage", - "code": 8, + "name": "TxErrCount", + "code": 4, "mfgCode": null, "side": "server", - "type": "Percent", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "50", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 100, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionTiltPercentage", - "code": 9, + "name": "CollisionCount", + "code": 5, "mfgCode": null, "side": "server", - "type": "Percent", + "type": "int64u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "50", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 100, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OperationalStatus", - "code": 10, + "name": "OverrunCount", + "code": 6, "mfgCode": null, "side": "server", - "type": "OperationalStatus", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x0000000000000000", "reportable": 1, "minInterval": 0, - "maxInterval": 127, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "TargetPositionLiftPercent100ths", - "code": 11, + "name": "CarrierDetect", + "code": 7, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 10000, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TargetPositionTiltPercent100ths", - "code": 12, + "name": "TimeSinceReset", + "code": 8, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "0x0000000000000000", "reportable": 1, - "minInterval": 0, - "maxInterval": 10000, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EndProductType", - "code": 13, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "EndProductType", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "3", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentPositionLiftPercent100ths", - "code": 14, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "Percent100ths", + "type": "int16u", "included": 1, - "storageOption": "NVM", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "1", "reportable": 1, "minInterval": 0, - "maxInterval": 10000, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Device Basic Information", + "code": 57, + "mfgCode": null, + "define": "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "CurrentPositionTiltPercent100ths", - "code": 15, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "Percent100ths", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "RAM", + "singleton": 1, "bounded": 0, - "defaultValue": "500", + "defaultValue": "2", "reportable": 1, "minInterval": 0, - "maxInterval": 10000, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Device Basic Information", + "code": 57, + "mfgCode": null, + "define": "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "InstalledOpenLimitLift", - "code": 16, + "name": "DataModelRevision", + "code": 0, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledClosedLimitLift", - "code": 17, + "name": "VendorName", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFFFF", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledOpenLimitTilt", - "code": 18, + "name": "VendorID", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "vendor_id", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "InstalledClosedLimitTilt", - "code": 19, + "name": "ProductName", + "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0xFFFF", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Mode", - "code": 23, + "name": "ProductID", + "code": 4, "mfgCode": null, "side": "server", - "type": "Mode", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 15, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SafetyStatus", - "code": 26, + "name": "NodeLabel", + "code": 5, "mfgCode": null, "side": "server", - "type": "SafetyStatus", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "NVM", + "singleton": 1, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Location", + "code": 6, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "0x17", + "defaultValue": "XX", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "HardwareVersion", + "code": 7, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pump Configuration and Control", - "code": 512, - "mfgCode": null, - "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "HardwareVersionString", + "code": 8, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pump Configuration and Control", - "code": 512, - "mfgCode": null, - "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MaxPressure", - "code": 0, + "name": "SoftwareVersion", + "code": 9, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int32u", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -4998,14 +4640,14 @@ "reportableChange": 0 }, { - "name": "MaxSpeed", - "code": 1, + "name": "SoftwareVersionString", + "code": 10, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -5014,14 +4656,14 @@ "reportableChange": 0 }, { - "name": "MaxFlow", - "code": 2, + "name": "ManufacturingDate", + "code": 11, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, @@ -5030,125 +4672,125 @@ "reportableChange": 0 }, { - "name": "MinConstPressure", - "code": 3, + "name": "PartNumber", + "code": 12, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstPressure", - "code": 4, + "name": "ProductURL", + "code": 13, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "long_char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinCompPressure", - "code": 5, + "name": "ProductLabel", + "code": 14, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxCompPressure", - "code": 6, + "name": "SerialNumber", + "code": 15, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstSpeed", - "code": 7, + "name": "LocalConfigDisabled", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "NVM", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstSpeed", - "code": 8, + "name": "Reachable", + "code": 17, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, + "type": "boolean", + "included": 0, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinConstFlow", - "code": 9, + "name": "UniqueID", + "code": 18, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstFlow", - "code": 10, + "name": "CapabilityMinima", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "CapabilityMinimaStruct", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -5158,192 +4800,219 @@ "reportableChange": 0 }, { - "name": "MinConstTemp", - "code": 11, + "name": "ProductAppearance", + "code": 20, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "ProductAppearanceStruct", "included": 1, - "storageOption": "RAM", - "singleton": 0, + "storageOption": "External", + "singleton": 1, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxConstTemp", - "code": 12, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PumpStatus", - "code": 16, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "PumpStatusBitmap", + "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 + } + ], + "events": [ + { + "name": "StartUp", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1 }, { - "name": "EffectiveOperationMode", - "code": 17, + "name": "ShutDown", + "code": 1, "mfgCode": null, "side": "server", - "type": "OperationModeEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "included": 1 }, { - "name": "EffectiveControlMode", - "code": 18, + "name": "Leave", + "code": 2, "mfgCode": null, "side": "server", - "type": "ControlModeEnum", + "included": 1 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Capacity", - "code": 19, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "int16s", + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "Speed", - "code": 20, + "name": "NumberOfPositions", + "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LifetimeRunningHours", - "code": 21, + "name": "CurrentPosition", + "code": 1, "mfgCode": null, "side": "server", - "type": "int24u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Power", - "code": 22, + "name": "MultiPressMax", + "code": 2, "mfgCode": null, "side": "server", - "type": "int24u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LifetimeEnergyConsumed", - "code": 23, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00000000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OperationMode", - "code": 32, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "OperationModeEnum", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ControlMode", - "code": 33, + "name": "AttributeList", + "code": 65531, "mfgCode": null, "side": "server", - "type": "ControlModeEnum", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5375,52 +5044,44 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Thermostat", - "code": 513, + "name": "Administrator Commissioning", + "code": 60, "mfgCode": null, - "define": "THERMOSTAT_CLUSTER", + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", "side": "client", "enabled": 0, "commands": [ { - "name": "SetpointRaiseLower", + "name": "OpenCommissioningWindow", "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { - "name": "SetWeeklySchedule", + "name": "OpenBasicCommissioningWindow", "code": 1, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { - "name": "GetWeeklySchedule", + "name": "RevokeCommissioning", "code": 2, "mfgCode": null, "source": "client", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ClearWeeklySchedule", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -5435,7 +5096,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -5444,325 +5105,307 @@ ] }, { - "name": "Thermostat", - "code": 513, + "name": "Administrator Commissioning", + "code": 60, "mfgCode": null, - "define": "THERMOSTAT_CLUSTER", + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", "side": "server", "enabled": 1, - "commands": [ - { - "name": "GetWeeklyScheduleResponse", - "code": 0, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 0 - } - ], "attributes": [ { - "name": "LocalTemperature", + "name": "WindowStatus", "code": 0, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "CommissioningWindowStatusEnum", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMinHeatSetpointLimit", - "code": 3, + "name": "AdminFabricIndex", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "fabric_idx", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x02BC", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMinCoolSetpointLimit", - "code": 5, + "name": "AdminVendorId", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0640", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AbsMaxCoolSetpointLimit", - "code": 6, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0C80", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PICoolingDemand", - "code": 7, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "int16u", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ { - "name": "PIHeatingDemand", - "code": 8, + "name": "AttestationRequest", + "code": 0, "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OccupiedCoolingSetpoint", - "code": 17, + "name": "CertificateChainRequest", + "code": 2, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0A28", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OccupiedHeatingSetpoint", - "code": 18, + "name": "CSRRequest", + "code": 4, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x07D0", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinHeatSetpointLimit", - "code": 21, + "name": "AddNOC", + "code": 6, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x02BC", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MaxHeatSetpointLimit", - "code": 22, + "name": "UpdateNOC", + "code": 7, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0BB8", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinCoolSetpointLimit", - "code": 23, + "name": "UpdateFabricLabel", + "code": 9, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0640", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MaxCoolSetpointLimit", - "code": 24, + "name": "RemoveFabric", + "code": 10, "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0C80", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "MinSetpointDeadBand", - "code": 25, + "name": "AddTrustedRootCertificate", + "code": 11, "mfgCode": null, - "side": "server", - "type": "int8s", + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x19", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 }, { - "name": "ControlSequenceOfOperation", - "code": 27, - "mfgCode": null, - "side": "server", - "type": "ThermostatControlSequence", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x04", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SystemMode", - "code": 28, + "name": "CertificateChainResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Fabrics", + "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "StartOfWeek", - "code": 32, + "name": "SupportedFabrics", + "code": 2, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfWeeklyTransitions", - "code": 33, + "name": "CommissionedFabrics", + "code": 3, "mfgCode": null, "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "7", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfDailyTransitions", - "code": 34, + "name": "TrustedRootCertificates", + "code": 4, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TemperatureSetpointHold", - "code": 35, + "name": "CurrentFabricIndex", + "code": 5, "mfgCode": null, "side": "server", - "type": "enum8", - "included": 0, - "storageOption": "RAM", + "type": "int8u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5775,10 +5418,10 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000b", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5791,38 +5434,22 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Thermostat User Interface Configuration", - "code": 516, + "name": "User Label", + "code": 65, "mfgCode": null, - "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "define": "USER_LABEL_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -5833,7 +5460,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5842,104 +5469,108 @@ ] }, { - "name": "Thermostat User Interface Configuration", - "code": 516, + "name": "User Label", + "code": 65, "mfgCode": null, - "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "define": "USER_LABEL_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "TemperatureDisplayMode", + "name": "LabelList", "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "KeypadLockout", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "enum8", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ScheduleProgrammingVisibility", - "code": 2, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "bitmap32", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Boolean State", + "code": 69, + "mfgCode": null, + "define": "BOOLEAN_STATE_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "array", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Boolean State", + "code": 69, + "mfgCode": null, + "define": "BOOLEAN_STATE_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "AttributeList", - "code": 65531, + "name": "StateValue", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5971,7 +5602,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "2", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5980,13 +5611,39 @@ ] }, { - "name": "Illuminance Measurement", - "code": 1024, + "name": "Mode Select", + "code": 80, "mfgCode": null, - "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "define": "MODE_SELECT_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, + "commands": [ + { + "name": "ChangeToMode", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -5997,7 +5654,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6006,67 +5663,67 @@ ] }, { - "name": "Illuminance Measurement", - "code": 1024, + "name": "Mode Select", + "code": 80, "mfgCode": null, - "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "define": "MODE_SELECT_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "MeasuredValue", + "name": "Description", "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", + "name": "StandardNamespace", "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", + "name": "SupportedModes", "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0xFFFE", + "defaultValue": "255", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Tolerance", + "name": "CurrentMode", "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -6078,16 +5735,64 @@ "reportableChange": 0 }, { - "name": "LightSensorType", + "name": "StartUpMode", "code": 4, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFF", + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6119,7 +5824,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6128,12 +5833,46 @@ ] }, { - "name": "Temperature Measurement", - "code": 1026, + "name": "Door Lock", + "code": 257, "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "define": "DOOR_LOCK_CLUSTER", "side": "client", "enabled": 1, + "commands": [ + { + "name": "Lock Door", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Unlock Door", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Unlock with Timeout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "ClusterRevision", @@ -6145,406 +5884,382 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "6", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Temperature Measurement", - "code": 1026, + "name": "Door Lock", + "code": 257, "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "define": "DOOR_LOCK_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "MeasuredValue", - "code": 0, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "6", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LockState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", + "name": "LockType", "code": 1, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", + "name": "ActuatorEnabled", "code": 2, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "boolean", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Tolerance", + "name": "DoorState", "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "DoorOpenEvents", + "code": 4, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "DoorClosedEvents", + "code": 5, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Pressure Measurement", - "code": 1027, - "mfgCode": null, - "define": "PRESSURE_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OpenPeriod", + "code": 6, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Pressure Measurement", - "code": 1027, - "mfgCode": null, - "define": "PRESSURE_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "NumberOfLogRecordsSupported", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "NumberOfTotalUsersSupported", + "code": 17, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "NumberOfPINUsersSupported", + "code": 18, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "NumberOfRFIDUsersSupported", + "code": 19, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ScaledValue", - "code": 16, + "name": "NumberOfWeekDaySchedulesSupportedPerUser", + "code": 20, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinScaledValue", - "code": 17, + "name": "NumberOfYearDaySchedulesSupportedPerUser", + "code": 21, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxScaledValue", - "code": 18, + "name": "NumberOfHolidaySchedulesSupported", + "code": 22, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ScaledTolerance", - "code": 19, + "name": "MaxPINCodeLength", + "code": 23, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Scale", - "code": 20, + "name": "MinPINCodeLength", + "code": 24, "mfgCode": null, "side": "server", - "type": "int8s", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "MaxRFIDCodeLength", + "code": 25, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MinRFIDCodeLength", + "code": 26, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Flow Measurement", - "code": 1028, - "mfgCode": null, - "define": "FLOW_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "CredentialRulesSupport", + "code": 27, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Flow Measurement", - "code": 1028, - "mfgCode": null, - "define": "FLOW_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "NumberOfCredentialsSupportedPerUser", + "code": 28, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "EnableLogging", + "code": 32, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "Language", + "code": 33, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "String", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6552,436 +6267,472 @@ "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - }, - { - "name": "Tolerance", - "code": 3, + } + ,{ + "name": "LEDSettings", + "code": 34, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "AutoRelockTime", + "code": 35, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoundVolume", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OperatingMode", + "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Relative Humidity Measurement", - "code": 1029, - "mfgCode": null, - "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "SupportedOperatingModes", + "code": 38, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "65526", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "DefaultConfigurationRegister", + "code": 39, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Relative Humidity Measurement", - "code": 1029, - "mfgCode": null, - "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "MeasuredValue", - "code": 0, + "name": "EnableLocalProgramming", + "code": 40, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "EnableOneTouchLocking", + "code": 41, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "EnableInsideStatusLED", + "code": 42, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x2710", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "EnablePrivacyModeButton", + "code": 43, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "LocalProgrammingFeatures", + "code": 44, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "WrongCodeEntryLimit", + "code": 48, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "UserCodeTemporaryDisableTime", + "code": 49, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "SendPINOverTheAir", + "code": 50, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RequirePINforRemoteOperation", + "code": 51, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Target Navigator", - "code": 1285, - "mfgCode": null, - "define": "TARGET_NAVIGATOR_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ + }, { - "name": "NavigateTarget", - "code": 0, + "name": "SecurityLevel", + "code": 52, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ExpiringUserTimeout", + "code": 53, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Target Navigator", - "code": 1285, - "mfgCode": null, - "define": "TARGET_NAVIGATOR_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ + }, { - "name": "NavigateTargetResponse", - "code": 1, + "name": "AlarmMask", + "code": 64, "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "TargetList", - "code": 0, + "name": "KeypadOperationEventMask", + "code": 65, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentTarget", - "code": 1, + "name": "RemoteOperationEventMask", + "code": 66, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "ManualOperationEventMask", + "code": 67, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "RFIDOperationEventMask", + "code": 68, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "KeypadProgrammingEventMask", + "code": 69, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "RemoteProgrammingEventMask", + "code": 70, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "RFIDProgrammingEventMask", + "code": 71, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0xFFFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 } ] - }, + }, { - "name": "Keypad Input", - "code": 1289, + "name": "Window Covering", + "code": 258, "mfgCode": null, - "define": "KEYPAD_INPUT_CLUSTER", + "define": "WINDOW_COVERING_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [ { - "name": "SendKey", + "name": "UpOrOpen", "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 + }, + { + "name": "DownOrClose", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopMotion", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToLiftValue", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToLiftPercentage", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToTiltValue", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToTiltPercentage", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 } ], "attributes": [ @@ -6995,254 +6746,308 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Keypad Input", - "code": 1289, + "name": "Window Covering", + "code": 258, "mfgCode": null, - "define": "KEYPAD_INPUT_CLUSTER", + "define": "WINDOW_COVERING_CLUSTER", "side": "server", "enabled": 1, - "commands": [ - { - "name": "SendKeyResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], "attributes": [ { - "name": "GeneratedCommandList", - "code": 65528, + "name": "Type", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "Type", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "CurrentPositionLift", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x7FFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "CurrentPositionTilt", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x7FFF", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ConfigStatus", + "code": 7, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "ConfigStatus", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x03", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "CurrentPositionLiftPercentage", + "code": 8, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "Percent", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "50", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 100, "reportableChange": 0 - } - ] - }, - { - "name": "Content Launcher", - "code": 1290, - "mfgCode": null, - "define": "CONTENT_LAUNCHER_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "LaunchContent", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "LaunchURL", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "CurrentPositionTiltPercentage", + "code": 9, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "Percent", "included": 1, - "storageOption": "RAM", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "50", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 100, "reportableChange": 0 - } - ] - }, - { - "name": "Content Launcher", - "code": 1290, - "mfgCode": null, - "define": "CONTENT_LAUNCHER_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ - { - "name": "LauncherResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ + }, { - "name": "AcceptHeader", - "code": 0, + "name": "OperationalStatus", + "code": 10, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalStatus", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 127, "reportableChange": 0 }, { - "name": "SupportedStreamingProtocols", - "code": 1, + "name": "TargetPositionLiftPercent100ths", + "code": 11, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "Percent100ths", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "TargetPositionTiltPercent100ths", + "code": 12, "mfgCode": null, "side": "server", - "type": "array", + "type": "Percent100ths", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "EndProductType", + "code": 13, "mfgCode": null, "side": "server", - "type": "array", + "type": "EndProductType", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "CurrentPositionLiftPercent100ths", + "code": 14, "mfgCode": null, "side": "server", - "type": "array", + "type": "Percent100ths", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 10000, + "reportableChange": 0 + }, + { + "name": "CurrentPositionTiltPercent100ths", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "Percent100ths", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "500", + "reportable": 1, + "minInterval": 0, + "maxInterval": 10000, + "reportableChange": 0 + }, + { + "name": "InstalledOpenLimitLift", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledClosedLimitLift", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledOpenLimitTilt", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledClosedLimitTilt", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Mode", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "Mode", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 15, + "reportableChange": 0 + }, + { + "name": "SafetyStatus", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "SafetyStatus", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -7255,10 +7060,10 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x17", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -7271,21 +7076,21 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Application Basic", - "code": 1293, + "name": "Pump Configuration and Control", + "code": 512, "mfgCode": null, - "define": "APPLICATION_BASIC_CLUSTER", + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "attributes": [ { "name": "ClusterRevision", @@ -7297,7 +7102,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "3", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7306,85 +7111,85 @@ ] }, { - "name": "Application Basic", - "code": 1293, + "name": "Pump Configuration and Control", + "code": 512, "mfgCode": null, - "define": "APPLICATION_BASIC_CLUSTER", + "define": "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "VendorName", + "name": "MaxPressure", "code": 0, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "VendorID", + "name": "MaxSpeed", "code": 1, "mfgCode": null, "side": "server", - "type": "vendor_id", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ApplicationName", + "name": "MaxFlow", "code": 2, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ProductID", + "name": "MinConstPressure", "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Application", + "name": "MaxConstPressure", "code": 4, "mfgCode": null, "side": "server", - "type": "ApplicationStruct", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7394,27 +7199,27 @@ "reportableChange": 0 }, { - "name": "Status", + "name": "MinCompPressure", "code": 5, "mfgCode": null, "side": "server", - "type": "ApplicationStatusEnum", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ApplicationVersion", + "name": "MaxCompPressure", "code": 6, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7426,13 +7231,13 @@ "reportableChange": 0 }, { - "name": "AllowedVendorList", + "name": "MinConstSpeed", "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7442,13 +7247,13 @@ "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "MaxConstSpeed", + "code": 8, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7458,13 +7263,13 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "MinConstFlow", + "code": 9, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7474,13 +7279,13 @@ "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "MaxConstFlow", + "code": 10, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7490,118 +7295,104 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "MinConstTemp", + "code": 11, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "MaxConstTemp", + "code": 12, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - } - ] - }, - { - "name": "Anonymous Endpoint Type", - "deviceTypeName": "MA-dimmablelight", - "deviceTypeCode": 257, - "deviceTypeProfileId": 259, - "clusters": [ - { - "name": "Identify", - "code": 3, - "mfgCode": null, - "define": "IDENTIFY_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ + }, { - "name": "Identify", - "code": 0, + "name": "PumpStatus", + "code": 16, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "PumpStatusBitmap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "TriggerEffect", - "code": 64, + "name": "EffectiveOperationMode", + "code": 17, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ + "side": "server", + "type": "OperationModeEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, { - "name": "FeatureMap", - "code": 65532, + "name": "EffectiveControlMode", + "code": 18, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "ControlModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Capacity", + "code": 19, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Identify", - "code": 3, - "mfgCode": null, - "define": "IDENTIFY_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "IdentifyTime", - "code": 0, + "name": "Speed", + "code": 20, "mfgCode": null, "side": "server", "type": "int16u", @@ -7609,36 +7400,36 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "IdentifyType", - "code": 1, + "name": "LifetimeRunningHours", + "code": 21, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int24u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "0x000000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "Power", + "code": 22, "mfgCode": null, "side": "server", - "type": "array", + "type": "int24u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7648,48 +7439,64 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "LifetimeEnergyConsumed", + "code": 23, "mfgCode": null, "side": "server", - "type": "array", + "type": "int32u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00000000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "OperationMode", + "code": 32, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationModeEnum", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ControlMode", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "ControlModeEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "AlarmMask", + "code": 34, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap16", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7721,88 +7528,64 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "3", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Groups", - "code": 4, + "name": "Thermostat", + "code": 513, "mfgCode": null, - "define": "GROUPS_CLUSTER", + "define": "THERMOSTAT_CLUSTER", "side": "client", - "enabled": 0, + "enabled": 1, "commands": [ { - "name": "AddGroup", + "name": "SetpointRaiseLower", "code": 0, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "ViewGroup", + "name": "SetWeeklySchedule", "code": 1, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "GetGroupMembership", + "name": "GetWeeklySchedule", "code": 2, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "RemoveGroup", + "name": "ClearWeeklySchedule", "code": 3, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 }, { - "name": "RemoveAllGroups", + "name": "GetRelayStatusLog", "code": 4, "mfgCode": null, "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "AddGroupIfIdentifying", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "incoming": 0, + "outgoing": 1 } ], "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -7813,873 +7596,881 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Groups", - "code": 4, + "name": "Thermostat", + "code": 513, "mfgCode": null, - "define": "GROUPS_CLUSTER", + "define": "THERMOSTAT_CLUSTER", "side": "server", "enabled": 1, "commands": [ { - "name": "AddGroupResponse", + "name": "GetWeeklyScheduleResponse", "code": 0, "mfgCode": null, "source": "server", - "incoming": 0, - "outgoing": 1 + "incoming": 1, + "outgoing": 0 }, { - "name": "ViewGroupResponse", + "name": "GetRelayStatusLogResponse", "code": 1, "mfgCode": null, "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "GetGroupMembershipResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "RemoveGroupResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 + "incoming": 1, + "outgoing": 0 } ], "attributes": [ { - "name": "NameSupport", + "name": "LocalTemperature", "code": 0, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "OutdoorTemperature", + "code": 1, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "Occupancy", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "AbsMinHeatSetpointLimit", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x02BC", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "AbsMaxHeatSetpointLimit", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16s", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0BB8", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "AbsMinCoolSetpointLimit", + "code": 5, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x0640", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "AbsMaxCoolSetpointLimit", + "code": 6, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0x0C80", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Scenes", - "code": 5, - "mfgCode": null, - "define": "SCENES_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "AddScene", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ViewScene", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "RemoveScene", - "code": 2, + "name": "PICoolingDemand", + "code": 7, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RemoveAllScenes", - "code": 3, + "name": "PIHeatingDemand", + "code": 8, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StoreScene", - "code": 4, + "name": "HVACSystemTypeConfiguration", + "code": 9, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RecallScene", - "code": 5, + "name": "LocalTemperatureCalibration", + "code": 16, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "GetSceneMembership", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "OccupiedCoolingSetpoint", + "code": 17, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x0A28", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "OccupiedHeatingSetpoint", + "code": 18, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0x07D0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Scenes", - "code": 5, - "mfgCode": null, - "define": "SCENES_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [ + }, { - "name": "AddSceneResponse", - "code": 0, + "name": "UnoccupiedCoolingSetpoint", + "code": 19, "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "ViewSceneResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "RemoveSceneResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0A28", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "RemoveAllScenesResponse", - "code": 3, + "name": "UnoccupiedHeatingSetpoint", + "code": 20, "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07D0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StoreSceneResponse", - "code": 4, + "name": "MinHeatSetpointLimit", + "code": 21, "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02BC", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "GetSceneMembershipResponse", - "code": 6, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "SceneCount", - "code": 0, + "name": "MaxHeatSetpointLimit", + "code": 22, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x0BB8", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentScene", - "code": 1, + "name": "MinCoolSetpointLimit", + "code": 23, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x0640", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentGroup", - "code": 2, + "name": "MaxCoolSetpointLimit", + "code": 24, "mfgCode": null, "side": "server", - "type": "group_id", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x0C80", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "SceneValid", - "code": 3, + "name": "MinSetpointDeadBand", + "code": 25, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int8s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x19", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NameSupport", - "code": 4, + "name": "RemoteSensing", + "code": 26, "mfgCode": null, "side": "server", "type": "bitmap8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LastConfiguredBy", - "code": 5, + "name": "ControlSequenceOfOperation", + "code": 27, "mfgCode": null, "side": "server", - "type": "node_id", - "included": 0, + "type": "ThermostatControlSequence", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x04", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "SystemMode", + "code": 28, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x01", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "AlarmMask", + "code": 29, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "ThermostatRunningMode", + "code": 30, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "StartOfWeek", + "code": 32, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "NumberOfWeeklyTransitions", + "code": 33, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "7", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "NumberOfDailyTransitions", + "code": 34, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "4", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "client", - "enabled": 1, - "commands": [ - { - "name": "Off", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "On", - "code": 1, + "name": "TemperatureSetpointHold", + "code": 35, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Toggle", - "code": 2, + "name": "TemperatureSetpointHoldDuration", + "code": 36, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "OffWithEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "OnWithRecallGlobalScene", - "code": 65, + "name": "ThermostatProgrammingOperationMode", + "code": 37, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "OnWithTimedOff", - "code": 66, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "ThermostatRunningState", + "code": 41, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "SetpointChangeSource", + "code": 48, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "OnOff", - "code": 0, + "name": "SetpointChangeAmount", + "code": 49, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GlobalSceneControl", - "code": 16384, + "name": "SetpointChangeSourceTimestamp", + "code": 50, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "utc", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OnTime", - "code": 16385, + "name": "OccupiedSetback", + "code": 52, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "OffWaitTime", - "code": 16386, + "name": "OccupiedSetbackMin", + "code": 53, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "StartUpOnOff", - "code": 16387, + "name": "OccupiedSetbackMax", + "code": 54, "mfgCode": null, "side": "server", - "type": "OnOffStartUpOnOff", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "UnoccupiedSetback", + "code": 55, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "UnoccupiedSetbackMin", + "code": 56, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "UnoccupiedSetbackMax", + "code": 57, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "EmergencyHeatDelta", + "code": 58, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x009F6", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ACType", + "code": 64, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "enum8", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ACCapacity", + "code": 65, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - } - ] - }, - { - "name": "Level Control", - "code": 8, - "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToLevel", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "Move", - "code": 1, + "name": "ACRefrigerantType", + "code": 66, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Step", - "code": 2, + "name": "ACCompressorType", + "code": 67, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "Stop", - "code": 3, + "name": "ACErrorCode", + "code": 68, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "MoveToLevelWithOnOff", - "code": 4, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ACLouverPosition", + "code": 69, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "MoveWithOnOff", - "code": 5, + "name": "ACCoilTemperature", + "code": 70, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StepWithOnOff", - "code": 6, + "name": "ACCapacityFormat", + "code": 71, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 }, { - "name": "StopWithOnOff", - "code": 7, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000b", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 } - ], + ] + }, + { + "name": "Thermostat User Interface Configuration", + "code": 516, + "mfgCode": null, + "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 1, "attributes": [ { "name": "FeatureMap", @@ -8707,7 +8498,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -8716,19 +8507,19 @@ ] }, { - "name": "Level Control", - "code": 8, + "name": "Thermostat User Interface Configuration", + "code": 516, "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", + "define": "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "CurrentLevel", + "name": "TemperatureDisplayMode", "code": 0, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "enum8", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -8740,76 +8531,160 @@ "reportableChange": 0 }, { - "name": "RemainingTime", + "name": "KeypadLockout", "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinLevel", + "name": "ScheduleProgrammingVisibility", "code": 2, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "enum8", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxLevel", - "code": 3, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFE", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentFrequency", - "code": 4, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "MinFrequency", - "code": 5, + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -8820,120 +8695,4882 @@ "reportableChange": 0 }, { - "name": "MaxFrequency", - "code": 6, + "name": "MinMeasuredValue", + "code": 1, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LightSensorType", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMPERATURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledValue", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinScaledValue", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxScaledValue", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledTolerance", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Scale", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2710", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "NavigateTarget", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "NavigateTargetResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "TargetList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentTarget", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "SendKey", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "SendKeyResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "LaunchContent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "LaunchURL", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "LauncherResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "AcceptHeader", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedStreamingProtocols", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "VendorName", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ApplicationName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Application", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "ApplicationStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Status", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "ApplicationStatusEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ApplicationVersion", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AllowedVendorList", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPIN", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Login", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Logout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPINResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "LaunchApp", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StopApp", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "HideApp", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CatalogList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentApp", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "ApplicationEP", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "LauncherResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "SelectOutput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RenameOutput", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OutputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentOutput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ChangeChannel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ChangeChannelByNumber", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "SkipChannel", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ChannelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Lineup", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "LineupInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentChannel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "ChannelInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ChangeChannelResponse", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Sleep", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Play", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Pause", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StartOver", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Previous", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Next", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Rewind", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "FastForward", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipForward", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipBackward", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Seek", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "PlaybackResponse", + "code": 10, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "CurrentState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PlaybackStateType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "epoch_us", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Duration", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SampledPosition", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "PlaybackPositionType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PlaybackSpeed", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "SingleType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeEnd", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeStart", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "SelectInput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ShowInputStatus", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "HideInputStatus", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RenameInput", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "InputInfoStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentInput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-dimmablelight", + "deviceTypeCode": 257, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "IdentifyTime", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "IdentifyType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NameSupport", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConfiguredBy", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "node_id", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OffWithEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OnWithRecallGlobalScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OnWithTimedOff", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CurrentLevel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinLevel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxLevel", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentFrequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinFrequency", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxFrequency", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "LevelControlOptions", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnOffTransitionTime", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnLevel", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTransitionTime", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffTransitionTime", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "DefaultMoveRate", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpCurrentLevel", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EventList", + "code": 65530, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToSaturation", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveToHue", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedMoveHue", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "EnhancedStepHue", + "code": 66, "mfgCode": null, - "side": "server", - "type": "LevelControlOptions", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OnOffTransitionTime", - "code": 16, + "name": "EnhancedMoveToHueAndSaturation", + "code": 67, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OnLevel", - "code": 17, + "name": "ColorLoopSet", + "code": 68, "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OnTransitionTime", - "code": 18, + "name": "StopMoveStep", + "code": 71, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "OffTransitionTime", - "code": 19, + "name": "MoveColorTemperature", + "code": 75, "mfgCode": null, - "side": "server", + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "5", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "DefaultMoveRate", - "code": 20, + "name": "CurrentHue", + "code": 0, "mfgCode": null, "side": "server", "type": "int8u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "StartUpCurrentLevel", - "code": 16384, + "name": "CurrentSaturation", + "code": 1, "mfgCode": null, "side": "server", "type": "int8u", @@ -8941,95 +13578,95 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "RemainingTime", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "CurrentX", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x616B", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "CurrentY", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x607D", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "DriftCompensation", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "CompensationText", + "code": 6, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", - "reportable": 1, + "defaultValue": "", + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorTemperatureMireds", + "code": 7, "mfgCode": null, "side": "server", "type": "int16u", @@ -9037,570 +13674,482 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Descriptor", - "code": 29, - "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Descriptor", - "code": 29, - "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "DeviceTypeList", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00FA", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ServerList", - "code": 1, + "name": "ColorMode", + "code": 8, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", - "singleton": 0, + "singleton": 1, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClientList", - "code": 2, + "name": "Options", + "code": 15, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap8", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PartsList", - "code": 3, + "name": "EnhancedCurrentHue", + "code": 16384, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "EnhancedColorMode", + "code": 16385, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "ColorLoopActive", + "code": 16386, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "ColorLoopDirection", + "code": 16387, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "ColorLoopTime", + "code": 16388, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0019", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "ColorLoopStartEnhancedHue", + "code": 16389, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x2300", "reportable": 1, - "minInterval": 1, + "minInterval": 0, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorLoopStoredEnhancedHue", + "code": 16390, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorCapabilities", + "code": 16394, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "bitmap16", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "DataModelRevision", - "code": 0, + "name": "ColorTempPhysicalMinMireds", + "code": 16395, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "10", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "VendorName", - "code": 1, + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "bitmap8", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0xfeff", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "VendorID", - "code": 2, + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, "mfgCode": null, "side": "server", - "type": "vendor_id", + "type": "int16u", "included": 1, - "storageOption": "External", - "singleton": 1, + "storageOption": "RAM", + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductName", - "code": 3, + "name": "NumberOfPrimaries", + "code": 16, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductID", - "code": 4, + "name": "Primary1X", + "code": 17, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NodeLabel", - "code": 5, + "name": "Primary1Y", + "code": 18, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Location", - "code": 6, + "name": "Primary1Intensity", + "code": 19, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "XX", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "HardwareVersion", - "code": 7, + "name": "Primary2X", + "code": 21, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "HardwareVersionString", - "code": 8, + "name": "Primary2Y", + "code": 22, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SoftwareVersion", - "code": 9, + "name": "Primary2Intensity", + "code": 23, "mfgCode": null, "side": "server", - "type": "int32u", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SoftwareVersionString", - "code": 10, + "name": "Primary3X", + "code": 25, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ManufacturingDate", - "code": 11, + "name": "Primary3Y", + "code": 26, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, - "defaultValue": "20210614123456ZZ", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PartNumber", - "code": 12, + "name": "Primary3Intensity", + "code": 27, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductURL", - "code": 13, + "name": "Primary4X", + "code": 32, "mfgCode": null, "side": "server", - "type": "long_char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ProductLabel", - "code": 14, + "name": "Primary4Y", + "code": 33, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int16u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SerialNumber", - "code": 15, + "name": "Primary4Intensity", + "code": 34, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LocalConfigDisabled", - "code": 16, + "name": "Primary5X", + "code": 36, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, - "storageOption": "NVM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Reachable", - "code": 17, + "name": "Primary5Y", + "code": 37, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "int16u", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "UniqueID", - "code": 18, + "name": "Primary5Intensity", + "code": 38, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int8u", "included": 1, "storageOption": "External", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CapabilityMinima", - "code": 19, + "name": "Primary6X", + "code": 40, "mfgCode": null, "side": "server", - "type": "CapabilityMinimaStruct", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, @@ -9612,271 +14161,205 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Primary6Y", + "code": 41, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Primary6Intensity", + "code": 42, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", - "singleton": 1, + "storageOption": "External", + "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "client", - "enabled": 1, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "WhitePointX", + "code": 48, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "LabelList", - "code": 0, + "name": "WhitePointY", + "code": 49, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorPointRX", + "code": 50, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToColor", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "MoveColor", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 }, { - "name": "StepColor", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "ColorPointRY", + "code": 51, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + }, { - "name": "CurrentHue", - "code": 0, + "name": "ColorPointRIntensity", + "code": 52, "mfgCode": null, "side": "server", "type": "int8u", - "included": 0, - "storageOption": "RAM", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentSaturation", - "code": 1, + "name": "ColorPointGX", + "code": 54, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", + "type": "int16u", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentX", - "code": 3, + "name": "ColorPointGY", + "code": 55, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x616B", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentY", - "code": 4, + "name": "ColorPointGIntensity", + "code": 56, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x607D", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorTemperatureMireds", - "code": 7, + "name": "ColorPointBX", + "code": 58, "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, - "storageOption": "RAM", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00FA", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "ColorPointBY", + "code": 59, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CoupleColorTempToLevelMinMireds", - "code": 16397, + "name": "ColorPointBIntensity", + "code": 60, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index 6e13ca476beb56..56aea7c1c2416d 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -4117,7 +4117,7 @@ PICS: - label: "Does the DUT support the Content Launcher server cluster, Content Search feature?" - id: CONTENTLAUNCHER.S.CS + id: CONTENTLAUNCHER.S.F00 # # server / attributes @@ -4125,12 +4125,12 @@ PICS: - label: "Does the DUT support the Application Launcher server cluster, Application Platform feature?" - id: APPLAUNCHER.S.AP + id: APPLAUNCHER.S.F00 - label: "Does the DUT support the Media Playback server cluster, Advanced Seek feature?" - id: MEDIAPLAYBACK.S.AS + id: MEDIAPLAYBACK.S.F00 - label: "Does the DUT support the Wake On LAN server cluster, MACAddress @@ -4431,44 +4431,44 @@ PICS: - label: "Does the DUT support the Keypad Input server cluster, Navigation Keys?" - id: KEYPADINPUT.S.NV + id: KEYPADINPUT.S.F00 - label: "Does the DUT support the Keypad Input server cluster, Location Keys?" - id: KEYPADINPUT.S.LK + id: KEYPADINPUT.S.F01 - label: "Does the DUT support the Keypad Input server cluster, Number Keys?" - id: KEYPADINPUT.S.NK + id: KEYPADINPUT.S.F02 - label: "Does the DUT support the Media Input server cluster, Name Updates feature?" - id: MEDIAINPUT.S.NU + id: MEDIAINPUT.S.F00 - label: "Does the DUT support the Channel server cluster, Channel List feature?" - id: CHANNEL.S.CL + id: CHANNEL.S.F00 - label: "Does the DUT support the Channel server cluster, Lineup Info feature?" - id: CHANNEL.S.LI + id: CHANNEL.S.F01 - label: "Does the DUT support the Media Playback server cluster, Variable Speed feature?" - id: MEDIAPLAYBACK.S.VS + id: MEDIAPLAYBACK.S.F01 - label: "Does the DUT support the Audio Ouput server cluster, Name Updates feature?" - id: AUDIOOUTPUT.S.NU + id: AUDIOOUTPUT.S.F00 - label: "Does the DUT support the Content Launcher server cluster, URL Playback feature?" - id: CONTENTLAUNCHER.S.UP + id: CONTENTLAUNCHER.S.F01 - label: "Does the DUT support the Content Launcher server cluster and is @@ -4478,12 +4478,12 @@ PICS: - label: "Does the DUT support the commissioning procedure initiated by a commissionee using User Directed Commissioning?" - id: MC.S.UDC + id: MC.S.M.UDC - label: "Does the DUT support the commissioning procedure initiated by a commissionee using User Directed Commissioning without PIN code entry?" - id: MC.S.UDCLOGIN + id: MC.S.M.UDCLOGIN # # client / commandsGenerated diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml index 3bf2ea7996a829..21f673670f1cec 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml @@ -97,6 +97,7 @@ tests: - name: "ms" value: waitAfterCommissioning + #Issue https://github.com/project-chip/connectedhomeip/issues/26127 - label: "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2" @@ -149,6 +150,7 @@ tests: value: nodeId2 - label: "Read the TH2 commissioner node ID" + PICS: PICS_SDK_CI_ONLY identity: "beta" cluster: "CommissionerCommands" command: "GetCommissionerNodeId" @@ -160,6 +162,7 @@ tests: - label: "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" + PICS: PICS_SDK_CI_ONLY identity: "beta" command: "readAttribute" cluster: "Operational Credentials" @@ -167,6 +170,27 @@ tests: response: saveAs: TH2FabricIndex + - label: + "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex + attribute" + verification: | + ./chip-tool operationalcredentials read current-fabric-index 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool), verify to CurrentFabricIndex attribute of operationalCredential cluster as 2 + + 1658329570.828165][4563:4568] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 1369963572 + [1658329570.831838][4563:4568] CHIP:TOO: CurrentFabricIndex: 2 + [1658329570.831929][4563:4568] CHIP:EM: Sending Standalone Ack for MessageCounter:4928928 on exchange 29185i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 5:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute" PICS: ACL.S.A0000 @@ -193,7 +217,7 @@ tests: - label: "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY identity: "beta" command: "writeAttribute" attribute: "ACL" @@ -216,6 +240,86 @@ tests: }, ] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute" + verification: | + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [223344,2222], "targets": null}, { "privilege": 3, "authMode": 3, "subjects":[4444] , "targets": null}]' 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool), Verify AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 2 elements + + + [1658329868.113411][4587:4592] CHIP:DMG: WriteClient moving to [ResponseRe] + [1658329868.113469][4587:4592] CHIP:DMG: WriteResponseMessage = + [1658329868.113496][4587:4592] CHIP:DMG: { + [1658329868.113537][4587:4592] CHIP:DMG: AttributeStatusIBs = + [1658329868.113568][4587:4592] CHIP:DMG: [ + [1658329868.113602][4587:4592] CHIP:DMG: AttributeStatusIB = + [1658329868.113646][4587:4592] CHIP:DMG: { + [1658329868.113672][4587:4592] CHIP:DMG: AttributePathIB = + [1658329868.113712][4587:4592] CHIP:DMG: { + [1658329868.113745][4587:4592] CHIP:DMG: Endpoint = 0x0, + [1658329868.113788][4587:4592] CHIP:DMG: Cluster = 0x1f, + [1658329868.113833][4587:4592] CHIP:DMG: Attribute = 0x0000_0000, + [1658329868.113868][4587:4592] CHIP:DMG: } + [1658329868.113914][4587:4592] CHIP:DMG: + [1658329868.113951][4587:4592] CHIP:DMG: StatusIB = + [1658329868.113984][4587:4592] CHIP:DMG: { + [1658329868.114028][4587:4592] CHIP:DMG: status = 0x00 (SUCCESS), + [1658329868.114091][4587:4592] CHIP:DMG: }, + [1658329868.114124][4587:4592] CHIP:DMG: + [1658329868.114160][4587:4592] CHIP:DMG: }, + [1658329868.114197][4587:4592] CHIP:DMG: + [1658329868.114229][4587:4592] CHIP:DMG: AttributeStatusIB = + [1658329868.114266][4587:4592] CHIP:DMG: { + [1658329868.114294][4587:4592] CHIP:DMG: AttributePathIB = + [1658329868.114335][4587:4592] CHIP:DMG: { + [1658329868.114367][4587:4592] CHIP:DMG: Endpoint = 0x0, + [1658329868.114411][4587:4592] CHIP:DMG: Cluster = 0x1f, + [1658329868.114458][4587:4592] CHIP:DMG: Attribute = 0x0000_0000, + [1658329868.114491][4587:4592] CHIP:DMG: ListIndex = Null, + [1658329868.114529][4587:4592] CHIP:DMG: } + [1658329868.114563][4587:4592] CHIP:DMG: + [1658329868.114604][4587:4592] CHIP:DMG: StatusIB = + [1658329868.114645][4587:4592] CHIP:DMG: { + [1658329868.114677][4587:4592] CHIP:DMG: status = 0x00 (SUCCESS), + [1658329868.114716][4587:4592] CHIP:DMG: }, + [1658329868.114747][4587:4592] CHIP:DMG: + [1658329868.114782][4587:4592] CHIP:DMG: }, + [1658329868.114826][4587:4592] CHIP:DMG: + [1658329868.114850][4587:4592] CHIP:DMG: AttributeStatusIB = + [1658329868.114884][4587:4592] CHIP:DMG: { + [1658329868.114910][4587:4592] CHIP:DMG: AttributePathIB = + [1658329868.114948][4587:4592] CHIP:DMG: { + [1658329868.114980][4587:4592] CHIP:DMG: Endpoint = 0x0, + [1658329868.115024][4587:4592] CHIP:DMG: Cluster = 0x1f, + [1658329868.115067][4587:4592] CHIP:DMG: Attribute = 0x0000_0000, + [1658329868.115102][4587:4592] CHIP:DMG: ListIndex = Null, + [1658329868.115145][4587:4592] CHIP:DMG: } + [1658329868.115188][4587:4592] CHIP:DMG: + [1658329868.115222][4587:4592] CHIP:DMG: StatusIB = + [1658329868.115260][4587:4592] CHIP:DMG: { + [1658329868.115291][4587:4592] CHIP:DMG: status = 0x00 (SUCCESS), + [1658329868.115333][4587:4592] CHIP:DMG: }, + [1658329868.115371][4587:4592] CHIP:DMG: + [1658329868.115398][4587:4592] CHIP:DMG: }, + [1658329868.115438][4587:4592] CHIP:DMG: + [1658329868.115463][4587:4592] CHIP:DMG: ], + [1658329868.115507][4587:4592] CHIP:DMG: + [1658329868.115531][4587:4592] CHIP:DMG: InteractionModelRevision = 1 + [1658329868.115565][4587:4592] CHIP:DMG: } + [1658329868.115702][4587:4592] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1658329868.115764][4587:4592] CHIP:EM: Sending Standalone Ack for MessageCounter:240702602 on exchange 57878i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 7:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 @@ -231,12 +335,77 @@ tests: attribute, value is list of AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_SINGLE" identity: "beta" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY command: "writeAttribute" attribute: "Extension" arguments: value: [{ Data: D_OK_SINGLE, FabricIndex: TH2FabricIndex }] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 8:TH2 writes DUT Endpoint 0 AccessControl cluster Extension + attribute, value is list of AccessControlExtensionStruct containing 1 + element 1.struct, Data field: D_OK_SINGLE" + verification: | + ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool), Verify Successfully extension attribute list containg one element . + + [1658819083.842765][8349:8354] CHIP:EM: Removed CHIP MessageCounter:249057275 from RetransTable on exchange 59888i + [1658819083.842800][8349:8354] CHIP:DMG: WriteClient moving to [ResponseRe] + [1658819083.842907][8349:8354] CHIP:DMG: WriteResponseMessage = + [1658819083.842939][8349:8354] CHIP:DMG: { + [1658819083.842963][8349:8354] CHIP:DMG: AttributeStatusIBs = + [1658819083.843000][8349:8354] CHIP:DMG: [ + [1658819083.843026][8349:8354] CHIP:DMG: AttributeStatusIB = + [1658819083.843057][8349:8354] CHIP:DMG: { + [1658819083.843086][8349:8354] CHIP:DMG: AttributePathIB = + [1658819083.843120][8349:8354] CHIP:DMG: { + [1658819083.843161][8349:8354] CHIP:DMG: Endpoint = 0x0, + [1658819083.843201][8349:8354] CHIP:DMG: Cluster = 0x1f, + [1658819083.843242][8349:8354] CHIP:DMG: Attribute = 0x0000_0001, + [1658819083.843277][8349:8354] CHIP:DMG: } + [1658819083.843319][8349:8354] CHIP:DMG: + [1658819083.843355][8349:8354] CHIP:DMG: StatusIB = + [1658819083.843393][8349:8354] CHIP:DMG: { + [1658819083.843431][8349:8354] CHIP:DMG: status = 0x00 (SUCCESS), + [1658819083.843466][8349:8354] CHIP:DMG: }, + [1658819083.843504][8349:8354] CHIP:DMG: + [1658819083.843534][8349:8354] CHIP:DMG: }, + [1658819083.843575][8349:8354] CHIP:DMG: + [1658819083.843604][8349:8354] CHIP:DMG: AttributeStatusIB = + [1658819083.843636][8349:8354] CHIP:DMG: { + [1658819083.843666][8349:8354] CHIP:DMG: AttributePathIB = + [1658819083.843700][8349:8354] CHIP:DMG: { + [1658819083.843734][8349:8354] CHIP:DMG: Endpoint = 0x0, + [1658819083.843774][8349:8354] CHIP:DMG: Cluster = 0x1f, + [1658819083.843814][8349:8354] CHIP:DMG: Attribute = 0x0000_0001, + [1658819083.843853][8349:8354] CHIP:DMG: ListIndex = Null, + [1658819083.843888][8349:8354] CHIP:DMG: } + [1658819083.843926][8349:8354] CHIP:DMG: + [1658819083.843962][8349:8354] CHIP:DMG: StatusIB = + [1658819083.843996][8349:8354] CHIP:DMG: { + [1658819083.844030][8349:8354] CHIP:DMG: status = 0x00 (SUCCESS), + [1658819083.844065][8349:8354] CHIP:DMG: }, + [1658819083.844103][8349:8354] CHIP:DMG: + [1658819083.844133][8349:8354] CHIP:DMG: }, + [1658819083.844168][8349:8354] CHIP:DMG: + [1658819083.844194][8349:8354] CHIP:DMG: ], + [1658819083.844230][8349:8354] CHIP:DMG: + [1658819083.844256][8349:8354] CHIP:DMG: InteractionModelRevision = 1 + [1658819083.844282][8349:8354] CHIP:DMG: } + [1658819083.844389][8349:8354] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1658819083.844452][8349:8354] CHIP:EM: Sending Standalone Ack for MessageCounter:27055873 on exchange 59888i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 9: Reboot DUT" PICS: PICS_SDK_CI_ONLY cluster: "SystemCommands" @@ -310,7 +479,7 @@ tests: - label: "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY identity: "beta" command: "readAttribute" attribute: "ACL" @@ -333,16 +502,77 @@ tests: }, ] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute" + verification: | + ./chip-tool accesscontrol read acl 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool) , Verify AccessControlEntryStruct containing 2 elements, and MUST NOT contain an element with FabricIndex F1 + + [1657289713.626327][19279:19284] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 1884338152 + [1657289713.626381][19279:19284] CHIP:TOO: ACL: 2 entries + [1657289713.626417][19279:19284] CHIP:TOO: [1]: { + [1657289713.626431][19279:19284] CHIP:TOO: Privilege: 5 + [1657289713.626443][19279:19284] CHIP:TOO: AuthMode: 2 + [1657289713.626457][19279:19284] CHIP:TOO: Subjects: 2 entries + [1657289713.626472][19279:19284] CHIP:TOO: [1]: 223344 + [1657289713.626485][19279:19284] CHIP:TOO: [2]: 2222 + [1657289713.626497][19279:19284] CHIP:TOO: Targets: null + [1657289713.626508][19279:19284] CHIP:TOO: FabricIndex: 2 + [1657289713.626519][19279:19284] CHIP:TOO: } + [1657289713.626537][19279:19284] CHIP:TOO: [2]: { + [1657289713.626547][19279:19284] CHIP:TOO: Privilege: 3 + [1657289713.626556][19279:19284] CHIP:TOO: AuthMode: 3 + [1657289713.626568][19279:19284] CHIP:TOO: Subjects: 1 entries + [1657289713.626580][19279:19284] CHIP:TOO: [1]: 4444 + [1657289713.626591][19279:19284] CHIP:TOO: Targets: null + [1657289713.626601][19279:19284] CHIP:TOO: FabricIndex: 2 + [1657289713.626611][19279:19284] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 - label: "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY identity: "beta" command: "writeAttribute" attribute: "Extension" arguments: value: [{ Data: D_OK_SINGLE, FabricIndex: TH2FabricIndex }] + - label: + "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension + attribute" + verification: | + ./chip-tool accesscontrol read extension 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool) , Verify AccessControlExtensionStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1 + + [1657289746.737641][19293:19298] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0001 DataVersion: 1884338152 + [1657289746.737713][19293:19298] CHIP:TOO: Extension: 1 entries + [1657289746.737778][19293:19298] CHIP:TOO: [1]: { + [1657289746.737803][19293:19298] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 + [1657289746.737844][19293:19298] CHIP:TOO: Fab + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 14: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file" @@ -358,24 +588,8 @@ tests: - name: "expectedValue" value: "y" - - label: "TH2 writes Extension attibute value as empty list" - identity: "beta" - PICS: ACL.S.A0001 - command: "writeAttribute" - attribute: "Extension" - arguments: - value: [] - - - label: "TH2 writes ACL attribute value is an empty list" - identity: "beta" - PICS: ACL.S.A0000 - command: "writeAttribute" - attribute: "ACL" - arguments: - value: [] - - label: "Step 15:TH1 removes fabric F2 from DUT" - PICS: OPCREDS.S.C0a.Rsp + PICS: OPCREDS.S.C0a.Rsp && PICS_SDK_CI_ONLY cluster: "Operational Credentials" command: "RemoveFabric" timedInteractionTimeoutMs: 10000 @@ -384,6 +598,32 @@ tests: - name: "FabricIndex" value: TH2FabricIndex + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "Step 15:TH1 removes fabric F2 from DUT" + verification: | + ./chip-tool operationalcredentials remove-fabric 2 1 0 + + On TH1(Chiptool), Verify successfully removed fabric F2 with statusCode as 0(Success) + + [1661404505.702969][18706:18711] CHIP:DMG: + [1661404505.702979][18706:18711] CHIP:DMG: InteractionModelRevision = 1 + [1661404505.702987][18706:18711] CHIP:DMG: }, + [1661404505.703020][18706:18711] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 + [1661404505.703047][18706:18711] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008 + [1661404505.703081][18706:18711] CHIP:TOO: NOCResponse: { + [1661404505.703104][18706:18711] CHIP:TOO: statusCode: 0 + [1661404505.703126][18706:18711] CHIP:TOO: fabricIndex: 2 + [1661404505.703139][18706:18711] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && OPCREDS.S.C0a.Rsp + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute" PICS: ACL.S.A0000 diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml index 08d07b038b61ff..9d6a1ab052eb3e 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml @@ -88,6 +88,7 @@ tests: - name: "Salt" value: "SPAKE2P Key Salt" + #Issue https://github.com/project-chip/connectedhomeip/issues/26127 - label: "Step 3 & 4: TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2" @@ -149,6 +150,7 @@ tests: value: nodeId2 - label: "Read the TH2 commissioner node ID" + PICS: PICS_SDK_CI_ONLY identity: "beta" cluster: "CommissionerCommands" command: "GetCommissionerNodeId" @@ -161,12 +163,32 @@ tests: "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" identity: "beta" + PICS: PICS_SDK_CI_ONLY command: "readAttribute" cluster: "Operational Credentials" attribute: "CurrentFabricIndex" response: saveAs: TH2FabricIndex + - label: + "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex + attribute" + verification: | + ./chip-tool operationalcredentials read current-fabric-index 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool), verify CurrentFabricIndex attribute of operationalCredential cluster as 2 + [1657186956.724761][3910:3915] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 3161849734 + [1657186956.731658][3910:3915] CHIP:TOO: CurrentFabricIndex: 2 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 @@ -181,13 +203,74 @@ tests: "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY identity: "beta" command: "writeAttribute" attribute: "Extension" arguments: value: [{ Data: D_OK_SINGLE, FabricIndex: TH2FabricIndex }] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension + attribute, value is list of AccessControlExtensionStruct containing 1 + element" + verification: | + ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool),Verify Successfully to extension attribute list containg one element . + 1657894672.479983][2433:2438] CHIP:DMG: WriteClient moving to [ResponseRe] + [1657894672.480057][2433:2438] CHIP:DMG: WriteResponseMessage = + [1657894672.480092][2433:2438] CHIP:DMG: { + [1657894672.480124][2433:2438] CHIP:DMG: AttributeStatusIBs = + [1657894672.480175][2433:2438] CHIP:DMG: [ + [1657894672.480211][2433:2438] CHIP:DMG: AttributeStatusIB = + [1657894672.480251][2433:2438] CHIP:DMG: { + [1657894672.480288][2433:2438] CHIP:DMG: AttributePathIB = + [1657894672.480333][2433:2438] CHIP:DMG: { + [1657894672.480379][2433:2438] CHIP:DMG: Endpoint = 0x0, + [1657894672.480427][2433:2438] CHIP:DMG: Cluster = 0x1f, + [1657894672.480476][2433:2438] CHIP:DMG: Attribute = 0x0000_0001, + [1657894672.480521][2433:2438] CHIP:DMG: } + [1657894672.480570][2433:2438] CHIP:DMG: + [1657894672.480612][2433:2438] CHIP:DMG: StatusIB = + [1657894672.480657][2433:2438] CHIP:DMG: { + [1657894672.480700][2433:2438] CHIP:DMG: status = 0x00 (SUCCESS), + [1657894672.480745][2433:2438] CHIP:DMG: }, + [1657894672.480789][2433:2438] CHIP:DMG: + [1657894672.480826][2433:2438] CHIP:DMG: }, + [1657894672.480877][2433:2438] CHIP:DMG: + [1657894672.480911][2433:2438] CHIP:DMG: AttributeStatusIB = + [1657894672.480949][2433:2438] CHIP:DMG: { + [1657894672.480986][2433:2438] CHIP:DMG: AttributePathIB = + [1657894672.481028][2433:2438] CHIP:DMG: { + [1657894672.481072][2433:2438] CHIP:DMG: Endpoint = 0x0, + [1657894672.481120][2433:2438] CHIP:DMG: Cluster = 0x1f, + [1657894672.481168][2433:2438] CHIP:DMG: Attribute = 0x0000_0001, + [1657894672.481214][2433:2438] CHIP:DMG: ListIndex = Null, + [1657894672.481258][2433:2438] CHIP:DMG: } + [1657894672.481306][2433:2438] CHIP:DMG: + [1657894672.481347][2433:2438] CHIP:DMG: StatusIB = + [1657894672.481390][2433:2438] CHIP:DMG: { + [1657894672.481433][2433:2438] CHIP:DMG: status = 0x00 (SUCCESS), + [1657894672.481482][2433:2438] CHIP:DMG: }, + [1657894672.481526][2433:2438] CHIP:DMG: + [1657894672.481562][2433:2438] CHIP:DMG: }, + [1657894672.481605][2433:2438] CHIP:DMG: + [1657894672.481639][2433:2438] CHIP:DMG: ], + [1657894672.481686][2433:2438] CHIP:DMG: + [1657894672.481720][2433:2438] CHIP:DMG: InteractionModelRevision = 1 + [1657894672.481754][2433:2438] CHIP:DMG: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 8:TH1 reads AccessControl cluster Extension attribute" PICS: ACL.S.A0001 command: "readAttribute" @@ -196,13 +279,35 @@ tests: value: [{ Data: D_OK_EMPTY, FabricIndex: TH1FabricIndex }] - label: "Step 9:TH2 reads AccessControl cluster Extension attribute" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY identity: "beta" command: "readAttribute" attribute: "Extension" response: value: [{ Data: D_OK_SINGLE, FabricIndex: TH2FabricIndex }] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "Step 9:TH2 reads AccessControl cluster Extension attribute" + verification: | + ./chip-tool accesscontrol read extension 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool), Verify AccessControlExtensionStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1 + [1658327214.683199][2749:2754] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0001 DataVersion: 2953114587 + [1658327214.683283][2749:2754] CHIP:TOO: Extension: 1 entries + [1658327214.683348][2749:2754] CHIP:TOO: [1]: { + [1658327214.683388][2749:2754] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 + [1658327214.683423][2749:2754] CHIP:TOO: FabricIndex: 2 + [1658327214.683454][2749:2754] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Step 10:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event" @@ -223,7 +328,7 @@ tests: - label: "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event" - PICS: ACL.S.E01 + PICS: ACL.S.E01 && PICS_SDK_CI_ONLY identity: "beta" command: "readEvent" event: "AccessControlExtensionChanged" @@ -238,6 +343,36 @@ tests: FabricIndex: TH2FabricIndex, } + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster + AccessControlExtensionChanged event" + verification: | + ./chip-tool accesscontrol read-event access-control-extension-changed 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool) , Verify AccessControlExtensionChanged containing 1 element, and MUST NOT contain an element with FabricIndex F1 + [1663242753.957097][4264:4270] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 + [1663242753.957400][4264:4270] CHIP:TOO: Event number: 8 + [1663242753.957459][4264:4270] CHIP:TOO: Priority: Info + [1663242753.957507][4264:4270] CHIP:TOO: Timestamp: 20785045 + [1663242753.957708][4264:4270] CHIP:TOO: AccessControlExtensionChanged: { + [1663242753.957801][4264:4270] CHIP:TOO: AdminNodeID: 223344 + [1663242753.957867][4264:4270] CHIP:TOO: AdminPasscodeID: null + [1663242753.957931][4264:4270] CHIP:TOO: ChangeType: 1 + [1663242753.957991][4264:4270] CHIP:TOO: LatestValue: { + [1663242753.958055][4264:4270] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 + [1663242753.958118][4264:4270] CHIP:TOO: FabricIndex: 2 + [1663242753.958183][4264:4270] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.E01 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "TH1 writes Extension attribute value as empty list" PICS: ACL.S.A0001 command: "writeAttribute" @@ -247,8 +382,22 @@ tests: - label: "TH2 writes Extension attribute value as empty list" identity: "beta" - PICS: ACL.S.A0001 + PICS: ACL.S.A0001 && PICS_SDK_CI_ONLY command: "writeAttribute" attribute: "Extension" arguments: value: [] + + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "TH2 writes Extension attribute value as empty list" + verification: | + ./chip-tool accesscontrol write extension '[{}]' 2 0 --commissioner-name beta --commissioner-nodeid 223344 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0001 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml index daaa3e93f54ee3..7ecfc71b9e3c44 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml @@ -89,6 +89,7 @@ tests: - name: "ms" value: waitAfterCommissioning + #Issue https://github.com/project-chip/connectedhomeip/issues/26127 - label: "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2" @@ -143,6 +144,7 @@ tests: - label: "Read the TH2 commissioner node ID" identity: "beta" + PICS: PICS_SDK_CI_ONLY cluster: "CommissionerCommands" command: "GetCommissionerNodeId" response: @@ -153,12 +155,43 @@ tests: - label: "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" identity: "beta" + PICS: PICS_SDK_CI_ONLY command: "readAttribute" cluster: "Operational Credentials" attribute: "CurrentFabricIndex" response: saveAs: TH2FabricIndex + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" + verification: | + ./chip-tool operationalcredentials read current-fabric-index 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool),verify CurrentFabricIndex attribute of operationalCredential cluster as 2 + + 1658747098.843523][3024:3029] CHIP:DMG: }, + [1658747098.843552][3024:3029] CHIP:DMG: + [1658747098.843575][3024:3029] CHIP:DMG: ], + [1658747098.843604][3024:3029] CHIP:DMG: + [1658747098.843628][3024:3029] CHIP:DMG: SuppressResponse = true, + [1658747098.843653][3024:3029] CHIP:DMG: InteractionModelRevision = 1 + [1658747098.843676][3024:3029] CHIP:DMG: } + [1658747098.843805][3024:3029] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 2815046656 + [1658747098.846044][3024:3029] CHIP:TOO: CurrentFabricIndex: 2 + [1658747098.846131][3024:3029] CHIP:EM: Sending Standalone Ack for MessageCounter:263449390 on exchange 10738i + [1658747098.846202][3024:3029] CHIP:IN: Prepared secure message 0xffffb67cd9e8 to 0x0000000000000002 (2) of type 0x10 and protocolId (0, 0) on exchange 10738i with MessageCounter:175421270. + [1658747098.846282][3024:3029] CHIP:IN: Sending encrypted msg 0xffffb67cd9e8 with MessageCounter:175421270 to 0x0000000000000002 (2) at monotonic time: 00000000009FA528 msec + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute" PICS: ACL.S.A0000 command: "writeAttribute" @@ -176,7 +209,7 @@ tests: ] - label: "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY identity: "beta" command: "writeAttribute" attribute: "ACL" @@ -192,6 +225,67 @@ tests: }, ] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute" + verification: | + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [223344,2222], "targets":null}]' 2 0 --commissioner-nodeid 223344 --commissioner-name beta + + On TH2(Chiptool), verify AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 1 element + + [1658747124.117113][3031:3036] CHIP:DMG: { + [1658747124.117163][3031:3036] CHIP:DMG: AttributeStatusIBs = + [1658747124.117214][3031:3036] CHIP:DMG: [ + [1658747124.117269][3031:3036] CHIP:DMG: AttributeStatusIB = + [1658747124.117317][3031:3036] CHIP:DMG: { + [1658747124.117377][3031:3036] CHIP:DMG: AttributePathIB = + [1658747124.117434][3031:3036] CHIP:DMG: { + [1658747124.117488][3031:3036] CHIP:DMG: Endpoint = 0x0, + [1658747124.117548][3031:3036] CHIP:DMG: Cluster = 0x1f, + [1658747124.117602][3031:3036] CHIP:DMG: Attribute = 0x0000_0000, + [1658747124.117657][3031:3036] CHIP:DMG: } + [1658747124.117715][3031:3036] CHIP:DMG: + [1658747124.117764][3031:3036] CHIP:DMG: StatusIB = + [1658747124.117814][3031:3036] CHIP:DMG: { + [1658747124.117866][3031:3036] CHIP:DMG: status = 0x00 (SUCCESS), + [1658747124.117921][3031:3036] CHIP:DMG: }, + [1658747124.117972][3031:3036] CHIP:DMG: + [1658747124.118016][3031:3036] CHIP:DMG: }, + [1658747124.118077][3031:3036] CHIP:DMG: + [1658747124.118116][3031:3036] CHIP:DMG: AttributeStatusIB = + [1658747124.118161][3031:3036] CHIP:DMG: { + [1658747124.118205][3031:3036] CHIP:DMG: AttributePathIB = + [1658747124.118285][3031:3036] CHIP:DMG: { + [1658747124.118340][3031:3036] CHIP:DMG: Endpoint = 0x0, + [1658747124.118394][3031:3036] CHIP:DMG: Cluster = 0x1f, + [1658747124.118453][3031:3036] CHIP:DMG: Attribute = 0x0000_0000, + [1658747124.118505][3031:3036] CHIP:DMG: ListIndex = Null, + [1658747124.118555][3031:3036] CHIP:DMG: } + [1658747124.118609][3031:3036] CHIP:DMG: + [1658747124.118658][3031:3036] CHIP:DMG: StatusIB = + [1658747124.118707][3031:3036] CHIP:DMG: { + [1658747124.118757][3031:3036] CHIP:DMG: status = 0x00 (SUCCESS), + [1658747124.118810][3031:3036] CHIP:DMG: }, + [1658747124.118861][3031:3036] CHIP:DMG: + [1658747124.118904][3031:3036] CHIP:DMG: }, + [1658747124.118954][3031:3036] CHIP:DMG: + [1658747124.118992][3031:3036] CHIP:DMG: ], + [1658747124.119044][3031:3036] CHIP:DMG: + [1658747124.119082][3031:3036] CHIP:DMG: InteractionModelRevision = 1 + [1658747124.119119][3031:3036] CHIP:DMG: } + [1658747124.119272][3031:3036] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1658747124.119359][3031:3036] CHIP:EM: Sending Standalone Ack for MessageCounter:33509818 on exchange 38117i + [1658747124.119446][3031:3036] CHIP:IN: Prepared secure message 0xffff7a7cd9e8 to 0x0000000000000002 (2) of type 0x10 and protocolId (0, 0) on exchange 38117i with MessageCounter:75755402. + [1658747124.119505][3031:3036] CHIP:IN: Sending encrypted msg 0xffff7a7cd9e8 with MessageCounter:7575 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute" PICS: ACL.S.A0000 command: "readAttribute" @@ -209,7 +303,7 @@ tests: ] - label: "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY identity: "beta" command: "readAttribute" attribute: "ACL" @@ -225,6 +319,37 @@ tests: }, ] + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute" + verification: | + ./chip-tool accesscontrol read acl 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool), verify AccessControlEntryStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1 + + [1661407263.740571][2355:2360] CHIP:DMG: SuppressResponse = true, + [1661407263.740605][2355:2360] CHIP:DMG: InteractionModelRevision = 1 + [1661407263.740640][2355:2360] CHIP:DMG: } + [1661407263.741000][2355:2360] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 2445703657 + [1661407263.741100][2355:2360] CHIP:TOO: ACL: 1 entries + [1661407263.741165][2355:2360] CHIP:TOO: [1]: { + [1661407263.741222][2355:2360] CHIP:TOO: Privilege: 5 + [1661407263.741260][2355:2360] CHIP:TOO: AuthMode: 2 + [1661407263.741409][2355:2360] CHIP:TOO: Subjects: 2 entries + [1661407263.741453][2355:2360] CHIP:TOO: [1]: 223344 + [1661407263.741487][2355:2360] CHIP:TOO: [2]: 2222 + [1661407263.741518][2355:2360] CHIP:TOO: Targets: null + [1661407263.741553][2355:2360] CHIP:TOO: FabricIndex: 2 + [1661407263.741587][2355:2360] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event" @@ -284,7 +409,7 @@ tests: - label: "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event" - PICS: ACL.S.E00 + PICS: ACL.S.E00 && PICS_SDK_CI_ONLY identity: "beta" command: "readEvent" event: "AccessControlEntryChanged" @@ -338,17 +463,125 @@ tests: FabricIndex: TH2FabricIndex, } - - label: "TH1 writes ACL attribute value is an empty list" + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: + "TH2 reads DUT Endpoint 0 AccessControl cluster + AccessControlEntryChanged event" + verification: | + ./chip-tool accesscontrol read-event access-control-entry-changed 2 0 --commissioner-name beta --commissioner-nodeid 223344 + + On TH2(Chiptool), verify AccessControl cluster AccessControlEntryChanged containing 3 elements, and MUST NOT contain any element with FabricIndex F1 + + [1661354915.731697][4136:4141] CHIP:DMG: + [1661354915.731730][4136:4141] CHIP:DMG: SuppressResponse = true, + [1661354915.731759][4136:4141] CHIP:DMG: InteractionModelRevision = 1 + [1661354915.731790][4136:4141] CHIP:DMG: } + [1661354915.732074][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.732104][4136:4141] CHIP:TOO: Event number: 4 + [1661354915.732133][4136:4141] CHIP:TOO: Priority: Info + [1661354915.732159][4136:4141] CHIP:TOO: Timestamp: 22322302 + [1661354915.732291][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.732328][4136:4141] CHIP:TOO: AdminNodeID: null + [1661354915.732374][4136:4141] CHIP:TOO: AdminPasscodeID: 0 + [1661354915.732423][4136:4141] CHIP:TOO: ChangeType: 1 + [1661354915.732456][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.732486][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.732516][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.732554][4136:4141] CHIP:TOO: Subjects: 1 entries + [1661354915.732593][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.732625][4136:4141] CHIP:TOO: Targets: null + [1661354915.732658][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.732688][4136:4141] CHIP:TOO: } + [1661354915.732720][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.732749][4136:4141] CHIP:TOO: } + [1661354915.732896][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.732929][4136:4141] CHIP:TOO: Event number: 9 + [1661354915.732955][4136:4141] CHIP:TOO: Priority: Info + [1661354915.732980][4136:4141] CHIP:TOO: Timestamp: 22566955 + [1661354915.733031][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.733065][4136:4141] CHIP:TOO: AdminNodeID: 223344 + [1661354915.733097][4136:4141] CHIP:TOO: AdminPasscodeID: null + [1661354915.733128][4136:4141] CHIP:TOO: ChangeType: 2 + [1661354915.733158][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.733187][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.733219][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.733252][4136:4141] CHIP:TOO: Subjects: 1 entries + [1661354915.733287][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.733319][4136:4141] CHIP:TOO: Targets: null + [1661354915.733349][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.733379][4136:4141] CHIP:TOO: } + [1661354915.733408][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.733437][4136:4141] CHIP:TOO: } + [1661354915.733578][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.733610][4136:4141] CHIP:TOO: Event number: 10 + [1661354915.733637][4136:4141] CHIP:TOO: Priority: Info + [1661354915.733662][4136:4141] CHIP:TOO: Timestamp: 22566957 + [1661354915.733709][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.733743][4136:4141] CHIP:TOO: AdminNodeID: 223344 + [1661354915.733772][4136:4141] CHIP:TOO: AdminPasscodeID: null + [1661354915.733803][4136:4141] CHIP:TOO: ChangeType: 1 + [1661354915.733833][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.733863][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.733891][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.733923][4136:4141] CHIP:TOO: Subjects: 2 entries + [1661354915.733957][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.733991][4136:4141] CHIP:TOO: [2]: 2222 + [1661354915.734018][4136:4141] CHIP:TOO: Targets: null + [1661354915.734048][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.734077][4136:4141] CHIP:TOO: } + [1661354915.734107][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.734136][4136:4141] CHIP:TOO: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.E00 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: "TH1 writes ACL attribute" PICS: ACL.S.A0000 command: "writeAttribute" attribute: "ACL" arguments: - value: [] + value: [ + { + FabricIndex: 1, + Privilege: 5, # administer + AuthMode: 2, # case + Subjects: [TH1CommissionerNodeId], + Targets: null, + }, + ] - - label: "TH2 writes ACL attribute value is an empty list" + - label: "TH2 writes ACL attribute default value" identity: "beta" - PICS: ACL.S.A0000 + PICS: ACL.S.A0000 && PICS_SDK_CI_ONLY command: "writeAttribute" attribute: "ACL" arguments: - value: [] + value: [ + { + FabricIndex: 1, + Privilege: 5, # administer + AuthMode: 2, # case + Subjects: [TH2CommissionerNodeId], + Targets: null, + }, + ] + + #Issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/768 + - label: "TH2 writes ACL attribute default value" + verification: | + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [223344], "targets":null}]' 2 0 --commissioner-nodeid 223344 --commissioner-name beta + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACL.S.A0000 + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml index 593f5cc568f87a..57e842c6b34d42 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: APPLAUNCHER.S.AP + PICS: APPLAUNCHER.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -51,7 +51,7 @@ tests: type: bitmap32 - label: "Read the global attribute: FeatureMap" - PICS: " !APPLAUNCHER.S.AP " + PICS: " !APPLAUNCHER.S.F00 " command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml index bd4d8d3ae0c60f..9bca97c0b23887 100644 --- a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml @@ -42,13 +42,22 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" + PICS: AUDIOOUTPUT.S.F00 command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 0 - maxValue: 3 + hasMasksSet: [0x2] + + - label: "Read the global attribute: FeatureMap" + PICS: " !AUDIOOUTPUT.S.F00 " + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksClear: [0x2] - label: "Read the global attribute: AttributeList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml b/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml index 1d2363aa4f3181..ca06af7fd0d9e6 100644 --- a/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 116.1.1. [TC-BIND-1.1] Global Attributes [DUT-Controllee] +name: 116.1.1. [TC-BIND-1.1] Global Attributes with DUT as Server PICS: - BIND.S diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml index f126946bbd272b..45ef62bf90a8d5 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_10.yaml @@ -36,9 +36,6 @@ config: waitAfterCommissioning: type: int16u defaultValue: 5000 - discriminator: - type: int16u - defaultValue: 3840 correctPayload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml index 8002a8c64ff71d..c785450509a158 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml @@ -32,9 +32,6 @@ config: waitAfterCommissioning: type: int16u defaultValue: 5000 - discriminator: - type: int16u - defaultValue: 3840 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml index 19a6c046773f06..4afa57a839ce10 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml @@ -25,9 +25,6 @@ config: nodeId: 0x12344321 timeout: 950 endpoint: 0 - discriminator: - type: int16u - defaultValue: 3840 tests: - label: "Precondition: Reset Devices to factory defaults" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml index 2184c50bf22d78..15fba1b78d2f65 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml @@ -25,9 +25,6 @@ config: nodeId: 0x12344321 timeout: 200 endpoint: 0 - discriminator: - type: int16u - defaultValue: 3840 tests: - label: "Precondition: Reset Devices to factory defaults" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml index cbcb12c5fec8c1..967aa047a0f35d 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_4.yaml @@ -25,9 +25,6 @@ config: type: node_id defaultValue: 0xCAFE endpoint: 0 - discriminator: - type: int16u - defaultValue: 3840 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml index 6f39fc88d0aa72..58156ddd37f458 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml @@ -36,9 +36,6 @@ config: waitAfterCommissioning: type: int16u defaultValue: 5000 - discriminator: - type: int16u - defaultValue: 3840 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" # This value needs to be generated automatically diff --git a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml index 889ca92c3e4496..3dcb35a1aa71e2 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml @@ -186,6 +186,279 @@ tests: type: list contains: [7] + - label: "Read the optional attribute(NumberOfPrimaries) in AttributeList" + PICS: CC.S.A0010 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [16] + + - label: "Read the optional attribute(Primary1X) in AttributeList" + PICS: CC.S.A0011 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [17] + + - label: "Read the optional attribute(Primary1Y) in AttributeList" + PICS: CC.S.A0012 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [18] + + - label: "Read the optional attribute(Primary1Intensity) in AttributeList" + PICS: CC.S.A0013 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [19] + + - label: "Read the optional attribute(Primary2X) in AttributeList" + PICS: CC.S.A0015 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [21] + + - label: "Read the optional attribute(Primary2Y) in AttributeList" + PICS: CC.S.A0016 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [22] + + - label: "Read the optional attribute(Primary2Intensity) in AttributeList" + PICS: CC.S.A0017 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [23] + + - label: "Read the optional attribute(Primary3X) in AttributeList" + PICS: CC.S.A0019 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [25] + + - label: "Read the optional attribute(Primary3Y) in AttributeList" + PICS: CC.S.A001a + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [26] + + - label: "Read the optional attribute(Primary3Intensity) in AttributeList" + PICS: CC.S.A001b + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [27] + + - label: "Read the optional attribute(Primary4X) in AttributeList" + PICS: CC.S.A0020 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [32] + + - label: "Read the optional attribute(Primary4Y) in AttributeList" + PICS: CC.S.A0021 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [33] + + - label: "Read the optional attribute(Primary4Intensity) in AttributeList" + PICS: CC.S.A0022 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [34] + + - label: "Read the optional attribute(Primary5X) in AttributeList" + PICS: CC.S.A0024 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [36] + + - label: "Read the optional attribute(Primary5Y) in AttributeList" + PICS: CC.S.A0025 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [37] + + - label: "Read the optional attribute(Primary5Intensity) in AttributeList" + PICS: CC.S.A0026 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [38] + + - label: "Read the optional attribute(Primary6X) in AttributeList" + PICS: CC.S.A0028 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [40] + + - label: "Read the optional attribute(Primary6Y) in AttributeList" + PICS: CC.S.A0029 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [41] + + - label: "Read the optional attribute(Primary6Intensity) in AttributeList" + PICS: CC.S.A002a + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [42] + + - label: "Read the optional attribute(WhitePointX) in AttributeList" + PICS: CC.S.A0030 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [48] + + - label: "Read the optional attribute(WhitePointY) in AttributeList" + PICS: CC.S.A0031 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [49] + + - label: "Read the optional attribute(ColorPointRX) in AttributeList" + PICS: CC.S.A0032 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [50] + + - label: "Read the optional attribute(ColorPointRY) in AttributeList" + PICS: CC.S.A0033 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [51] + + - label: + "Read the optional attribute(ColorPointRIntensity) in AttributeList" + PICS: CC.S.A0034 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [52] + + - label: "Read the optional attribute(ColorPointGX) in AttributeList" + PICS: CC.S.A0036 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [54] + + - label: "Read the optional attribute(ColorPointGY) in AttributeList" + PICS: CC.S.A0037 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [55] + + - label: + "Read the optional attribute(ColorPointGIntensity) in AttributeList" + PICS: CC.S.A0038 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [56] + + - label: "Read the optional attribute(ColorPointBX) in AttributeList" + PICS: CC.S.A003a + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [58] + + - label: "Read the optional attribute(ColorPointBY) in AttributeList" + PICS: CC.S.A003b + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [59] + + - label: + "Read the optional attribute(ColorPointBIntensity) in AttributeList" + PICS: CC.S.A003c + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [60] + - label: "Read the optional attribute(EnhancedCurrentHue) in AttributeList" PICS: CC.S.A4000 command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml index e27f0167247638..996f47cf309a10 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml @@ -186,34 +186,34 @@ tests: verification: | ./chip-tool colorcontrol read current-y 1 1 - Verify response contains an uint16 in TH(all-clusters-app) Logs: + Verify response contains an uint16 value in TH(all-clusters-app) Logs: ReportDataMessage = [1666862605.149051][25129:25129] CHIP:DMG: { - [1666862605.149054][25129:25129] CHIP:DMG: AttributeReportIBs = - [1666862605.149059][25129:25129] CHIP:DMG: [ - [1666862605.149061][25129:25129] CHIP:DMG: AttributeReportIB = - [1666862605.149066][25129:25129] CHIP:DMG: { - [1666862605.149069][25129:25129] CHIP:DMG: AttributeDataIB = - [1666862605.149073][25129:25129] CHIP:DMG: { - [1666862605.149078][25129:25129] CHIP:DMG: DataVersion = 0xeff75486, - [1666862605.149083][25129:25129] CHIP:DMG: AttributePathIB = - [1666862605.149089][25129:25129] CHIP:DMG: { - [1666862605.149093][25129:25129] CHIP:DMG: Endpoint = 0x1, - [1666862605.149096][25129:25129] CHIP:DMG: Cluster = 0x300, - [1666862605.149100][25129:25129] CHIP:DMG: Attribute = 0x0000_0004, - [1666862605.149105][25129:25129] CHIP:DMG: } + [1666862605.149054][25129:25129] CHIP:DMG: AttributeReportIBs = + [1666862605.149059][25129:25129] CHIP:DMG: [ + [1666862605.149061][25129:25129] CHIP:DMG: AttributeReportIB = + [1666862605.149066][25129:25129] CHIP:DMG: { + [1666862605.149069][25129:25129] CHIP:DMG: AttributeDataIB = + [1666862605.149073][25129:25129] CHIP:DMG: { + [1666862605.149078][25129:25129] CHIP:DMG: DataVersion = 0xeff75486, + [1666862605.149083][25129:25129] CHIP:DMG: AttributePathIB = + [1666862605.149089][25129:25129] CHIP:DMG: { + [1666862605.149093][25129:25129] CHIP:DMG: Endpoint = 0x1, + [1666862605.149096][25129:25129] CHIP:DMG: Cluster = 0x300, + [1666862605.149100][25129:25129] CHIP:DMG: Attribute = 0x0000_0004, + [1666862605.149105][25129:25129] CHIP:DMG: } [1666862605.149110][25129:25129] CHIP:DMG: - [1666862605.149114][25129:25129] CHIP:DMG: Data = 24701, - [1666862605.149117][25129:25129] CHIP:DMG: }, + [1666862605.149114][25129:25129] CHIP:DMG: Data = 24701, + [1666862605.149117][25129:25129] CHIP:DMG: }, [1666862605.149122][25129:25129] CHIP:DMG: - [1666862605.149126][25129:25129] CHIP:DMG: }, + [1666862605.149126][25129:25129] CHIP:DMG: }, [1666862605.149133][25129:25129] CHIP:DMG: - [1666862605.149136][25129:25129] CHIP:DMG: ], + [1666862605.149136][25129:25129] CHIP:DMG: ], [1666862605.149143][25129:25129] CHIP:DMG: - [1666862605.149147][25129:25129] CHIP:DMG: SuppressResponse = true, - [1666862605.149152][25129:25129] CHIP:DMG: InteractionModelRevision = 1 + [1666862605.149147][25129:25129] CHIP:DMG: SuppressResponse = true, + [1666862605.149152][25129:25129] CHIP:DMG: InteractionModelRevision = 1 [1666862605.149155][25129:25129] CHIP:DMG: } disabled: true @@ -943,29 +943,29 @@ tests: ReportDataMessage = [1666863261.341318][25380:25380] CHIP:DMG: { - [1666863261.341321][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863261.341326][25380:25380] CHIP:DMG: [ - [1666863261.341329][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863261.341335][25380:25380] CHIP:DMG: { - [1666863261.341337][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863261.341341][25380:25380] CHIP:DMG: { - [1666863261.341345][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863261.341348][25380:25380] CHIP:DMG: AttributePathIB = - [1666863261.341351][25380:25380] CHIP:DMG: { - [1666863261.341354][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863261.341358][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863261.341362][25380:25380] CHIP:DMG: Attribute = 0x0000_0012, - [1666863261.341365][25380:25380] CHIP:DMG: } + [1666863261.341321][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863261.341326][25380:25380] CHIP:DMG: [ + [1666863261.341329][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863261.341335][25380:25380] CHIP:DMG: { + [1666863261.341337][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863261.341341][25380:25380] CHIP:DMG: { + [1666863261.341345][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863261.341348][25380:25380] CHIP:DMG: AttributePathIB = + [1666863261.341351][25380:25380] CHIP:DMG: { + [1666863261.341354][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863261.341358][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863261.341362][25380:25380] CHIP:DMG: Attribute = 0x0000_0012, + [1666863261.341365][25380:25380] CHIP:DMG: } [1666863261.341368][25380:25380] CHIP:DMG: - [1666863261.341373][25380:25380] CHIP:DMG: Data = 0, - [1666863261.341376][25380:25380] CHIP:DMG: }, + [1666863261.341373][25380:25380] CHIP:DMG: Data = 0, + [1666863261.341376][25380:25380] CHIP:DMG: }, [1666863261.341379][25380:25380] CHIP:DMG: - [1666863261.341382][25380:25380] CHIP:DMG: }, + [1666863261.341382][25380:25380] CHIP:DMG: }, [1666863261.341387][25380:25380] CHIP:DMG: - [1666863261.341393][25380:25380] CHIP:DMG: ], + [1666863261.341393][25380:25380] CHIP:DMG: ], [1666863261.341397][25380:25380] CHIP:DMG: - [1666863261.341401][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863261.341403][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863261.341401][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863261.341403][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863261.341405][25380:25380] CHIP:DMG: } disabled: true @@ -1054,29 +1054,29 @@ tests: ReportDataMessage = [1666863355.607138][25380:25380] CHIP:DMG: { - [1666863355.607140][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863355.607146][25380:25380] CHIP:DMG: [ - [1666863355.607148][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863355.607153][25380:25380] CHIP:DMG: { - [1666863355.607156][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863355.607159][25380:25380] CHIP:DMG: { - [1666863355.607163][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863355.607165][25380:25380] CHIP:DMG: AttributePathIB = - [1666863355.607169][25380:25380] CHIP:DMG: { - [1666863355.607173][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863355.607178][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863355.607181][25380:25380] CHIP:DMG: Attribute = 0x0000_0016, - [1666863355.607188][25380:25380] CHIP:DMG: } + [1666863355.607140][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863355.607146][25380:25380] CHIP:DMG: [ + [1666863355.607148][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863355.607153][25380:25380] CHIP:DMG: { + [1666863355.607156][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863355.607159][25380:25380] CHIP:DMG: { + [1666863355.607163][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863355.607165][25380:25380] CHIP:DMG: AttributePathIB = + [1666863355.607169][25380:25380] CHIP:DMG: { + [1666863355.607173][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863355.607178][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863355.607181][25380:25380] CHIP:DMG: Attribute = 0x0000_0016, + [1666863355.607188][25380:25380] CHIP:DMG: } [1666863355.607192][25380:25380] CHIP:DMG: - [1666863355.607196][25380:25380] CHIP:DMG: Data = 0, - [1666863355.607199][25380:25380] CHIP:DMG: }, + [1666863355.607196][25380:25380] CHIP:DMG: Data = 0, + [1666863355.607199][25380:25380] CHIP:DMG: }, [1666863355.607203][25380:25380] CHIP:DMG: - [1666863355.607206][25380:25380] CHIP:DMG: }, + [1666863355.607206][25380:25380] CHIP:DMG: }, [1666863355.607210][25380:25380] CHIP:DMG: - [1666863355.607213][25380:25380] CHIP:DMG: ], + [1666863355.607213][25380:25380] CHIP:DMG: ], [1666863355.607218][25380:25380] CHIP:DMG: - [1666863355.607221][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863355.607224][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863355.607221][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863355.607224][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863355.607226][25380:25380] CHIP:DMG: } [1666863355.607229][25380:25380] CHIP:DMG: disabled: true @@ -1126,29 +1126,29 @@ tests: ReportDataMessage = [1666863405.983475][25380:25380] CHIP:DMG: { - [1666863405.983477][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863405.983483][25380:25380] CHIP:DMG: [ - [1666863405.983485][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863405.983491][25380:25380] CHIP:DMG: { - [1666863405.983494][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863405.983498][25380:25380] CHIP:DMG: { - [1666863405.983502][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863405.983505][25380:25380] CHIP:DMG: AttributePathIB = - [1666863405.983510][25380:25380] CHIP:DMG: { - [1666863405.983513][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863405.983517][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863405.983523][25380:25380] CHIP:DMG: Attribute = 0x0000_0019, - [1666863405.983526][25380:25380] CHIP:DMG: } + [1666863405.983477][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863405.983483][25380:25380] CHIP:DMG: [ + [1666863405.983485][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863405.983491][25380:25380] CHIP:DMG: { + [1666863405.983494][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863405.983498][25380:25380] CHIP:DMG: { + [1666863405.983502][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863405.983505][25380:25380] CHIP:DMG: AttributePathIB = + [1666863405.983510][25380:25380] CHIP:DMG: { + [1666863405.983513][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863405.983517][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863405.983523][25380:25380] CHIP:DMG: Attribute = 0x0000_0019, + [1666863405.983526][25380:25380] CHIP:DMG: } [1666863405.983534][25380:25380] CHIP:DMG: - [1666863405.983540][25380:25380] CHIP:DMG: Data = 0, - [1666863405.983544][25380:25380] CHIP:DMG: }, + [1666863405.983540][25380:25380] CHIP:DMG: Data = 0, + [1666863405.983544][25380:25380] CHIP:DMG: }, [1666863405.983548][25380:25380] CHIP:DMG: - [1666863405.983551][25380:25380] CHIP:DMG: }, + [1666863405.983551][25380:25380] CHIP:DMG: }, [1666863405.983555][25380:25380] CHIP:DMG: - [1666863405.983558][25380:25380] CHIP:DMG: ], + [1666863405.983558][25380:25380] CHIP:DMG: ], [1666863405.983565][25380:25380] CHIP:DMG: - [1666863405.983568][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863405.983572][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863405.983568][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863405.983572][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863405.983575][25380:25380] CHIP:DMG: } [1666863405.983577][25380:25380] CHIP:DMG: disabled: true @@ -1163,29 +1163,29 @@ tests: ReportDataMessage = [1666863435.469111][25380:25380] CHIP:DMG: { - [1666863435.469114][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863435.469119][25380:25380] CHIP:DMG: [ - [1666863435.469122][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863435.469126][25380:25380] CHIP:DMG: { - [1666863435.469130][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863435.469133][25380:25380] CHIP:DMG: { - [1666863435.469137][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863435.469140][25380:25380] CHIP:DMG: AttributePathIB = - [1666863435.469143][25380:25380] CHIP:DMG: { - [1666863435.469147][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863435.469151][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863435.469154][25380:25380] CHIP:DMG: Attribute = 0x0000_001A, - [1666863435.469158][25380:25380] CHIP:DMG: } + [1666863435.469114][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863435.469119][25380:25380] CHIP:DMG: [ + [1666863435.469122][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863435.469126][25380:25380] CHIP:DMG: { + [1666863435.469130][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863435.469133][25380:25380] CHIP:DMG: { + [1666863435.469137][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863435.469140][25380:25380] CHIP:DMG: AttributePathIB = + [1666863435.469143][25380:25380] CHIP:DMG: { + [1666863435.469147][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863435.469151][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863435.469154][25380:25380] CHIP:DMG: Attribute = 0x0000_001A, + [1666863435.469158][25380:25380] CHIP:DMG: } [1666863435.469162][25380:25380] CHIP:DMG: - [1666863435.469166][25380:25380] CHIP:DMG: Data = 0, - [1666863435.469168][25380:25380] CHIP:DMG: }, + [1666863435.469166][25380:25380] CHIP:DMG: Data = 0, + [1666863435.469168][25380:25380] CHIP:DMG: }, [1666863435.469173][25380:25380] CHIP:DMG: - [1666863435.469175][25380:25380] CHIP:DMG: }, + [1666863435.469175][25380:25380] CHIP:DMG: }, [1666863435.469180][25380:25380] CHIP:DMG: - [1666863435.469182][25380:25380] CHIP:DMG: ], + [1666863435.469182][25380:25380] CHIP:DMG: ], [1666863435.469188][25380:25380] CHIP:DMG: - [1666863435.469191][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863435.469193][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863435.469191][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863435.469193][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863435.469196][25380:25380] CHIP:DMG: } disabled: true @@ -1198,29 +1198,29 @@ tests: ReportDataMessage = [1666863464.087690][25380:25380] CHIP:DMG: { - [1666863464.087693][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863464.087698][25380:25380] CHIP:DMG: [ - [1666863464.087700][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863464.087706][25380:25380] CHIP:DMG: { - [1666863464.087709][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863464.087712][25380:25380] CHIP:DMG: { - [1666863464.087715][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863464.087719][25380:25380] CHIP:DMG: AttributePathIB = - [1666863464.087723][25380:25380] CHIP:DMG: { - [1666863464.087727][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863464.087731][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863464.087735][25380:25380] CHIP:DMG: Attribute = 0x0000_001B, - [1666863464.087738][25380:25380] CHIP:DMG: } + [1666863464.087693][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863464.087698][25380:25380] CHIP:DMG: [ + [1666863464.087700][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863464.087706][25380:25380] CHIP:DMG: { + [1666863464.087709][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863464.087712][25380:25380] CHIP:DMG: { + [1666863464.087715][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863464.087719][25380:25380] CHIP:DMG: AttributePathIB = + [1666863464.087723][25380:25380] CHIP:DMG: { + [1666863464.087727][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863464.087731][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863464.087735][25380:25380] CHIP:DMG: Attribute = 0x0000_001B, + [1666863464.087738][25380:25380] CHIP:DMG: } [1666863464.087743][25380:25380] CHIP:DMG: - [1666863464.087746][25380:25380] CHIP:DMG: Data = 0, - [1666863464.087749][25380:25380] CHIP:DMG: }, + [1666863464.087746][25380:25380] CHIP:DMG: Data = 0, + [1666863464.087749][25380:25380] CHIP:DMG: }, [1666863464.087754][25380:25380] CHIP:DMG: - [1666863464.087757][25380:25380] CHIP:DMG: }, + [1666863464.087757][25380:25380] CHIP:DMG: }, [1666863464.087762][25380:25380] CHIP:DMG: - [1666863464.087764][25380:25380] CHIP:DMG: ], + [1666863464.087764][25380:25380] CHIP:DMG: ], [1666863464.087769][25380:25380] CHIP:DMG: - [1666863464.087772][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863464.087775][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863464.087772][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863464.087775][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863464.087778][25380:25380] CHIP:DMG: } [1666863464.087781][25380:25380] CHIP:DMG: @@ -1238,29 +1238,29 @@ tests: ReportDataMessage = [1666863490.271640][25380:25380] CHIP:DMG: { - [1666863490.271643][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863490.271648][25380:25380] CHIP:DMG: [ - [1666863490.271651][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863490.271656][25380:25380] CHIP:DMG: { - [1666863490.271659][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863490.271663][25380:25380] CHIP:DMG: { - [1666863490.271667][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863490.271670][25380:25380] CHIP:DMG: AttributePathIB = - [1666863490.271673][25380:25380] CHIP:DMG: { - [1666863490.271677][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863490.271680][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863490.271684][25380:25380] CHIP:DMG: Attribute = 0x0000_0020, - [1666863490.271690][25380:25380] CHIP:DMG: } + [1666863490.271643][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863490.271648][25380:25380] CHIP:DMG: [ + [1666863490.271651][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863490.271656][25380:25380] CHIP:DMG: { + [1666863490.271659][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863490.271663][25380:25380] CHIP:DMG: { + [1666863490.271667][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863490.271670][25380:25380] CHIP:DMG: AttributePathIB = + [1666863490.271673][25380:25380] CHIP:DMG: { + [1666863490.271677][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863490.271680][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863490.271684][25380:25380] CHIP:DMG: Attribute = 0x0000_0020, + [1666863490.271690][25380:25380] CHIP:DMG: } [1666863490.271694][25380:25380] CHIP:DMG: - [1666863490.271698][25380:25380] CHIP:DMG: Data = 0, - [1666863490.271702][25380:25380] CHIP:DMG: }, + [1666863490.271698][25380:25380] CHIP:DMG: Data = 0, + [1666863490.271702][25380:25380] CHIP:DMG: }, [1666863490.271707][25380:25380] CHIP:DMG: - [1666863490.271710][25380:25380] CHIP:DMG: }, + [1666863490.271710][25380:25380] CHIP:DMG: }, [1666863490.271715][25380:25380] CHIP:DMG: - [1666863490.271718][25380:25380] CHIP:DMG: ], + [1666863490.271718][25380:25380] CHIP:DMG: ], [1666863490.271723][25380:25380] CHIP:DMG: - [1666863490.271726][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863490.271729][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863490.271726][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863490.271729][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863490.271732][25380:25380] CHIP:DMG: } disabled: true @@ -1275,29 +1275,29 @@ tests: ReportDataMessage = [1666863522.473914][25380:25380] CHIP:DMG: { - [1666863522.473917][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863522.473923][25380:25380] CHIP:DMG: [ - [1666863522.473925][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863522.473930][25380:25380] CHIP:DMG: { - [1666863522.473933][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863522.473938][25380:25380] CHIP:DMG: { - [1666863522.473941][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863522.473944][25380:25380] CHIP:DMG: AttributePathIB = - [1666863522.473949][25380:25380] CHIP:DMG: { - [1666863522.473952][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863522.473957][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863522.473961][25380:25380] CHIP:DMG: Attribute = 0x0000_0021, - [1666863522.473964][25380:25380] CHIP:DMG: } + [1666863522.473917][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863522.473923][25380:25380] CHIP:DMG: [ + [1666863522.473925][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863522.473930][25380:25380] CHIP:DMG: { + [1666863522.473933][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863522.473938][25380:25380] CHIP:DMG: { + [1666863522.473941][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863522.473944][25380:25380] CHIP:DMG: AttributePathIB = + [1666863522.473949][25380:25380] CHIP:DMG: { + [1666863522.473952][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863522.473957][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863522.473961][25380:25380] CHIP:DMG: Attribute = 0x0000_0021, + [1666863522.473964][25380:25380] CHIP:DMG: } [1666863522.473968][25380:25380] CHIP:DMG: - [1666863522.473972][25380:25380] CHIP:DMG: Data = 0, - [1666863522.473975][25380:25380] CHIP:DMG: }, + [1666863522.473972][25380:25380] CHIP:DMG: Data = 0, + [1666863522.473975][25380:25380] CHIP:DMG: }, [1666863522.473979][25380:25380] CHIP:DMG: - [1666863522.473982][25380:25380] CHIP:DMG: }, + [1666863522.473982][25380:25380] CHIP:DMG: }, [1666863522.473987][25380:25380] CHIP:DMG: - [1666863522.473989][25380:25380] CHIP:DMG: ], + [1666863522.473989][25380:25380] CHIP:DMG: ], [1666863522.473994][25380:25380] CHIP:DMG: - [1666863522.473997][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863522.473999][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863522.473997][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863522.473999][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863522.474001][25380:25380] CHIP:DMG: } disabled: true @@ -1311,29 +1311,29 @@ tests: ReportDataMessage = [1666863555.278546][25380:25380] CHIP:DMG: { - [1666863555.278548][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863555.278552][25380:25380] CHIP:DMG: [ - [1666863555.278555][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863555.278559][25380:25380] CHIP:DMG: { - [1666863555.278563][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863555.278565][25380:25380] CHIP:DMG: { - [1666863555.278568][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863555.278571][25380:25380] CHIP:DMG: AttributePathIB = - [1666863555.278575][25380:25380] CHIP:DMG: { - [1666863555.278579][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863555.278583][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863555.278586][25380:25380] CHIP:DMG: Attribute = 0x0000_0022, - [1666863555.278592][25380:25380] CHIP:DMG: } + [1666863555.278548][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863555.278552][25380:25380] CHIP:DMG: [ + [1666863555.278555][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863555.278559][25380:25380] CHIP:DMG: { + [1666863555.278563][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863555.278565][25380:25380] CHIP:DMG: { + [1666863555.278568][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863555.278571][25380:25380] CHIP:DMG: AttributePathIB = + [1666863555.278575][25380:25380] CHIP:DMG: { + [1666863555.278579][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863555.278583][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863555.278586][25380:25380] CHIP:DMG: Attribute = 0x0000_0022, + [1666863555.278592][25380:25380] CHIP:DMG: } [1666863555.278596][25380:25380] CHIP:DMG: - [1666863555.278600][25380:25380] CHIP:DMG: Data = 0, - [1666863555.278603][25380:25380] CHIP:DMG: }, + [1666863555.278600][25380:25380] CHIP:DMG: Data = 0, + [1666863555.278603][25380:25380] CHIP:DMG: }, [1666863555.278607][25380:25380] CHIP:DMG: - [1666863555.278610][25380:25380] CHIP:DMG: }, + [1666863555.278610][25380:25380] CHIP:DMG: }, [1666863555.278615][25380:25380] CHIP:DMG: - [1666863555.278618][25380:25380] CHIP:DMG: ], + [1666863555.278618][25380:25380] CHIP:DMG: ], [1666863555.278622][25380:25380] CHIP:DMG: - [1666863555.278625][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863555.278629][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863555.278625][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863555.278629][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863555.278632][25380:25380] CHIP:DMG: } disabled: true @@ -1346,29 +1346,29 @@ tests: ReportDataMessage = [1666863587.103204][25380:25380] CHIP:DMG: { - [1666863587.103207][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863587.103211][25380:25380] CHIP:DMG: [ - [1666863587.103214][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863587.103219][25380:25380] CHIP:DMG: { - [1666863587.103222][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863587.103225][25380:25380] CHIP:DMG: { - [1666863587.103228][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863587.103231][25380:25380] CHIP:DMG: AttributePathIB = - [1666863587.103235][25380:25380] CHIP:DMG: { - [1666863587.103239][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863587.103245][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863587.103249][25380:25380] CHIP:DMG: Attribute = 0x0000_0024, - [1666863587.103254][25380:25380] CHIP:DMG: } + [1666863587.103207][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863587.103211][25380:25380] CHIP:DMG: [ + [1666863587.103214][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863587.103219][25380:25380] CHIP:DMG: { + [1666863587.103222][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863587.103225][25380:25380] CHIP:DMG: { + [1666863587.103228][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863587.103231][25380:25380] CHIP:DMG: AttributePathIB = + [1666863587.103235][25380:25380] CHIP:DMG: { + [1666863587.103239][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863587.103245][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863587.103249][25380:25380] CHIP:DMG: Attribute = 0x0000_0024, + [1666863587.103254][25380:25380] CHIP:DMG: } [1666863587.103258][25380:25380] CHIP:DMG: - [1666863587.103262][25380:25380] CHIP:DMG: Data = 0, - [1666863587.103266][25380:25380] CHIP:DMG: }, + [1666863587.103262][25380:25380] CHIP:DMG: Data = 0, + [1666863587.103266][25380:25380] CHIP:DMG: }, [1666863587.103271][25380:25380] CHIP:DMG: - [1666863587.103273][25380:25380] CHIP:DMG: }, + [1666863587.103273][25380:25380] CHIP:DMG: }, [1666863587.103278][25380:25380] CHIP:DMG: - [1666863587.103281][25380:25380] CHIP:DMG: ], + [1666863587.103281][25380:25380] CHIP:DMG: ], [1666863587.103286][25380:25380] CHIP:DMG: - [1666863587.103289][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863587.103292][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863587.103289][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863587.103292][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863587.103295][25380:25380] CHIP:DMG: } disabled: true @@ -1382,29 +1382,29 @@ tests: ReportDataMessage = [1666863613.004010][25380:25380] CHIP:DMG: { - [1666863613.004014][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863613.004021][25380:25380] CHIP:DMG: [ - [1666863613.004025][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863613.004033][25380:25380] CHIP:DMG: { - [1666863613.004036][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863613.004042][25380:25380] CHIP:DMG: { - [1666863613.004047][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863613.004052][25380:25380] CHIP:DMG: AttributePathIB = - [1666863613.004058][25380:25380] CHIP:DMG: { - [1666863613.004062][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863613.004067][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863613.004072][25380:25380] CHIP:DMG: Attribute = 0x0000_0025, - [1666863613.004076][25380:25380] CHIP:DMG: } + [1666863613.004014][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863613.004021][25380:25380] CHIP:DMG: [ + [1666863613.004025][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863613.004033][25380:25380] CHIP:DMG: { + [1666863613.004036][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863613.004042][25380:25380] CHIP:DMG: { + [1666863613.004047][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863613.004052][25380:25380] CHIP:DMG: AttributePathIB = + [1666863613.004058][25380:25380] CHIP:DMG: { + [1666863613.004062][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863613.004067][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863613.004072][25380:25380] CHIP:DMG: Attribute = 0x0000_0025, + [1666863613.004076][25380:25380] CHIP:DMG: } [1666863613.004081][25380:25380] CHIP:DMG: - [1666863613.004086][25380:25380] CHIP:DMG: Data = 0, - [1666863613.004093][25380:25380] CHIP:DMG: }, + [1666863613.004086][25380:25380] CHIP:DMG: Data = 0, + [1666863613.004093][25380:25380] CHIP:DMG: }, [1666863613.004099][25380:25380] CHIP:DMG: - [1666863613.004104][25380:25380] CHIP:DMG: }, + [1666863613.004104][25380:25380] CHIP:DMG: }, [1666863613.004110][25380:25380] CHIP:DMG: - [1666863613.004113][25380:25380] CHIP:DMG: ], + [1666863613.004113][25380:25380] CHIP:DMG: ], [1666863613.004119][25380:25380] CHIP:DMG: - [1666863613.004124][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863613.004129][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863613.004124][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863613.004129][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863613.004132][25380:25380] CHIP:DMG: } disabled: true @@ -1419,29 +1419,29 @@ tests: ReportDataMessage = [1666863640.702107][25380:25380] CHIP:DMG: { - [1666863640.702111][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863640.702118][25380:25380] CHIP:DMG: [ - [1666863640.702122][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863640.702129][25380:25380] CHIP:DMG: { - [1666863640.702134][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863640.702139][25380:25380] CHIP:DMG: { - [1666863640.702144][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863640.702148][25380:25380] CHIP:DMG: AttributePathIB = - [1666863640.702153][25380:25380] CHIP:DMG: { - [1666863640.702159][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863640.702165][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863640.702170][25380:25380] CHIP:DMG: Attribute = 0x0000_0026, - [1666863640.702175][25380:25380] CHIP:DMG: } + [1666863640.702111][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863640.702118][25380:25380] CHIP:DMG: [ + [1666863640.702122][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863640.702129][25380:25380] CHIP:DMG: { + [1666863640.702134][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863640.702139][25380:25380] CHIP:DMG: { + [1666863640.702144][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863640.702148][25380:25380] CHIP:DMG: AttributePathIB = + [1666863640.702153][25380:25380] CHIP:DMG: { + [1666863640.702159][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863640.702165][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863640.702170][25380:25380] CHIP:DMG: Attribute = 0x0000_0026, + [1666863640.702175][25380:25380] CHIP:DMG: } [1666863640.702181][25380:25380] CHIP:DMG: - [1666863640.702186][25380:25380] CHIP:DMG: Data = 0, - [1666863640.702191][25380:25380] CHIP:DMG: }, + [1666863640.702186][25380:25380] CHIP:DMG: Data = 0, + [1666863640.702191][25380:25380] CHIP:DMG: }, [1666863640.702199][25380:25380] CHIP:DMG: - [1666863640.702203][25380:25380] CHIP:DMG: }, + [1666863640.702203][25380:25380] CHIP:DMG: }, [1666863640.702210][25380:25380] CHIP:DMG: - [1666863640.702213][25380:25380] CHIP:DMG: ], + [1666863640.702213][25380:25380] CHIP:DMG: ], [1666863640.702220][25380:25380] CHIP:DMG: - [1666863640.702224][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863640.702229][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863640.702224][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863640.702229][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863640.702232][25380:25380] CHIP:DMG: } disabled: true @@ -1455,29 +1455,29 @@ tests: ReportDataMessage = [1666863670.226471][25380:25380] CHIP:DMG: { - [1666863670.226474][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863670.226479][25380:25380] CHIP:DMG: [ - [1666863670.226482][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863670.226488][25380:25380] CHIP:DMG: { - [1666863670.226491][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863670.226494][25380:25380] CHIP:DMG: { - [1666863670.226498][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863670.226501][25380:25380] CHIP:DMG: AttributePathIB = - [1666863670.226506][25380:25380] CHIP:DMG: { - [1666863670.226509][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863670.226514][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863670.226518][25380:25380] CHIP:DMG: Attribute = 0x0000_0028, - [1666863670.226524][25380:25380] CHIP:DMG: } + [1666863670.226474][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863670.226479][25380:25380] CHIP:DMG: [ + [1666863670.226482][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863670.226488][25380:25380] CHIP:DMG: { + [1666863670.226491][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863670.226494][25380:25380] CHIP:DMG: { + [1666863670.226498][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863670.226501][25380:25380] CHIP:DMG: AttributePathIB = + [1666863670.226506][25380:25380] CHIP:DMG: { + [1666863670.226509][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863670.226514][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863670.226518][25380:25380] CHIP:DMG: Attribute = 0x0000_0028, + [1666863670.226524][25380:25380] CHIP:DMG: } [1666863670.226529][25380:25380] CHIP:DMG: - [1666863670.226533][25380:25380] CHIP:DMG: Data = 0, - [1666863670.226536][25380:25380] CHIP:DMG: }, + [1666863670.226533][25380:25380] CHIP:DMG: Data = 0, + [1666863670.226536][25380:25380] CHIP:DMG: }, [1666863670.226543][25380:25380] CHIP:DMG: - [1666863670.226546][25380:25380] CHIP:DMG: }, + [1666863670.226546][25380:25380] CHIP:DMG: }, [1666863670.226551][25380:25380] CHIP:DMG: - [1666863670.226554][25380:25380] CHIP:DMG: ], + [1666863670.226554][25380:25380] CHIP:DMG: ], [1666863670.226559][25380:25380] CHIP:DMG: - [1666863670.226562][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863670.226566][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863670.226562][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863670.226566][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863670.226568][25380:25380] CHIP:DMG: } disabled: true @@ -1491,29 +1491,29 @@ tests: ReportDataMessage = [1666863704.984668][25380:25380] CHIP:DMG: { - [1666863704.984671][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863704.984676][25380:25380] CHIP:DMG: [ - [1666863704.984679][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863704.984684][25380:25380] CHIP:DMG: { - [1666863704.984687][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863704.984691][25380:25380] CHIP:DMG: { - [1666863704.984695][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863704.984701][25380:25380] CHIP:DMG: AttributePathIB = - [1666863704.984704][25380:25380] CHIP:DMG: { - [1666863704.984709][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863704.984712][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863704.984718][25380:25380] CHIP:DMG: Attribute = 0x0000_0029, - [1666863704.984721][25380:25380] CHIP:DMG: } + [1666863704.984671][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863704.984676][25380:25380] CHIP:DMG: [ + [1666863704.984679][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863704.984684][25380:25380] CHIP:DMG: { + [1666863704.984687][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863704.984691][25380:25380] CHIP:DMG: { + [1666863704.984695][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863704.984701][25380:25380] CHIP:DMG: AttributePathIB = + [1666863704.984704][25380:25380] CHIP:DMG: { + [1666863704.984709][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863704.984712][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863704.984718][25380:25380] CHIP:DMG: Attribute = 0x0000_0029, + [1666863704.984721][25380:25380] CHIP:DMG: } [1666863704.984725][25380:25380] CHIP:DMG: - [1666863704.984729][25380:25380] CHIP:DMG: Data = 0, - [1666863704.984732][25380:25380] CHIP:DMG: }, + [1666863704.984729][25380:25380] CHIP:DMG: Data = 0, + [1666863704.984732][25380:25380] CHIP:DMG: }, [1666863704.984737][25380:25380] CHIP:DMG: - [1666863704.984740][25380:25380] CHIP:DMG: }, + [1666863704.984740][25380:25380] CHIP:DMG: }, [1666863704.984744][25380:25380] CHIP:DMG: - [1666863704.984746][25380:25380] CHIP:DMG: ], + [1666863704.984746][25380:25380] CHIP:DMG: ], [1666863704.984751][25380:25380] CHIP:DMG: - [1666863704.984754][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863704.984757][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863704.984754][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863704.984757][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863704.984760][25380:25380] CHIP:DMG: } disabled: true @@ -1528,29 +1528,29 @@ tests: ReportDataMessage = [1666863735.953001][25380:25380] CHIP:DMG: { - [1666863735.953004][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863735.953010][25380:25380] CHIP:DMG: [ - [1666863735.953012][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863735.953017][25380:25380] CHIP:DMG: { - [1666863735.953020][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863735.953023][25380:25380] CHIP:DMG: { - [1666863735.953026][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863735.953030][25380:25380] CHIP:DMG: AttributePathIB = - [1666863735.953034][25380:25380] CHIP:DMG: { - [1666863735.953037][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863735.953041][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863735.953044][25380:25380] CHIP:DMG: Attribute = 0x0000_002A, - [1666863735.953048][25380:25380] CHIP:DMG: } + [1666863735.953004][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863735.953010][25380:25380] CHIP:DMG: [ + [1666863735.953012][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863735.953017][25380:25380] CHIP:DMG: { + [1666863735.953020][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863735.953023][25380:25380] CHIP:DMG: { + [1666863735.953026][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863735.953030][25380:25380] CHIP:DMG: AttributePathIB = + [1666863735.953034][25380:25380] CHIP:DMG: { + [1666863735.953037][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863735.953041][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863735.953044][25380:25380] CHIP:DMG: Attribute = 0x0000_002A, + [1666863735.953048][25380:25380] CHIP:DMG: } [1666863735.953053][25380:25380] CHIP:DMG: - [1666863735.953057][25380:25380] CHIP:DMG: Data = 0, - [1666863735.953061][25380:25380] CHIP:DMG: }, + [1666863735.953057][25380:25380] CHIP:DMG: Data = 0, + [1666863735.953061][25380:25380] CHIP:DMG: }, [1666863735.953066][25380:25380] CHIP:DMG: - [1666863735.953069][25380:25380] CHIP:DMG: }, + [1666863735.953069][25380:25380] CHIP:DMG: }, [1666863735.953073][25380:25380] CHIP:DMG: - [1666863735.953076][25380:25380] CHIP:DMG: ], + [1666863735.953076][25380:25380] CHIP:DMG: ], [1666863735.953081][25380:25380] CHIP:DMG: - [1666863735.953084][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863735.953089][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863735.953084][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863735.953089][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863735.953091][25380:25380] CHIP:DMG: } disabled: true @@ -1677,29 +1677,29 @@ tests: ReportDataMessage = [1666863871.297604][25380:25380] CHIP:DMG: { - [1666863871.297607][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863871.297612][25380:25380] CHIP:DMG: [ - [1666863871.297615][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863871.297621][25380:25380] CHIP:DMG: { - [1666863871.297624][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863871.297628][25380:25380] CHIP:DMG: { - [1666863871.297631][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863871.297635][25380:25380] CHIP:DMG: AttributePathIB = - [1666863871.297638][25380:25380] CHIP:DMG: { - [1666863871.297642][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863871.297645][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863871.297650][25380:25380] CHIP:DMG: Attribute = 0x0000_0033, - [1666863871.297653][25380:25380] CHIP:DMG: } + [1666863871.297607][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863871.297612][25380:25380] CHIP:DMG: [ + [1666863871.297615][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863871.297621][25380:25380] CHIP:DMG: { + [1666863871.297624][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863871.297628][25380:25380] CHIP:DMG: { + [1666863871.297631][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863871.297635][25380:25380] CHIP:DMG: AttributePathIB = + [1666863871.297638][25380:25380] CHIP:DMG: { + [1666863871.297642][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863871.297645][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863871.297650][25380:25380] CHIP:DMG: Attribute = 0x0000_0033, + [1666863871.297653][25380:25380] CHIP:DMG: } [1666863871.297657][25380:25380] CHIP:DMG: - [1666863871.297661][25380:25380] CHIP:DMG: Data = 0, - [1666863871.297664][25380:25380] CHIP:DMG: }, + [1666863871.297661][25380:25380] CHIP:DMG: Data = 0, + [1666863871.297664][25380:25380] CHIP:DMG: }, [1666863871.297676][25380:25380] CHIP:DMG: - [1666863871.297680][25380:25380] CHIP:DMG: }, + [1666863871.297680][25380:25380] CHIP:DMG: }, [1666863871.297685][25380:25380] CHIP:DMG: - [1666863871.297687][25380:25380] CHIP:DMG: ], + [1666863871.297687][25380:25380] CHIP:DMG: ], [1666863871.297692][25380:25380] CHIP:DMG: - [1666863871.297695][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863871.297697][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863871.297695][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863871.297697][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863871.297700][25380:25380] CHIP:DMG: } disabled: true @@ -1792,29 +1792,29 @@ tests: ReportDataMessage = [1666863962.602460][25380:25380] CHIP:DMG: { - [1666863962.602464][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666863962.602471][25380:25380] CHIP:DMG: [ - [1666863962.602475][25380:25380] CHIP:DMG: AttributeReportIB = - [1666863962.602481][25380:25380] CHIP:DMG: { - [1666863962.602486][25380:25380] CHIP:DMG: AttributeDataIB = - [1666863962.602491][25380:25380] CHIP:DMG: { - [1666863962.602496][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666863962.602501][25380:25380] CHIP:DMG: AttributePathIB = - [1666863962.602506][25380:25380] CHIP:DMG: { - [1666863962.602511][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666863962.602516][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666863962.602521][25380:25380] CHIP:DMG: Attribute = 0x0000_0037, - [1666863962.602527][25380:25380] CHIP:DMG: } + [1666863962.602464][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666863962.602471][25380:25380] CHIP:DMG: [ + [1666863962.602475][25380:25380] CHIP:DMG: AttributeReportIB = + [1666863962.602481][25380:25380] CHIP:DMG: { + [1666863962.602486][25380:25380] CHIP:DMG: AttributeDataIB = + [1666863962.602491][25380:25380] CHIP:DMG: { + [1666863962.602496][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666863962.602501][25380:25380] CHIP:DMG: AttributePathIB = + [1666863962.602506][25380:25380] CHIP:DMG: { + [1666863962.602511][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666863962.602516][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666863962.602521][25380:25380] CHIP:DMG: Attribute = 0x0000_0037, + [1666863962.602527][25380:25380] CHIP:DMG: } [1666863962.602533][25380:25380] CHIP:DMG: - [1666863962.602539][25380:25380] CHIP:DMG: Data = 0, - [1666863962.602543][25380:25380] CHIP:DMG: }, + [1666863962.602539][25380:25380] CHIP:DMG: Data = 0, + [1666863962.602543][25380:25380] CHIP:DMG: }, [1666863962.602549][25380:25380] CHIP:DMG: - [1666863962.602553][25380:25380] CHIP:DMG: }, + [1666863962.602553][25380:25380] CHIP:DMG: }, [1666863962.602559][25380:25380] CHIP:DMG: - [1666863962.602563][25380:25380] CHIP:DMG: ], + [1666863962.602563][25380:25380] CHIP:DMG: ], [1666863962.602571][25380:25380] CHIP:DMG: - [1666863962.602574][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666863962.602579][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666863962.602574][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666863962.602579][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666863962.602582][25380:25380] CHIP:DMG: } disabled: true @@ -1907,29 +1907,29 @@ tests: ReportDataMessage = [1666864059.275756][25380:25380] CHIP:DMG: { - [1666864059.275759][25380:25380] CHIP:DMG: AttributeReportIBs = - [1666864059.275765][25380:25380] CHIP:DMG: [ - [1666864059.275767][25380:25380] CHIP:DMG: AttributeReportIB = - [1666864059.275771][25380:25380] CHIP:DMG: { - [1666864059.275774][25380:25380] CHIP:DMG: AttributeDataIB = - [1666864059.275778][25380:25380] CHIP:DMG: { - [1666864059.275780][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, - [1666864059.275784][25380:25380] CHIP:DMG: AttributePathIB = - [1666864059.275787][25380:25380] CHIP:DMG: { - [1666864059.275791][25380:25380] CHIP:DMG: Endpoint = 0x1, - [1666864059.275794][25380:25380] CHIP:DMG: Cluster = 0x300, - [1666864059.275800][25380:25380] CHIP:DMG: Attribute = 0x0000_003B, - [1666864059.275806][25380:25380] CHIP:DMG: } + [1666864059.275759][25380:25380] CHIP:DMG: AttributeReportIBs = + [1666864059.275765][25380:25380] CHIP:DMG: [ + [1666864059.275767][25380:25380] CHIP:DMG: AttributeReportIB = + [1666864059.275771][25380:25380] CHIP:DMG: { + [1666864059.275774][25380:25380] CHIP:DMG: AttributeDataIB = + [1666864059.275778][25380:25380] CHIP:DMG: { + [1666864059.275780][25380:25380] CHIP:DMG: DataVersion = 0x6851d6f7, + [1666864059.275784][25380:25380] CHIP:DMG: AttributePathIB = + [1666864059.275787][25380:25380] CHIP:DMG: { + [1666864059.275791][25380:25380] CHIP:DMG: Endpoint = 0x1, + [1666864059.275794][25380:25380] CHIP:DMG: Cluster = 0x300, + [1666864059.275800][25380:25380] CHIP:DMG: Attribute = 0x0000_003B, + [1666864059.275806][25380:25380] CHIP:DMG: } [1666864059.275811][25380:25380] CHIP:DMG: - [1666864059.275816][25380:25380] CHIP:DMG: Data = 0, - [1666864059.275820][25380:25380] CHIP:DMG: }, + [1666864059.275816][25380:25380] CHIP:DMG: Data = 0, + [1666864059.275820][25380:25380] CHIP:DMG: }, [1666864059.275826][25380:25380] CHIP:DMG: - [1666864059.275830][25380:25380] CHIP:DMG: }, + [1666864059.275830][25380:25380] CHIP:DMG: }, [1666864059.275836][25380:25380] CHIP:DMG: - [1666864059.275838][25380:25380] CHIP:DMG: ], + [1666864059.275838][25380:25380] CHIP:DMG: ], [1666864059.275844][25380:25380] CHIP:DMG: - [1666864059.275847][25380:25380] CHIP:DMG: SuppressResponse = true, - [1666864059.275850][25380:25380] CHIP:DMG: InteractionModelRevision = 1 + [1666864059.275847][25380:25380] CHIP:DMG: SuppressResponse = true, + [1666864059.275850][25380:25380] CHIP:DMG: InteractionModelRevision = 1 [1666864059.275854][25380:25380] CHIP:DMG: } disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml deleted file mode 100644 index 08bef983ed74d7..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_3_4.yaml +++ /dev/null @@ -1,375 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.4. [TC-CC-3.4] Hue functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Precondition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F00(HS) - disabled: true - - - label: "DUT sends MoveToHue command to TH" - PICS: CC.C.C00.Tx - verification: | - ./chip-tool colorcontrol move-to-hue 1 0 300 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666870032.550840][28972:28972] CHIP:DMG: { - [1666870032.550844][28972:28972] CHIP:DMG: suppressResponse = false, - [1666870032.550847][28972:28972] CHIP:DMG: InvokeResponseIBs = - [1666870032.550852][28972:28972] CHIP:DMG: [ - [1666870032.550855][28972:28972] CHIP:DMG: InvokeResponseIB = - [1666870032.550861][28972:28972] CHIP:DMG: { - [1666870032.550864][28972:28972] CHIP:DMG: CommandStatusIB = - [1666870032.550867][28972:28972] CHIP:DMG: { - [1666870032.550870][28972:28972] CHIP:DMG: CommandPathIB = - [1666870032.550874][28972:28972] CHIP:DMG: { - [1666870032.550877][28972:28972] CHIP:DMG: EndpointId = 0x1, - [1666870032.550881][28972:28972] CHIP:DMG: ClusterId = 0x300, - [1666870032.550888][28972:28972] CHIP:DMG: CommandId = 0x0, - [1666870032.550892][28972:28972] CHIP:DMG: }, - [1666870032.550898][28972:28972] CHIP:DMG: - [1666870032.550901][28972:28972] CHIP:DMG: StatusIB = - [1666870032.550905][28972:28972] CHIP:DMG: { - [1666870032.550909][28972:28972] CHIP:DMG: status = 0x00 (SUCCESS), - [1666870032.550912][28972:28972] CHIP:DMG: }, - [1666870032.550915][28972:28972] CHIP:DMG: - [1666870032.550918][28972:28972] CHIP:DMG: }, - [1666870032.550923][28972:28972] CHIP:DMG: - [1666870032.550926][28972:28972] CHIP:DMG: }, - [1666870032.550930][28972:28972] CHIP:DMG: - [1666870032.550932][28972:28972] CHIP:DMG: ], - [1666870032.550936][28972:28972] CHIP:DMG: - [1666870032.550939][28972:28972] CHIP:DMG: InteractionModelRevision = 1 - [1666870032.550942][28972:28972] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentHue attribute from TH (potentially multiple times)" - PICS: CC.C.C00.Tx && CC.C.A0000 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - After 30 Seconds, Verify response contains a CurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666949574.856267][53285:53285] CHIP:DMG: { - [1666949574.856270][53285:53285] CHIP:DMG: AttributeReportIBs = - [1666949574.856277][53285:53285] CHIP:DMG: [ - [1666949574.856282][53285:53285] CHIP:DMG: AttributeReportIB = - [1666949574.856288][53285:53285] CHIP:DMG: { - [1666949574.856293][53285:53285] CHIP:DMG: AttributeDataIB = - [1666949574.856300][53285:53285] CHIP:DMG: { - [1666949574.856305][53285:53285] CHIP:DMG: DataVersion = 0x2574734d, - [1666949574.856312][53285:53285] CHIP:DMG: AttributePathIB = - [1666949574.856317][53285:53285] CHIP:DMG: { - [1666949574.856323][53285:53285] CHIP:DMG: Endpoint = 0x1, - [1666949574.856328][53285:53285] CHIP:DMG: Cluster = 0x300, - [1666949574.856334][53285:53285] CHIP:DMG: Attribute = 0x0000_0000, - [1666949574.856338][53285:53285] CHIP:DMG: } - [1666949574.856346][53285:53285] CHIP:DMG: - [1666949574.856351][53285:53285] CHIP:DMG: Data = 1, - [1666949574.856355][53285:53285] CHIP:DMG: }, - [1666949574.856361][53285:53285] CHIP:DMG: - [1666949574.856366][53285:53285] CHIP:DMG: }, - [1666949574.856372][53285:53285] CHIP:DMG: - [1666949574.856376][53285:53285] CHIP:DMG: ], - [1666949574.856382][53285:53285] CHIP:DMG: - [1666949574.856388][53285:53285] CHIP:DMG: SuppressResponse = true, - [1666949574.856392][53285:53285] CHIP:DMG: InteractionModelRevision = 1 - [1666949574.856395][53285:53285] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveHue command to TH" - PICS: CC.C.C01.Tx - verification: | - ./chip-tool colorcontrol move-hue 1 10 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666870102.191351][28972:28972] CHIP:DMG: { - [1666870102.191354][28972:28972] CHIP:DMG: suppressResponse = false, - [1666870102.191357][28972:28972] CHIP:DMG: InvokeResponseIBs = - [1666870102.191362][28972:28972] CHIP:DMG: [ - [1666870102.191365][28972:28972] CHIP:DMG: InvokeResponseIB = - [1666870102.191370][28972:28972] CHIP:DMG: { - [1666870102.191373][28972:28972] CHIP:DMG: CommandStatusIB = - [1666870102.191377][28972:28972] CHIP:DMG: { - [1666870102.191380][28972:28972] CHIP:DMG: CommandPathIB = - [1666870102.191383][28972:28972] CHIP:DMG: { - [1666870102.191387][28972:28972] CHIP:DMG: EndpointId = 0x1, - [1666870102.191390][28972:28972] CHIP:DMG: ClusterId = 0x300, - [1666870102.191394][28972:28972] CHIP:DMG: CommandId = 0x1, - [1666870102.191396][28972:28972] CHIP:DMG: }, - [1666870102.191401][28972:28972] CHIP:DMG: - [1666870102.191404][28972:28972] CHIP:DMG: StatusIB = - [1666870102.191408][28972:28972] CHIP:DMG: { - [1666870102.191411][28972:28972] CHIP:DMG: status = 0x00 (SUCCESS), - [1666870102.191414][28972:28972] CHIP:DMG: }, - [1666870102.191418][28972:28972] CHIP:DMG: - [1666870102.191421][28972:28972] CHIP:DMG: }, - [1666870102.191426][28972:28972] CHIP:DMG: - [1666870102.191428][28972:28972] CHIP:DMG: }, - [1666870102.191432][28972:28972] CHIP:DMG: - [1666870102.191435][28972:28972] CHIP:DMG: ], - [1666870102.191439][28972:28972] CHIP:DMG: - [1666870102.191442][28972:28972] CHIP:DMG: InteractionModelRevision = 1 - [1666870102.191444][28972:28972] CHIP:DMG: }, - disabled: true - - - label: "DUT reads CurrentHue attribute (potentially multiple times)" - PICS: CC.C.C01.Tx && CC.C.A0000 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - - After 10 seconds, Verify response contains a CurrentHue value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949623.429109][53285:53285] CHIP:DMG: { - [1666949623.429112][53285:53285] CHIP:DMG: AttributeReportIBs = - [1666949623.429117][53285:53285] CHIP:DMG: [ - [1666949623.429120][53285:53285] CHIP:DMG: AttributeReportIB = - [1666949623.429125][53285:53285] CHIP:DMG: { - [1666949623.429128][53285:53285] CHIP:DMG: AttributeDataIB = - [1666949623.429130][53285:53285] CHIP:DMG: { - [1666949623.429134][53285:53285] CHIP:DMG: DataVersion = 0x25747484, - [1666949623.429137][53285:53285] CHIP:DMG: AttributePathIB = - [1666949623.429141][53285:53285] CHIP:DMG: { - [1666949623.429144][53285:53285] CHIP:DMG: Endpoint = 0x1, - [1666949623.429147][53285:53285] CHIP:DMG: Cluster = 0x300, - [1666949623.429153][53285:53285] CHIP:DMG: Attribute = 0x0000_0000, - [1666949623.429156][53285:53285] CHIP:DMG: } - [1666949623.429161][53285:53285] CHIP:DMG: - [1666949623.429164][53285:53285] CHIP:DMG: Data = 101, - [1666949623.429167][53285:53285] CHIP:DMG: }, - [1666949623.429172][53285:53285] CHIP:DMG: - [1666949623.429175][53285:53285] CHIP:DMG: }, - [1666949623.429180][53285:53285] CHIP:DMG: - [1666949623.429182][53285:53285] CHIP:DMG: ], - [1666949623.429187][53285:53285] CHIP:DMG: - [1666949623.429191][53285:53285] CHIP:DMG: SuppressResponse = true, - [1666949623.429193][53285:53285] CHIP:DMG: InteractionModelRevision = 1 - [1666949623.429196][53285:53285] CHIP:DMG: } - - [1666870203.891709][28972:28972] CHIP:DMG: } - disabled: true - - - label: "DUT sends StepHue command to TH" - PICS: CC.C.C02.Tx - verification: | - ./chip-tool colorcontrol step-hue 1 10 200 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666870245.178660][28972:28972] CHIP:DMG: { - [1666870245.178664][28972:28972] CHIP:DMG: suppressResponse = false, - [1666870245.178668][28972:28972] CHIP:DMG: InvokeResponseIBs = - [1666870245.178675][28972:28972] CHIP:DMG: [ - [1666870245.178678][28972:28972] CHIP:DMG: InvokeResponseIB = - [1666870245.178687][28972:28972] CHIP:DMG: { - [1666870245.178691][28972:28972] CHIP:DMG: CommandStatusIB = - [1666870245.178696][28972:28972] CHIP:DMG: { - [1666870245.178700][28972:28972] CHIP:DMG: CommandPathIB = - [1666870245.178705][28972:28972] CHIP:DMG: { - [1666870245.178710][28972:28972] CHIP:DMG: EndpointId = 0x1, - [1666870245.178715][28972:28972] CHIP:DMG: ClusterId = 0x300, - [1666870245.178720][28972:28972] CHIP:DMG: CommandId = 0x2, - [1666870245.178724][28972:28972] CHIP:DMG: }, - [1666870245.178731][28972:28972] CHIP:DMG: - [1666870245.178736][28972:28972] CHIP:DMG: StatusIB = - [1666870245.178740][28972:28972] CHIP:DMG: { - [1666870245.178745][28972:28972] CHIP:DMG: status = 0x00 (SUCCESS), - [1666870245.178749][28972:28972] CHIP:DMG: }, - [1666870245.178755][28972:28972] CHIP:DMG: - [1666870245.178759][28972:28972] CHIP:DMG: }, - [1666870245.178764][28972:28972] CHIP:DMG: - [1666870245.178769][28972:28972] CHIP:DMG: }, - [1666870245.178776][28972:28972] CHIP:DMG: - [1666870245.178779][28972:28972] CHIP:DMG: ], - [1666870245.178785][28972:28972] CHIP:DMG: - [1666870245.178789][28972:28972] CHIP:DMG: InteractionModelRevision = 1 - [1666870245.178793][28972:28972] CHIP:DMG: }, - [1666870245.178797][28972:28972] CHIP:DMG: - disabled: true - - - label: - "DUT reads CurrentHue attribute from TH (potentially multiple times)" - PICS: CC.C.C02.Tx && CC.C.A0000 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - After 20 Seconds, Verify response contains a CurrentHue value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949869.970496][53285:53285] CHIP:DMG: { - [1666949869.970499][53285:53285] CHIP:DMG: AttributeReportIBs = - [1666949869.970506][53285:53285] CHIP:DMG: [ - [1666949869.970510][53285:53285] CHIP:DMG: AttributeReportIB = - [1666949869.970518][53285:53285] CHIP:DMG: { - [1666949869.970522][53285:53285] CHIP:DMG: AttributeDataIB = - [1666949869.970527][53285:53285] CHIP:DMG: { - [1666949869.970532][53285:53285] CHIP:DMG: DataVersion = 0x2574821f, - [1666949869.970538][53285:53285] CHIP:DMG: AttributePathIB = - [1666949869.970543][53285:53285] CHIP:DMG: { - [1666949869.970548][53285:53285] CHIP:DMG: Endpoint = 0x1, - [1666949869.970554][53285:53285] CHIP:DMG: Cluster = 0x300, - [1666949869.970560][53285:53285] CHIP:DMG: Attribute = 0x0000_0000, - [1666949869.970565][53285:53285] CHIP:DMG: } - [1666949869.970571][53285:53285] CHIP:DMG: - [1666949869.970576][53285:53285] CHIP:DMG: Data = 111, - [1666949869.970581][53285:53285] CHIP:DMG: }, - [1666949869.970590][53285:53285] CHIP:DMG: - [1666949869.970595][53285:53285] CHIP:DMG: }, - [1666949869.970601][53285:53285] CHIP:DMG: - [1666949869.970605][53285:53285] CHIP:DMG: ], - [1666949869.970612][53285:53285] CHIP:DMG: - [1666949869.970617][53285:53285] CHIP:DMG: SuppressResponse = true, - [1666949869.970621][53285:53285] CHIP:DMG: InteractionModelRevision = 1 - [1666949869.970625][53285:53285] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666870295.408009][28972:28972] CHIP:DMG: { - [1666870295.408013][28972:28972] CHIP:DMG: suppressResponse = false, - [1666870295.408016][28972:28972] CHIP:DMG: InvokeResponseIBs = - [1666870295.408021][28972:28972] CHIP:DMG: [ - [1666870295.408023][28972:28972] CHIP:DMG: InvokeResponseIB = - [1666870295.408029][28972:28972] CHIP:DMG: { - [1666870295.408032][28972:28972] CHIP:DMG: CommandStatusIB = - [1666870295.408036][28972:28972] CHIP:DMG: { - [1666870295.408039][28972:28972] CHIP:DMG: CommandPathIB = - [1666870295.408042][28972:28972] CHIP:DMG: { - [1666870295.408045][28972:28972] CHIP:DMG: EndpointId = 0x1, - [1666870295.408050][28972:28972] CHIP:DMG: ClusterId = 0x300, - [1666870295.408054][28972:28972] CHIP:DMG: CommandId = 0x47, - [1666870295.408057][28972:28972] CHIP:DMG: }, - [1666870295.408062][28972:28972] CHIP:DMG: - [1666870295.408065][28972:28972] CHIP:DMG: StatusIB = - [1666870295.408070][28972:28972] CHIP:DMG: { - [1666870295.408074][28972:28972] CHIP:DMG: status = 0x00 (SUCCESS), - [1666870295.408078][28972:28972] CHIP:DMG: }, - [1666870295.408082][28972:28972] CHIP:DMG: - [1666870295.408085][28972:28972] CHIP:DMG: }, - [1666870295.408090][28972:28972] CHIP:DMG: - [1666870295.408093][28972:28972] CHIP:DMG: }, - [1666870295.408098][28972:28972] CHIP:DMG: - [1666870295.408101][28972:28972] CHIP:DMG: ], - [1666870295.408106][28972:28972] CHIP:DMG: - [1666870295.408109][28972:28972] CHIP:DMG: InteractionModelRevision = 1 - [1666870295.408111][28972:28972] CHIP:DMG: }, - disabled: true - - - label: "Over TransitionTime, DUT reads CurrentHue attribute from TH." - PICS: CC.C.C47.Tx && CC.C.A0000 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - Verify response contains a CurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666949915.651039][53285:53285] CHIP:DMG: { - [1666949915.651042][53285:53285] CHIP:DMG: AttributeReportIBs = - [1666949915.651048][53285:53285] CHIP:DMG: [ - [1666949915.651051][53285:53285] CHIP:DMG: AttributeReportIB = - [1666949915.651056][53285:53285] CHIP:DMG: { - [1666949915.651059][53285:53285] CHIP:DMG: AttributeDataIB = - [1666949915.651062][53285:53285] CHIP:DMG: { - [1666949915.651066][53285:53285] CHIP:DMG: DataVersion = 0x2574821f, - [1666949915.651069][53285:53285] CHIP:DMG: AttributePathIB = - [1666949915.651072][53285:53285] CHIP:DMG: { - [1666949915.651079][53285:53285] CHIP:DMG: Endpoint = 0x1, - [1666949915.651084][53285:53285] CHIP:DMG: Cluster = 0x300, - [1666949915.651089][53285:53285] CHIP:DMG: Attribute = 0x0000_0000, - [1666949915.651093][53285:53285] CHIP:DMG: } - [1666949915.651100][53285:53285] CHIP:DMG: - [1666949915.651105][53285:53285] CHIP:DMG: Data = 111, - [1666949915.651110][53285:53285] CHIP:DMG: }, - [1666949915.651116][53285:53285] CHIP:DMG: - [1666949915.651121][53285:53285] CHIP:DMG: }, - [1666949915.651128][53285:53285] CHIP:DMG: - [1666949915.651131][53285:53285] CHIP:DMG: ], - [1666949915.651137][53285:53285] CHIP:DMG: - [1666949915.651141][53285:53285] CHIP:DMG: SuppressResponse = true, - [1666949915.651145][53285:53285] CHIP:DMG: InteractionModelRevision = 1 - [1666949915.651148][53285:53285] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_4_Simulated.yaml new file mode 100644 index 00000000000000..df1730a3d47568 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_3_4_Simulated.yaml @@ -0,0 +1,123 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 24.3.4. [TC-CC-3.4] Hue functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + endpoint: 1 + timeout: 300 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends MoveToHue command to TH an Hue with _TransitionTime 300" + wait: "MoveToHue" + PICS: CC.C.C00.Tx && CC.C.F00 + + - label: "DUT reads CurrentHue attribute from TH periodically" + PICS: CC.C.C00.Tx && CC.C.A0000 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentHue" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentHue attribute from TH periodically" + PICS: CC.C.C00.Tx && CC.C.A0000 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentHue" + + - label: "DUT sends MoveHue command to TH" + wait: "MoveHue" + PICS: CC.C.C01.Tx && CC.C.F00 + + - label: "DUT reads CurrentHue attribute from TH several times." + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C01.Tx && CC.C.A0000 && CC.C.F00 + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentHue attribute from TH several times." + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C01.Tx && CC.C.A0000 && CC.C.F00 + + - label: "DUT sends StepHue command to TH" + wait: "StepHue" + PICS: CC.C.C02.Tx && CC.C.F00 + + - label: "DUT reads CurrentHue attribute from TH several times." + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C02.Tx && CC.C.A0000 && CC.C.F00 + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentHue attribute from TH several times." + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C02.Tx && CC.C.A0000 && CC.C.F00 + + - label: "DUT sends StopMoveStep command to TH" + wait: "StopMoveStep" + PICS: CC.C.C03.Tx && CC.C.A0000 && CC.C.F00 + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "Over TransitionTime, DUT reads CurrentHue attribute from TH" + wait: "readAttribute" + attribute: "CurrentHue" + PICS: CC.C.C03.Tx && CC.C.A0000 && CC.C.F00 diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml deleted file mode 100644 index bcd7cdee8cfe3e..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml +++ /dev/null @@ -1,486 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.9. [TC-CC-4.5] Saturation functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Pre-Condition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F00(HS) - disabled: true - - - label: "DUT sends MoveToSaturation command to TH" - PICS: CC.C.C03.Tx - verification: | - ./chip-tool colorcontrol move-to-saturation 200 300 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - [InvokeResponseMessage = - [1666948929.559593][53014:53014] CHIP:DMG: { - [1666948929.559597][53014:53014] CHIP:DMG: suppressResponse = false, - [1666948929.559601][53014:53014] CHIP:DMG: InvokeResponseIBs = - [1666948929.559609][53014:53014] CHIP:DMG: [ - [1666948929.559613][53014:53014] CHIP:DMG: InvokeResponseIB = - [1666948929.559620][53014:53014] CHIP:DMG: { - [1666948929.559625][53014:53014] CHIP:DMG: CommandStatusIB = - [1666948929.559630][53014:53014] CHIP:DMG: { - [1666948929.559635][53014:53014] CHIP:DMG: CommandPathIB = - [1666948929.559641][53014:53014] CHIP:DMG: { - [1666948929.559646][53014:53014] CHIP:DMG: EndpointId = 0x1, - [1666948929.559652][53014:53014] CHIP:DMG: ClusterId = 0x300, - [1666948929.559658][53014:53014] CHIP:DMG: CommandId = 0x3, - [1666948929.559663][53014:53014] CHIP:DMG: }, - [1666948929.559671][53014:53014] CHIP:DMG: - [1666948929.559676][53014:53014] CHIP:DMG: StatusIB = - [1666948929.559682][53014:53014] CHIP:DMG: { - [1666948929.559687][53014:53014] CHIP:DMG: status = 0x00 (SUCCESS), - [1666948929.559692][53014:53014] CHIP:DMG: }, - [1666948929.559698][53014:53014] CHIP:DMG: - [1666948929.559702][53014:53014] CHIP:DMG: }, - [1666948929.559710][53014:53014] CHIP:DMG: - [1666948929.559713][53014:53014] CHIP:DMG: }, - [1666948929.559719][53014:53014] CHIP:DMG: - [1666948929.559723][53014:53014] CHIP:DMG: ], - [1666948929.559731][53014:53014] CHIP:DMG: - [1666948929.559735][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666948929.559739][53014:53014] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentSaturation attribute from TH (potentially multiple - times)" - PICS: CC.C.C03.Tx && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-saturation 1 1 - - - - After 30 Seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948964.837074][53014:53014] CHIP:DMG: { - [1666948964.837078][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666948964.837086][53014:53014] CHIP:DMG: [ - [1666948964.837088][53014:53014] CHIP:DMG: AttributeReportIB = - [1666948964.837095][53014:53014] CHIP:DMG: { - [1666948964.837098][53014:53014] CHIP:DMG: AttributeDataIB = - [1666948964.837103][53014:53014] CHIP:DMG: { - [1666948964.837108][53014:53014] CHIP:DMG: DataVersion = 0x3aac1e2f, - [1666948964.837112][53014:53014] CHIP:DMG: AttributePathIB = - [1666948964.837118][53014:53014] CHIP:DMG: { - [1666948964.837122][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666948964.837127][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666948964.837132][53014:53014] CHIP:DMG: Attribute = 0x0000_0001, - [1666948964.837136][53014:53014] CHIP:DMG: } - [1666948964.837141][53014:53014] CHIP:DMG: - [1666948964.837146][53014:53014] CHIP:DMG: Data = 200, - [1666948964.837150][53014:53014] CHIP:DMG: }, - [1666948964.837155][53014:53014] CHIP:DMG: - [1666948964.837159][53014:53014] CHIP:DMG: }, - [1666948964.837166][53014:53014] CHIP:DMG: - [1666948964.837168][53014:53014] CHIP:DMG: ], - [1666948964.837175][53014:53014] CHIP:DMG: - [1666948964.837178][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666948964.837182][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666948964.837185][53014:53014] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveSaturation command to TH" - PICS: CC.C.C04.Tx - verification: | - ./chip-tool colorcontrol move-saturation 1 10 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - - InvokeResponseMessage = - [1666871847.999808][30461:30461] CHIP:DMG: { - [1666871847.999811][30461:30461] CHIP:DMG: suppressResponse = false, - [1666871847.999814][30461:30461] CHIP:DMG: InvokeResponseIBs = - [1666871847.999819][30461:30461] CHIP:DMG: [ - [1666871847.999821][30461:30461] CHIP:DMG: InvokeResponseIB = - [1666871847.999826][30461:30461] CHIP:DMG: { - [1666871847.999829][30461:30461] CHIP:DMG: CommandStatusIB = - [1666871847.999832][30461:30461] CHIP:DMG: { - [1666871847.999835][30461:30461] CHIP:DMG: CommandPathIB = - [1666871847.999842][30461:30461] CHIP:DMG: { - [1666871847.999845][30461:30461] CHIP:DMG: EndpointId = 0x1, - [1666871847.999850][30461:30461] CHIP:DMG: ClusterId = 0x300, - [1666871847.999853][30461:30461] CHIP:DMG: CommandId = 0x4, - [1666871847.999858][30461:30461] CHIP:DMG: }, - [1666871847.999863][30461:30461] CHIP:DMG: - [1666871847.999866][30461:30461] CHIP:DMG: StatusIB = - [1666871847.999871][30461:30461] CHIP:DMG: { - [1666871847.999874][30461:30461] CHIP:DMG: status = 0x00 (SUCCESS), - [1666871847.999878][30461:30461] CHIP:DMG: }, - [1666871847.999882][30461:30461] CHIP:DMG: - [1666871847.999887][30461:30461] CHIP:DMG: }, - [1666871847.999893][30461:30461] CHIP:DMG: - [1666871847.999896][30461:30461] CHIP:DMG: }, - [1666871847.999900][30461:30461] CHIP:DMG: - [1666871847.999903][30461:30461] CHIP:DMG: ], - [1666871847.999908][30461:30461] CHIP:DMG: - [1666871847.999911][30461:30461] CHIP:DMG: InteractionModelRevision = 1 - [1666871847.999913][30461:30461] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentSaturation attribute (potentially multiple times)" - PICS: CC.C.C04.Tx && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-saturation 1 1 - - - After 10 seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949021.698047][53014:53014] CHIP:DMG: { - [1666949021.698049][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666949021.698056][53014:53014] CHIP:DMG: [ - [1666949021.698060][53014:53014] CHIP:DMG: AttributeReportIB = - [1666949021.698066][53014:53014] CHIP:DMG: { - [1666949021.698069][53014:53014] CHIP:DMG: AttributeDataIB = - [1666949021.698072][53014:53014] CHIP:DMG: { - [1666949021.698076][53014:53014] CHIP:DMG: DataVersion = 0x3aac1ed2, - [1666949021.698082][53014:53014] CHIP:DMG: AttributePathIB = - [1666949021.698087][53014:53014] CHIP:DMG: { - [1666949021.698093][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666949021.698097][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666949021.698102][53014:53014] CHIP:DMG: Attribute = 0x0000_0001, - [1666949021.698106][53014:53014] CHIP:DMG: } - [1666949021.698110][53014:53014] CHIP:DMG: - [1666949021.698114][53014:53014] CHIP:DMG: Data = 254, - [1666949021.698117][53014:53014] CHIP:DMG: }, - [1666949021.698123][53014:53014] CHIP:DMG: - [1666949021.698127][53014:53014] CHIP:DMG: }, - [1666949021.698133][53014:53014] CHIP:DMG: - [1666949021.698135][53014:53014] CHIP:DMG: ], - [1666949021.698142][53014:53014] CHIP:DMG: - [1666949021.698146][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666949021.698151][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666949021.698154][53014:53014] CHIP:DMG: } - disabled: true - - - label: "DUT sends StepSaturation command to TH" - PICS: CC.C.C05.Tx - verification: | - ./chip-tool colorcontrol step-saturation 1 10 200 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666871905.186632][30461:30461] CHIP:DMG: { - [1666871905.186635][30461:30461] CHIP:DMG: suppressResponse = false, - [1666871905.186638][30461:30461] CHIP:DMG: InvokeResponseIBs = - [1666871905.186643][30461:30461] CHIP:DMG: [ - [1666871905.186646][30461:30461] CHIP:DMG: InvokeResponseIB = - [1666871905.186651][30461:30461] CHIP:DMG: { - [1666871905.186654][30461:30461] CHIP:DMG: CommandStatusIB = - [1666871905.186657][30461:30461] CHIP:DMG: { - [1666871905.186660][30461:30461] CHIP:DMG: CommandPathIB = - [1666871905.186664][30461:30461] CHIP:DMG: { - [1666871905.186668][30461:30461] CHIP:DMG: EndpointId = 0x1, - [1666871905.186671][30461:30461] CHIP:DMG: ClusterId = 0x300, - [1666871905.186675][30461:30461] CHIP:DMG: CommandId = 0x5, - [1666871905.186679][30461:30461] CHIP:DMG: }, - [1666871905.186684][30461:30461] CHIP:DMG: - [1666871905.186688][30461:30461] CHIP:DMG: StatusIB = - [1666871905.186692][30461:30461] CHIP:DMG: { - [1666871905.186696][30461:30461] CHIP:DMG: status = 0x00 (SUCCESS), - [1666871905.186699][30461:30461] CHIP:DMG: }, - [1666871905.186703][30461:30461] CHIP:DMG: - [1666871905.186705][30461:30461] CHIP:DMG: }, - [1666871905.186710][30461:30461] CHIP:DMG: - [1666871905.186713][30461:30461] CHIP:DMG: }, - [1666871905.186717][30461:30461] CHIP:DMG: - [1666871905.186719][30461:30461] CHIP:DMG: ], - [1666871905.186723][30461:30461] CHIP:DMG: - [1666871905.186726][30461:30461] CHIP:DMG: InteractionModelRevision = 1 - [1666871905.186728][30461:30461] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentSaturation attribute from TH (potentially multiple - times)" - PICS: CC.C.C05.Tx && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-saturation 1 1 - - After 20 Seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666949085.456270][53014:53014] CHIP:DMG: { - [1666949085.456272][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666949085.456278][53014:53014] CHIP:DMG: [ - [1666949085.456281][53014:53014] CHIP:DMG: AttributeReportIB = - [1666949085.456286][53014:53014] CHIP:DMG: { - [1666949085.456289][53014:53014] CHIP:DMG: AttributeDataIB = - [1666949085.456292][53014:53014] CHIP:DMG: { - [1666949085.456296][53014:53014] CHIP:DMG: DataVersion = 0x3aac212b, - [1666949085.456299][53014:53014] CHIP:DMG: AttributePathIB = - [1666949085.456303][53014:53014] CHIP:DMG: { - [1666949085.456308][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666949085.456311][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666949085.456316][53014:53014] CHIP:DMG: Attribute = 0x0000_0001, - [1666949085.456320][53014:53014] CHIP:DMG: } - [1666949085.456324][53014:53014] CHIP:DMG: - [1666949085.456328][53014:53014] CHIP:DMG: Data = 254, - [1666949085.456332][53014:53014] CHIP:DMG: }, - [1666949085.456337][53014:53014] CHIP:DMG: - [1666949085.456340][53014:53014] CHIP:DMG: }, - [1666949085.456344][53014:53014] CHIP:DMG: - [1666949085.456347][53014:53014] CHIP:DMG: ], - [1666949085.456352][53014:53014] CHIP:DMG: - [1666949085.456355][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666949085.456358][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666949085.456360][53014:53014] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveToHueAndSaturation command to TH" - PICS: CC.C.C06.Tx - verification: | - ./chip-tool colorcontrol move-to-hue-and-saturation 100 200 200 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666871966.930094][30461:30461] CHIP:DMG: { - [1666871966.930098][30461:30461] CHIP:DMG: suppressResponse = false, - [1666871966.930101][30461:30461] CHIP:DMG: InvokeResponseIBs = - [1666871966.930107][30461:30461] CHIP:DMG: [ - [1666871966.930112][30461:30461] CHIP:DMG: InvokeResponseIB = - [1666871966.930120][30461:30461] CHIP:DMG: { - [1666871966.930123][30461:30461] CHIP:DMG: CommandStatusIB = - [1666871966.930127][30461:30461] CHIP:DMG: { - [1666871966.930131][30461:30461] CHIP:DMG: CommandPathIB = - [1666871966.930135][30461:30461] CHIP:DMG: { - [1666871966.930139][30461:30461] CHIP:DMG: EndpointId = 0x1, - [1666871966.930145][30461:30461] CHIP:DMG: ClusterId = 0x300, - [1666871966.930150][30461:30461] CHIP:DMG: CommandId = 0x6, - [1666871966.930154][30461:30461] CHIP:DMG: }, - [1666871966.930160][30461:30461] CHIP:DMG: - [1666871966.930164][30461:30461] CHIP:DMG: StatusIB = - [1666871966.930170][30461:30461] CHIP:DMG: { - [1666871966.930173][30461:30461] CHIP:DMG: status = 0x00 (SUCCESS), - [1666871966.930177][30461:30461] CHIP:DMG: }, - [1666871966.930181][30461:30461] CHIP:DMG: - [1666871966.930185][30461:30461] CHIP:DMG: }, - [1666871966.930189][30461:30461] CHIP:DMG: - [1666871966.930193][30461:30461] CHIP:DMG: }, - [1666871966.930198][30461:30461] CHIP:DMG: - [1666871966.930200][30461:30461] CHIP:DMG: ], - [1666871966.930205][30461:30461] CHIP:DMG: - [1666871966.930208][30461:30461] CHIP:DMG: InteractionModelRevision = 1 - [1666871966.930213][30461:30461] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentHue and CurrentSaturation attributes from TH - (potentially multiple times)" - PICS: CC.C.C06.Tx && CC.C.A0000 && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-hue 1 1 - - After 20 Seconds, Verify response contains CurrentHue value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949242.902165][53014:53014] CHIP:DMG: { - [1666949242.902168][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666949242.902173][53014:53014] CHIP:DMG: [ - [1666949242.902176][53014:53014] CHIP:DMG: AttributeReportIB = - [1666949242.902181][53014:53014] CHIP:DMG: { - [1666949242.902184][53014:53014] CHIP:DMG: AttributeDataIB = - [1666949242.902188][53014:53014] CHIP:DMG: { - [1666949242.902192][53014:53014] CHIP:DMG: DataVersion = 0x3aac244c, - [1666949242.902194][53014:53014] CHIP:DMG: AttributePathIB = - [1666949242.902198][53014:53014] CHIP:DMG: { - [1666949242.902201][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666949242.902206][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666949242.902209][53014:53014] CHIP:DMG: Attribute = 0x0000_0000, - [1666949242.902213][53014:53014] CHIP:DMG: } - [1666949242.902218][53014:53014] CHIP:DMG: - [1666949242.902222][53014:53014] CHIP:DMG: Data = 100, - [1666949242.902225][53014:53014] CHIP:DMG: }, - [1666949242.902229][53014:53014] CHIP:DMG: - [1666949242.902232][53014:53014] CHIP:DMG: }, - [1666949242.902236][53014:53014] CHIP:DMG: - [1666949242.902239][53014:53014] CHIP:DMG: ], - [1666949242.902244][53014:53014] CHIP:DMG: - [1666949242.902248][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666949242.902250][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666949242.902252][53014:53014] CHIP:DMG: } - - ./chip-tool colorcontrol read current-saturation 1 1 - - After 20 Seconds, Verify response contains an CurrentSaturation value in TH(all-clusters-app) Logs: - - ReportDataMessage = - [1666949267.581331][53014:53014] CHIP:DMG: { - [1666949267.581334][53014:53014] CHIP:DMG: AttributeReportIBs = - [1666949267.581339][53014:53014] CHIP:DMG: [ - [1666949267.581342][53014:53014] CHIP:DMG: AttributeReportIB = - [1666949267.581347][53014:53014] CHIP:DMG: { - [1666949267.581351][53014:53014] CHIP:DMG: AttributeDataIB = - [1666949267.581355][53014:53014] CHIP:DMG: { - [1666949267.581359][53014:53014] CHIP:DMG: DataVersion = 0x3aac244c, - [1666949267.581365][53014:53014] CHIP:DMG: AttributePathIB = - [1666949267.581369][53014:53014] CHIP:DMG: { - [1666949267.581373][53014:53014] CHIP:DMG: Endpoint = 0x1, - [1666949267.581377][53014:53014] CHIP:DMG: Cluster = 0x300, - [1666949267.581381][53014:53014] CHIP:DMG: Attribute = 0x0000_0001, - [1666949267.581384][53014:53014] CHIP:DMG: } - [1666949267.581388][53014:53014] CHIP:DMG: - [1666949267.581392][53014:53014] CHIP:DMG: Data = 200, - [1666949267.581394][53014:53014] CHIP:DMG: }, - [1666949267.581400][53014:53014] CHIP:DMG: - [1666949267.581403][53014:53014] CHIP:DMG: }, - [1666949267.581409][53014:53014] CHIP:DMG: - [1666949267.581411][53014:53014] CHIP:DMG: ], - [1666949267.581416][53014:53014] CHIP:DMG: - [1666949267.581418][53014:53014] CHIP:DMG: SuppressResponse = true, - [1666949267.581422][53014:53014] CHIP:DMG: InteractionModelRevision = 1 - [1666949267.581424][53014:53014] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666872053.240013][30461:30461] CHIP:DMG: { - [1666872053.240017][30461:30461] CHIP:DMG: suppressResponse = false, - [1666872053.240021][30461:30461] CHIP:DMG: InvokeResponseIBs = - [1666872053.240029][30461:30461] CHIP:DMG: [ - [1666872053.240033][30461:30461] CHIP:DMG: InvokeResponseIB = - [1666872053.240041][30461:30461] CHIP:DMG: { - [1666872053.240046][30461:30461] CHIP:DMG: CommandStatusIB = - [1666872053.240051][30461:30461] CHIP:DMG: { - [1666872053.240056][30461:30461] CHIP:DMG: CommandPathIB = - [1666872053.240061][30461:30461] CHIP:DMG: { - [1666872053.240066][30461:30461] CHIP:DMG: EndpointId = 0x1, - [1666872053.240073][30461:30461] CHIP:DMG: ClusterId = 0x300, - [1666872053.240077][30461:30461] CHIP:DMG: CommandId = 0x47, - [1666872053.240082][30461:30461] CHIP:DMG: }, - [1666872053.240088][30461:30461] CHIP:DMG: - [1666872053.240093][30461:30461] CHIP:DMG: StatusIB = - [1666872053.240098][30461:30461] CHIP:DMG: { - [1666872053.240103][30461:30461] CHIP:DMG: status = 0x00 (SUCCESS), - [1666872053.240108][30461:30461] CHIP:DMG: }, - [1666872053.240113][30461:30461] CHIP:DMG: - [1666872053.240118][30461:30461] CHIP:DMG: }, - [1666872053.240124][30461:30461] CHIP:DMG: - [1666872053.240129][30461:30461] CHIP:DMG: }, - [1666872053.240136][30461:30461] CHIP:DMG: - [1666872053.240140][30461:30461] CHIP:DMG: ], - [1666872053.240148][30461:30461] CHIP:DMG: - [1666872053.240152][30461:30461] CHIP:DMG: InteractionModelRevision = 1 - [1666872053.240156][30461:30461] CHIP:DMG: }, - disabled: true - - - label: - "Over TransitionTime, DUT reads CurrentSaturation attribute from TH." - PICS: CC.C.C47.Tx && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read current-saturation 1 1 - - - Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1667371661.960880][9339:9339] CHIP:DMG: { - [1667371661.960882][9339:9339] CHIP:DMG: AttributeReportIBs = - [1667371661.960887][9339:9339] CHIP:DMG: [ - [1667371661.960890][9339:9339] CHIP:DMG: AttributeReportIB = - [1667371661.960896][9339:9339] CHIP:DMG: { - [1667371661.960898][9339:9339] CHIP:DMG: AttributeDataIB = - [1667371661.960901][9339:9339] CHIP:DMG: { - [1667371661.960905][9339:9339] CHIP:DMG: DataVersion = 0xc1914ea4, - [1667371661.960908][9339:9339] CHIP:DMG: AttributePathIB = - [1667371661.960911][9339:9339] CHIP:DMG: { - [1667371661.960917][9339:9339] CHIP:DMG: Endpoint = 0x1, - [1667371661.960924][9339:9339] CHIP:DMG: Cluster = 0x300, - [1667371661.960928][9339:9339] CHIP:DMG: Attribute = 0x0000_0001, - [1667371661.960931][9339:9339] CHIP:DMG: } - [1667371661.960935][9339:9339] CHIP:DMG: - [1667371661.960940][9339:9339] CHIP:DMG: Data = 200, - [1667371661.960943][9339:9339] CHIP:DMG: }, - [1667371661.960948][9339:9339] CHIP:DMG: - [1667371661.960951][9339:9339] CHIP:DMG: }, - [1667371661.960957][9339:9339] CHIP:DMG: - [1667371661.960961][9339:9339] CHIP:DMG: ], - [1667371661.960966][9339:9339] CHIP:DMG: - [1667371661.960971][9339:9339] CHIP:DMG: SuppressResponse = true, - [1667371661.960974][9339:9339] CHIP:DMG: InteractionModelRevision = 1 - [1667371661.960977][9339:9339] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_5_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_5_Simulated.yaml new file mode 100644 index 00000000000000..aaabef575fc439 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_4_5_Simulated.yaml @@ -0,0 +1,157 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 24.3.9. [TC-CC-4.5] Saturation functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + endpoint: 1 + timeout: 500 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends MoveToSaturation command to TH" + PICS: CC.C.C03.Tx && CC.C.F00 + wait: "MoveToSaturation" + + - label: "DUT reads CurrentSaturation attribute from TH periodically" + PICS: CC.C.C03.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentSaturation attribute from TH periodically" + PICS: CC.C.C03.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT sends MoveSaturation command to TH" + PICS: CC.C.C04.Tx && CC.C.F00 + wait: "MoveSaturation" + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C04.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C04.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT sends StepSaturation command to TH" + PICS: CC.C.C05.Tx && CC.C.F00 + wait: "StepSaturation" + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C05.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C05.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT sends MoveToHueAndSaturation command to TH" + PICS: CC.C.C06.Tx && CC.C.F00 + wait: "MoveToHueAndSaturation" + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C06.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT reads CurrentHue attribute from TH periodically" + PICS: CC.C.C06.Tx && CC.C.A0000 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentHue" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentSaturation attribute from TH several times." + PICS: CC.C.C06.Tx && CC.C.A0001 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT reads CurrentHue attribute from TH periodically" + PICS: CC.C.C06.Tx && CC.C.A0000 && CC.C.F00 + wait: "readAttribute" + attribute: "CurrentHue" + + - label: "DUT sends StopMoveStep command to TH" + PICS: CC.C.C47.Tx && CC.C.F00 + wait: "StopMoveStep" + + - label: "Wait for ConfigTransitionTime" + PICS: CC.C.F00 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "Over TransitionTime, DUT reads CurrentSaturation attribute from TH" + wait: "readAttribute" + attribute: "CurrentSaturation" + PICS: CC.C.C47.Tx && CC.C.A0001 && CC.C.F00 diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml deleted file mode 100644 index dead0bb8c67e9f..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_5_4.yaml +++ /dev/null @@ -1,494 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.13. [TC-CC-5.4] Color functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Pre-Condition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F03(XY) - disabled: true - - - label: "DUT sends MoveToColor command to TH" - PICS: CC.C.C07.Tx - verification: | - ./chip-tool colorcontrol move-to-color 400 500 300 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666934571.869647][27709:27709] CHIP:DMG: { - [1666934571.869651][27709:27709] CHIP:DMG: suppressResponse = false, - [1666934571.869654][27709:27709] CHIP:DMG: InvokeResponseIBs = - [1666934571.869658][27709:27709] CHIP:DMG: [ - [1666934571.869661][27709:27709] CHIP:DMG: InvokeResponseIB = - [1666934571.869666][27709:27709] CHIP:DMG: { - [1666934571.869669][27709:27709] CHIP:DMG: CommandStatusIB = - [1666934571.869672][27709:27709] CHIP:DMG: { - [1666934571.869675][27709:27709] CHIP:DMG: CommandPathIB = - [1666934571.869678][27709:27709] CHIP:DMG: { - [1666934571.869683][27709:27709] CHIP:DMG: EndpointId = 0x1, - [1666934571.869686][27709:27709] CHIP:DMG: ClusterId = 0x300, - [1666934571.869690][27709:27709] CHIP:DMG: CommandId = 0x7, - [1666934571.869693][27709:27709] CHIP:DMG: }, - [1666934571.869697][27709:27709] CHIP:DMG: - [1666934571.869701][27709:27709] CHIP:DMG: StatusIB = - [1666934571.869706][27709:27709] CHIP:DMG: { - [1666934571.869709][27709:27709] CHIP:DMG: status = 0x00 (SUCCESS), - [1666934571.869714][27709:27709] CHIP:DMG: }, - [1666934571.869718][27709:27709] CHIP:DMG: - [1666934571.869720][27709:27709] CHIP:DMG: }, - [1666934571.869725][27709:27709] CHIP:DMG: - [1666934571.869728][27709:27709] CHIP:DMG: }, - [1666934571.869733][27709:27709] CHIP:DMG: - [1666934571.869736][27709:27709] CHIP:DMG: ], - [1666934571.869741][27709:27709] CHIP:DMG: - [1666934571.869743][27709:27709] CHIP:DMG: InteractionModelRevision = 1 - [1666934571.869746][27709:27709] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentX and CurrentY attributes from TH (potentially - multiple times)" - PICS: CC.C.C07.Tx && CC.C.A0003 && CC.C.A0004 - verification: | - ./chip-tool colorcontrol read current-x 1 1 - - After 30 Seconds, Verify response contains CurrentX value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666937465.689943][47283:47283] CHIP:DMG: { - [1666937465.689946][47283:47283] CHIP:DMG: AttributeReportIBs = - [1666937465.689952][47283:47283] CHIP:DMG: [ - [1666937465.689955][47283:47283] CHIP:DMG: AttributeReportIB = - [1666937465.689962][47283:47283] CHIP:DMG: { - [1666937465.689965][47283:47283] CHIP:DMG: AttributeDataIB = - [1666937465.689970][47283:47283] CHIP:DMG: { - [1666937465.689975][47283:47283] CHIP:DMG: DataVersion = 0xd5f334b2, - [1666937465.689981][47283:47283] CHIP:DMG: AttributePathIB = - [1666937465.689985][47283:47283] CHIP:DMG: { - [1666937465.689990][47283:47283] CHIP:DMG: Endpoint = 0x1, - [1666937465.689995][47283:47283] CHIP:DMG: Cluster = 0x300, - [1666937465.690001][47283:47283] CHIP:DMG: Attribute = 0x0000_0003, - [1666937465.690006][47283:47283] CHIP:DMG: } - [1666937465.690011][47283:47283] CHIP:DMG: - [1666937465.690017][47283:47283] CHIP:DMG: Data = 400, - [1666937465.690021][47283:47283] CHIP:DMG: }, - [1666937465.690027][47283:47283] CHIP:DMG: - [1666937465.690029][47283:47283] CHIP:DMG: }, - [1666937465.690033][47283:47283] CHIP:DMG: - [1666937465.690036][47283:47283] CHIP:DMG: ], - [1666937465.690041][47283:47283] CHIP:DMG: - [1666937465.690045][47283:47283] CHIP:DMG: SuppressResponse = true, - [1666937465.690049][47283:47283] CHIP:DMG: InteractionModelRevision = 1 - [1666937465.690053][47283:47283] CHIP:DMG: } - - ./chip-tool colorcontrol read current-y 1 1 - - After 30 Seconds, Verify response contains a CurrentY value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666937453.573485][47283:47283] CHIP:DMG: { - [1666937453.573488][47283:47283] CHIP:DMG: AttributeReportIBs = - [1666937453.573494][47283:47283] CHIP:DMG: [ - [1666937453.573496][47283:47283] CHIP:DMG: AttributeReportIB = - [1666937453.573501][47283:47283] CHIP:DMG: { - [1666937453.573504][47283:47283] CHIP:DMG: AttributeDataIB = - [1666937453.573508][47283:47283] CHIP:DMG: { - [1666937453.573512][47283:47283] CHIP:DMG: DataVersion = 0xd5f334b2, - [1666937453.573514][47283:47283] CHIP:DMG: AttributePathIB = - [1666937453.573518][47283:47283] CHIP:DMG: { - [1666937453.573523][47283:47283] CHIP:DMG: Endpoint = 0x1, - [1666937453.573527][47283:47283] CHIP:DMG: Cluster = 0x300, - [1666937453.573533][47283:47283] CHIP:DMG: Attribute = 0x0000_0004, - [1666937453.573536][47283:47283] CHIP:DMG: } - [1666937453.573541][47283:47283] CHIP:DMG: - [1666937453.573544][47283:47283] CHIP:DMG: Data = 500, - [1666937453.573548][47283:47283] CHIP:DMG: }, - [1666937453.573553][47283:47283] CHIP:DMG: - [1666937453.573556][47283:47283] CHIP:DMG: }, - [1666937453.573561][47283:47283] CHIP:DMG: - [1666937453.573564][47283:47283] CHIP:DMG: ], - [1666937453.573568][47283:47283] CHIP:DMG: - [1666937453.573571][47283:47283] CHIP:DMG: SuppressResponse = true, - [1666937453.573573][47283:47283] CHIP:DMG: InteractionModelRevision = 1 - [1666937453.573576][47283:47283] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveColor command to TH" - PICS: CC.C.C08.Tx - verification: | - ./chip-tool colorcontrol move-color 10 20 0 0 1 1 - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666934658.164192][27709:27709] CHIP:DMG: { - [1666934658.164196][27709:27709] CHIP:DMG: suppressResponse = false, - [1666934658.164199][27709:27709] CHIP:DMG: InvokeResponseIBs = - [1666934658.164205][27709:27709] CHIP:DMG: [ - [1666934658.164208][27709:27709] CHIP:DMG: InvokeResponseIB = - [1666934658.164214][27709:27709] CHIP:DMG: { - [1666934658.164218][27709:27709] CHIP:DMG: CommandStatusIB = - [1666934658.164224][27709:27709] CHIP:DMG: { - [1666934658.164228][27709:27709] CHIP:DMG: CommandPathIB = - [1666934658.164232][27709:27709] CHIP:DMG: { - [1666934658.164237][27709:27709] CHIP:DMG: EndpointId = 0x1, - [1666934658.164241][27709:27709] CHIP:DMG: ClusterId = 0x300, - [1666934658.164246][27709:27709] CHIP:DMG: CommandId = 0x8, - [1666934658.164250][27709:27709] CHIP:DMG: }, - [1666934658.164257][27709:27709] CHIP:DMG: - [1666934658.164260][27709:27709] CHIP:DMG: StatusIB = - [1666934658.164264][27709:27709] CHIP:DMG: { - [1666934658.164270][27709:27709] CHIP:DMG: status = 0x00 (SUCCESS), - [1666934658.164273][27709:27709] CHIP:DMG: }, - [1666934658.164277][27709:27709] CHIP:DMG: - [1666934658.164281][27709:27709] CHIP:DMG: }, - [1666934658.164287][27709:27709] CHIP:DMG: - [1666934658.164291][27709:27709] CHIP:DMG: }, - [1666934658.164297][27709:27709] CHIP:DMG: - [1666934658.164299][27709:27709] CHIP:DMG: ], - [1666934658.164305][27709:27709] CHIP:DMG: - [1666934658.164309][27709:27709] CHIP:DMG: InteractionModelRevision = 1 - [1666934658.164312][27709:27709] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentX and CurrentY attributes from TH (potentially - multiple times)" - PICS: CC.C.C08.Tx && CC.C.A0003 && CC.C.A0004 - verification: | - ./chip-tool colorcontrol read current-x 1 1 - - After 10 seconds, Verify response contains CurrentX value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948520.819763][52742:52742] CHIP:DMG: { - [1666948520.819766][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948520.819772][52742:52742] CHIP:DMG: [ - [1666948520.819775][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948520.819780][52742:52742] CHIP:DMG: { - [1666948520.819783][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948520.819787][52742:52742] CHIP:DMG: { - [1666948520.819791][52742:52742] CHIP:DMG: DataVersion = 0x2b8892f5, - [1666948520.819794][52742:52742] CHIP:DMG: AttributePathIB = - [1666948520.819798][52742:52742] CHIP:DMG: { - [1666948520.819804][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948520.819816][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948520.819820][52742:52742] CHIP:DMG: Attribute = 0x0000_0003, - [1666948520.819824][52742:52742] CHIP:DMG: } - [1666948520.819828][52742:52742] CHIP:DMG: - [1666948520.819833][52742:52742] CHIP:DMG: Data = 500, - [1666948520.819835][52742:52742] CHIP:DMG: }, - [1666948520.819840][52742:52742] CHIP:DMG: - [1666948520.819843][52742:52742] CHIP:DMG: }, - [1666948520.819851][52742:52742] CHIP:DMG: - [1666948520.819854][52742:52742] CHIP:DMG: ], - [1666948520.819859][52742:52742] CHIP:DMG: - [1666948520.819863][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948520.819867][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948520.819870][52742:52742] CHIP:DMG: - - ./chip-tool colorcontrol read current-y 1 1 - - After 10 seconds, Verify response contains CurrentY value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948542.982566][52742:52742] CHIP:DMG: { - [1666948542.982570][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948542.982576][52742:52742] CHIP:DMG: [ - [1666948542.982579][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948542.982586][52742:52742] CHIP:DMG: { - [1666948542.982590][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948542.982594][52742:52742] CHIP:DMG: { - [1666948542.982598][52742:52742] CHIP:DMG: DataVersion = 0x2b889669, - [1666948542.982603][52742:52742] CHIP:DMG: AttributePathIB = - [1666948542.982607][52742:52742] CHIP:DMG: { - [1666948542.982612][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948542.982617][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948542.982622][52742:52742] CHIP:DMG: Attribute = 0x0000_0004, - [1666948542.982627][52742:52742] CHIP:DMG: } - [1666948542.982632][52742:52742] CHIP:DMG: - [1666948542.982638][52742:52742] CHIP:DMG: Data = 700, - [1666948542.982646][52742:52742] CHIP:DMG: }, - [1666948542.982650][52742:52742] CHIP:DMG: - [1666948542.982653][52742:52742] CHIP:DMG: }, - [1666948542.982658][52742:52742] CHIP:DMG: - [1666948542.982662][52742:52742] CHIP:DMG: ], - [1666948542.982668][52742:52742] CHIP:DMG: - [1666948542.982671][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948542.982674][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948542.982676][52742:52742] CHIP:DMG: } - disabled: true - - - label: "DUT sends StepColor command to TH" - PICS: CC.C.C09.Tx - verification: | - ./chip-tool colorcontrol step-color 100 100 200 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666948582.730257][52742:52742] CHIP:DMG: { - [1666948582.730259][52742:52742] CHIP:DMG: suppressResponse = false, - [1666948582.730262][52742:52742] CHIP:DMG: InvokeResponseIBs = - [1666948582.730266][52742:52742] CHIP:DMG: [ - [1666948582.730269][52742:52742] CHIP:DMG: InvokeResponseIB = - [1666948582.730274][52742:52742] CHIP:DMG: { - [1666948582.730277][52742:52742] CHIP:DMG: CommandStatusIB = - [1666948582.730280][52742:52742] CHIP:DMG: { - [1666948582.730283][52742:52742] CHIP:DMG: CommandPathIB = - [1666948582.730286][52742:52742] CHIP:DMG: { - [1666948582.730289][52742:52742] CHIP:DMG: EndpointId = 0x1, - [1666948582.730293][52742:52742] CHIP:DMG: ClusterId = 0x300, - [1666948582.730296][52742:52742] CHIP:DMG: CommandId = 0x9, - [1666948582.730302][52742:52742] CHIP:DMG: }, - [1666948582.730307][52742:52742] CHIP:DMG: - [1666948582.730310][52742:52742] CHIP:DMG: StatusIB = - [1666948582.730314][52742:52742] CHIP:DMG: { - [1666948582.730318][52742:52742] CHIP:DMG: status = 0x00 (SUCCESS), - [1666948582.730321][52742:52742] CHIP:DMG: }, - [1666948582.730324][52742:52742] CHIP:DMG: - [1666948582.730326][52742:52742] CHIP:DMG: }, - [1666948582.730331][52742:52742] CHIP:DMG: - [1666948582.730334][52742:52742] CHIP:DMG: }, - [1666948582.730339][52742:52742] CHIP:DMG: - [1666948582.730341][52742:52742] CHIP:DMG: ], - [1666948582.730345][52742:52742] CHIP:DMG: - [1666948582.730348][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948582.730351][52742:52742] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentX and CurrentY attributes from TH (potentially - multiple times)" - PICS: CC.C.C09.Tx && CC.C.A0003 && CC.C.A0004 - verification: | - ./chip-tool colorcontrol read current-x 1 1 - - - After 20 Seconds, Verify response contains a CurrentX value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948591.930750][52742:52742] CHIP:DMG: { - [1666948591.930752][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948591.930757][52742:52742] CHIP:DMG: [ - [1666948591.930760][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948591.930764][52742:52742] CHIP:DMG: { - [1666948591.930767][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948591.930770][52742:52742] CHIP:DMG: { - [1666948591.930774][52742:52742] CHIP:DMG: DataVersion = 0x2b889e06, - [1666948591.930777][52742:52742] CHIP:DMG: AttributePathIB = - [1666948591.930780][52742:52742] CHIP:DMG: { - [1666948591.930787][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948591.930790][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948591.930796][52742:52742] CHIP:DMG: Attribute = 0x0000_0003, - [1666948591.930799][52742:52742] CHIP:DMG: } - [1666948591.930805][52742:52742] CHIP:DMG: - [1666948591.930808][52742:52742] CHIP:DMG: Data = 600, - [1666948591.930812][52742:52742] CHIP:DMG: }, - [1666948591.930816][52742:52742] CHIP:DMG: - [1666948591.930819][52742:52742] CHIP:DMG: }, - [1666948591.930824][52742:52742] CHIP:DMG: - [1666948591.930827][52742:52742] CHIP:DMG: ], - [1666948591.930831][52742:52742] CHIP:DMG: - [1666948591.930834][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948591.930837][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948591.930839][52742:52742] CHIP:DMG: } - - - ./chip-tool colorcontrol read current-y 1 1 - - After 20 Seconds, Verify response contains a CurrentY value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948667.570081][52742:52742] CHIP:DMG: { - [1666948667.570084][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948667.570089][52742:52742] CHIP:DMG: [ - [1666948667.570092][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948667.570097][52742:52742] CHIP:DMG: { - [1666948667.570100][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948667.570103][52742:52742] CHIP:DMG: { - [1666948667.570107][52742:52742] CHIP:DMG: DataVersion = 0x2b889fba, - [1666948667.570110][52742:52742] CHIP:DMG: AttributePathIB = - [1666948667.570115][52742:52742] CHIP:DMG: { - [1666948667.570118][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948667.570124][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948667.570127][52742:52742] CHIP:DMG: Attribute = 0x0000_0004, - [1666948667.570132][52742:52742] CHIP:DMG: } - [1666948667.570137][52742:52742] CHIP:DMG: - [1666948667.570141][52742:52742] CHIP:DMG: Data = 800, - [1666948667.570143][52742:52742] CHIP:DMG: }, - [1666948667.570147][52742:52742] CHIP:DMG: - [1666948667.570150][52742:52742] CHIP:DMG: }, - [1666948667.570155][52742:52742] CHIP:DMG: - [1666948667.570158][52742:52742] CHIP:DMG: ], - [1666948667.570163][52742:52742] CHIP:DMG: - [1666948667.570166][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948667.570169][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948667.570171][52742:52742] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666948695.762310][52742:52742] CHIP:DMG: { - [1666948695.762313][52742:52742] CHIP:DMG: suppressResponse = false, - [1666948695.762316][52742:52742] CHIP:DMG: InvokeResponseIBs = - [1666948695.762322][52742:52742] CHIP:DMG: [ - [1666948695.762325][52742:52742] CHIP:DMG: InvokeResponseIB = - [1666948695.762332][52742:52742] CHIP:DMG: { - [1666948695.762335][52742:52742] CHIP:DMG: CommandStatusIB = - [1666948695.762340][52742:52742] CHIP:DMG: { - [1666948695.762344][52742:52742] CHIP:DMG: CommandPathIB = - [1666948695.762349][52742:52742] CHIP:DMG: { - [1666948695.762354][52742:52742] CHIP:DMG: EndpointId = 0x1, - [1666948695.762358][52742:52742] CHIP:DMG: ClusterId = 0x300, - [1666948695.762364][52742:52742] CHIP:DMG: CommandId = 0x47, - [1666948695.762368][52742:52742] CHIP:DMG: }, - [1666948695.762375][52742:52742] CHIP:DMG: - [1666948695.762379][52742:52742] CHIP:DMG: StatusIB = - [1666948695.762383][52742:52742] CHIP:DMG: { - [1666948695.762389][52742:52742] CHIP:DMG: status = 0x00 (SUCCESS), - [1666948695.762393][52742:52742] CHIP:DMG: }, - [1666948695.762399][52742:52742] CHIP:DMG: - [1666948695.762404][52742:52742] CHIP:DMG: }, - [1666948695.762409][52742:52742] CHIP:DMG: - [1666948695.762413][52742:52742] CHIP:DMG: }, - [1666948695.762418][52742:52742] CHIP:DMG: - [1666948695.762422][52742:52742] CHIP:DMG: ], - [1666948695.762428][52742:52742] CHIP:DMG: - [1666948695.762431][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948695.762435][52742:52742] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads CurrentX and CurrentY attributes from TH (potentially - multiple times)" - PICS: CC.C.C47.Tx && CC.C.A0003 && CC.C.A0004 - verification: | - ./chip-tool colorcontrol read current-x 1 1 - - Verify response contains CurrentX value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948762.408750][52742:52742] CHIP:DMG: { - [1666948762.408753][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948762.408758][52742:52742] CHIP:DMG: [ - [1666948762.408761][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948762.408767][52742:52742] CHIP:DMG: { - [1666948762.408770][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948762.408774][52742:52742] CHIP:DMG: { - [1666948762.408778][52742:52742] CHIP:DMG: DataVersion = 0x2b889fba, - [1666948762.408781][52742:52742] CHIP:DMG: AttributePathIB = - [1666948762.408784][52742:52742] CHIP:DMG: { - [1666948762.408788][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948762.408793][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948762.408797][52742:52742] CHIP:DMG: Attribute = 0x0000_0003, - [1666948762.408800][52742:52742] CHIP:DMG: } - [1666948762.408805][52742:52742] CHIP:DMG: - [1666948762.408809][52742:52742] CHIP:DMG: Data = 600, - [1666948762.408812][52742:52742] CHIP:DMG: }, - [1666948762.408818][52742:52742] CHIP:DMG: - [1666948762.408821][52742:52742] CHIP:DMG: }, - [1666948762.408825][52742:52742] CHIP:DMG: - [1666948762.408828][52742:52742] CHIP:DMG: ], - [1666948762.408833][52742:52742] CHIP:DMG: - [1666948762.408837][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948762.408839][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948762.408842][52742:52742] CHIP:DMG: } - - - ./chip-tool colorcontrol read current-y 1 1 - - Verify response contains CurrentY value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948770.658007][52742:52742] CHIP:DMG: { - [1666948770.658010][52742:52742] CHIP:DMG: AttributeReportIBs = - [1666948770.658017][52742:52742] CHIP:DMG: [ - [1666948770.658021][52742:52742] CHIP:DMG: AttributeReportIB = - [1666948770.658029][52742:52742] CHIP:DMG: { - [1666948770.658033][52742:52742] CHIP:DMG: AttributeDataIB = - [1666948770.658038][52742:52742] CHIP:DMG: { - [1666948770.658043][52742:52742] CHIP:DMG: DataVersion = 0x2b889fba, - [1666948770.658050][52742:52742] CHIP:DMG: AttributePathIB = - [1666948770.658055][52742:52742] CHIP:DMG: { - [1666948770.658060][52742:52742] CHIP:DMG: Endpoint = 0x1, - [1666948770.658068][52742:52742] CHIP:DMG: Cluster = 0x300, - [1666948770.658073][52742:52742] CHIP:DMG: Attribute = 0x0000_0004, - [1666948770.658079][52742:52742] CHIP:DMG: } - [1666948770.658086][52742:52742] CHIP:DMG: - [1666948770.658092][52742:52742] CHIP:DMG: Data = 800, - [1666948770.658096][52742:52742] CHIP:DMG: }, - [1666948770.658105][52742:52742] CHIP:DMG: - [1666948770.658110][52742:52742] CHIP:DMG: }, - [1666948770.658116][52742:52742] CHIP:DMG: - [1666948770.658120][52742:52742] CHIP:DMG: ], - [1666948770.658127][52742:52742] CHIP:DMG: - [1666948770.658131][52742:52742] CHIP:DMG: SuppressResponse = true, - [1666948770.658136][52742:52742] CHIP:DMG: InteractionModelRevision = 1 - [1666948770.658140][52742:52742] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_4_Simulated.yaml new file mode 100644 index 00000000000000..dcae56a5d9c56e --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_5_4_Simulated.yaml @@ -0,0 +1,166 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 25.3.13. [TC-CC-5.4] Color functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + timeout: 500 + endpoint: 1 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends MoveToColor command to TH" + PICS: CC.C.C07.Tx && CC.C.F03 + wait: "MoveToColor" + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C07.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C07.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C07.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C07.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "DUT sends MoveColor command to TH" + PICS: CC.C.C08.Tx && CC.C.F03 + wait: "MoveColor" + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C08.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C08.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C08.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C08.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "DUT sends StepColor command to TH" + PICS: CC.C.C09.Tx + wait: "StepColor" + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C09.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C09.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C09.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C09.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "DUT sends StopMoveStep command to TH" + PICS: CC.C.C47.Tx + wait: "StopMoveStep" + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: "DUT reads CurrentY attribute from TH(potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: "DUT reads CurrentX attribute from TH(potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0003 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentX" + + - label: + "DUT reads CurrentY attribute from ConfiguredTime: type: int16u + defaultValue: 30000TH(potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0004 && CC.C.F03 + wait: "readAttribute" + attribute: "CurrentY" diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml deleted file mode 100644 index 7f56af96c79ea2..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml +++ /dev/null @@ -1,445 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.17. [TC-CC-6.4] Color Temperature functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Precondition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F04(CT) - disabled: true - - - label: - "* TH provides a server implementation of Color Control with - F04(CT)=true and reasonable values of ColorTempPhysicalMinMireds (e.g. - 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) * DUT might - read attributes like ColorTempPhysicalMinMireds, - ColorTempPhysicalMaxMireds from TH (now or in later steps) to use - those." - verification: | - ./chip-tool colorcontrol read color-temp-physical-min-mireds 1 1 - - - Verify response contains ColorTempPhysicalMinMireds in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666938560.591915][48087:48087] CHIP:DMG: { - [1666938560.591917][48087:48087] CHIP:DMG: AttributeReportIBs = - [1666938560.591922][48087:48087] CHIP:DMG: [ - [1666938560.591925][48087:48087] CHIP:DMG: AttributeReportIB = - [1666938560.591930][48087:48087] CHIP:DMG: { - [1666938560.591933][48087:48087] CHIP:DMG: AttributeDataIB = - [1666938560.591936][48087:48087] CHIP:DMG: { - [1666938560.591939][48087:48087] CHIP:DMG: DataVersion = 0x184221a8, - [1666938560.591943][48087:48087] CHIP:DMG: AttributePathIB = - [1666938560.591947][48087:48087] CHIP:DMG: { - [1666938560.591950][48087:48087] CHIP:DMG: Endpoint = 0x1, - [1666938560.591954][48087:48087] CHIP:DMG: Cluster = 0x300, - [1666938560.591959][48087:48087] CHIP:DMG: Attribute = 0x0000_400B, - [1666938560.591963][48087:48087] CHIP:DMG: } - [1666938560.591968][48087:48087] CHIP:DMG: - [1666938560.591973][48087:48087] CHIP:DMG: Data = 0, - [1666938560.591976][48087:48087] CHIP:DMG: }, - [1666938560.591980][48087:48087] CHIP:DMG: - [1666938560.591983][48087:48087] CHIP:DMG: }, - [1666938560.591987][48087:48087] CHIP:DMG: - [1666938560.591990][48087:48087] CHIP:DMG: ], - [1666938560.591995][48087:48087] CHIP:DMG: - [1666938560.591997][48087:48087] CHIP:DMG: SuppressResponse = true, - [1666938560.592000][48087:48087] CHIP:DMG: InteractionModelRevision = 1 - [1666938560.592002][48087:48087] CHIP:DMG: } - - ./chip-tool colorcontrol read color-temp-physical-max-mireds 1 1 - - - Verify response contains an ColorTempPhysicalMaxMireds in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666938672.872078][48087:48087] CHIP:DMG: { - [1666938672.872081][48087:48087] CHIP:DMG: AttributeReportIBs = - [1666938672.872088][48087:48087] CHIP:DMG: [ - [1666938672.872092][48087:48087] CHIP:DMG: AttributeReportIB = - [1666938672.872097][48087:48087] CHIP:DMG: { - [1666938672.872102][48087:48087] CHIP:DMG: AttributeDataIB = - [1666938672.872107][48087:48087] CHIP:DMG: { - [1666938672.872113][48087:48087] CHIP:DMG: DataVersion = 0x184221a8, - [1666938672.872117][48087:48087] CHIP:DMG: AttributePathIB = - [1666938672.872123][48087:48087] CHIP:DMG: { - [1666938672.872127][48087:48087] CHIP:DMG: Endpoint = 0x1, - [1666938672.872132][48087:48087] CHIP:DMG: Cluster = 0x300, - [1666938672.872137][48087:48087] CHIP:DMG: Attribute = 0x0000_400C, - [1666938672.872143][48087:48087] CHIP:DMG: } - [1666938672.872148][48087:48087] CHIP:DMG: - [1666938672.872154][48087:48087] CHIP:DMG: Data = 65279, - [1666938672.872158][48087:48087] CHIP:DMG: }, - [1666938672.872163][48087:48087] CHIP:DMG: - [1666938672.872167][48087:48087] CHIP:DMG: }, - [1666938672.872172][48087:48087] CHIP:DMG: - [1666938672.872175][48087:48087] CHIP:DMG: ], - [1666938672.872182][48087:48087] CHIP:DMG: - [1666938672.872185][48087:48087] CHIP:DMG: SuppressResponse = true, - [1666938672.872188][48087:48087] CHIP:DMG: InteractionModelRevision = 1 - [1666938672.872190][48087:48087] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveToColorTemperature command to TH" - PICS: CC.C.C0a.Tx - verification: | - ./chip-tool colorcontrol move-to-color-temperature 150 300 0 0 1 1 - - - Verify response contains ColorTemperatureMireds in TH(all-clusters-app) Logs: - InvokeRequestMessage = - [1666938707.093236][48087:48087] CHIP:DMG: { - [1666938707.093240][48087:48087] CHIP:DMG: suppressResponse = false, - [1666938707.093245][48087:48087] CHIP:DMG: timedRequest = false, - [1666938707.093249][48087:48087] CHIP:DMG: InvokeRequests = - [1666938707.093258][48087:48087] CHIP:DMG: [ - [1666938707.093262][48087:48087] CHIP:DMG: CommandDataIB = - [1666938707.093267][48087:48087] CHIP:DMG: { - [1666938707.093272][48087:48087] CHIP:DMG: CommandPathIB = - [1666938707.093277][48087:48087] CHIP:DMG: { - [1666938707.093282][48087:48087] CHIP:DMG: EndpointId = 0x1, - [1666938707.093287][48087:48087] CHIP:DMG: ClusterId = 0x300, - [1666938707.093292][48087:48087] CHIP:DMG: CommandId = 0xa, - [1666938707.093296][48087:48087] CHIP:DMG: }, - [1666938707.093302][48087:48087] CHIP:DMG: - [1666938707.093306][48087:48087] CHIP:DMG: CommandFields = - [1666938707.093311][48087:48087] CHIP:DMG: { - [1666938707.093318][48087:48087] CHIP:DMG: 0x0 = 150, - [1666938707.093323][48087:48087] CHIP:DMG: 0x1 = 300, - [1666938707.093328][48087:48087] CHIP:DMG: 0x2 = 0, - [1666938707.093333][48087:48087] CHIP:DMG: 0x3 = 0, - [1666938707.093338][48087:48087] CHIP:DMG: }, - [1666938707.093341][48087:48087] CHIP:DMG: }, - [1666938707.093349][48087:48087] CHIP:DMG: - [1666938707.093354][48087:48087] CHIP:DMG: ], - [1666938707.093361][48087:48087] CHIP:DMG: - [1666938707.093365][48087:48087] CHIP:DMG: InteractionModelRevision = 1 - [1666938707.093369][48087:48087] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads ColorTemperatureMired attribute from TH (potentially - multiple times)" - PICS: CC.C.C0a.Tx && CC.C.A0007 - verification: | - ./chip-tool colorcontrol read color-temperature-mireds 1 1 - - - After 30s, Verify response contains ColorTemperatureMireds value same as step 2a in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947907.661931][52495:52495] CHIP:DMG: { - [1666947907.661934][52495:52495] CHIP:DMG: AttributeReportIBs = - [1666947907.661940][52495:52495] CHIP:DMG: [ - [1666947907.661945][52495:52495] CHIP:DMG: AttributeReportIB = - [1666947907.661952][52495:52495] CHIP:DMG: { - [1666947907.661957][52495:52495] CHIP:DMG: AttributeDataIB = - [1666947907.661961][52495:52495] CHIP:DMG: { - [1666947907.661966][52495:52495] CHIP:DMG: DataVersion = 0x7dbacdb5, - [1666947907.661971][52495:52495] CHIP:DMG: AttributePathIB = - [1666947907.661975][52495:52495] CHIP:DMG: { - [1666947907.661980][52495:52495] CHIP:DMG: Endpoint = 0x1, - [1666947907.661985][52495:52495] CHIP:DMG: Cluster = 0x300, - [1666947907.661990][52495:52495] CHIP:DMG: Attribute = 0x0000_0007, - [1666947907.661994][52495:52495] CHIP:DMG: } - [1666947907.661999][52495:52495] CHIP:DMG: - [1666947907.662004][52495:52495] CHIP:DMG: Data = 150, - [1666947907.662009][52495:52495] CHIP:DMG: }, - [1666947907.662015][52495:52495] CHIP:DMG: - [1666947907.662019][52495:52495] CHIP:DMG: }, - [1666947907.662025][52495:52495] CHIP:DMG: - [1666947907.662028][52495:52495] CHIP:DMG: ], - [1666947907.662034][52495:52495] CHIP:DMG: - [1666947907.662038][52495:52495] CHIP:DMG: SuppressResponse = true, - [1666947907.662042][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666947907.662045][52495:52495] CHIP:DMG: } - disabled: true - - - label: "DUT sends MoveColorTemperature command to TH" - PICS: CC.C.C4b.Tx - verification: | - ./chip-tool colorcontrol move-color-temperature 1 16319 0 65279 0 0 1 1 - - Verify response contains ColorTemperatureMireds in TH(all-clusters-app) Logs: - - InvokeRequestMessage = - [1666947955.621548][52495:52495] CHIP:DMG: { - [1666947955.621551][52495:52495] CHIP:DMG: suppressResponse = false, - [1666947955.621555][52495:52495] CHIP:DMG: timedRequest = false, - [1666947955.621559][52495:52495] CHIP:DMG: InvokeRequests = - [1666947955.621565][52495:52495] CHIP:DMG: [ - [1666947955.621568][52495:52495] CHIP:DMG: CommandDataIB = - [1666947955.621572][52495:52495] CHIP:DMG: { - [1666947955.621575][52495:52495] CHIP:DMG: CommandPathIB = - [1666947955.621578][52495:52495] CHIP:DMG: { - [1666947955.621584][52495:52495] CHIP:DMG: EndpointId = 0x1, - [1666947955.621588][52495:52495] CHIP:DMG: ClusterId = 0x300, - [1666947955.621593][52495:52495] CHIP:DMG: CommandId = 0x4b, - [1666947955.621596][52495:52495] CHIP:DMG: }, - [1666947955.621601][52495:52495] CHIP:DMG: - [1666947955.621604][52495:52495] CHIP:DMG: CommandFields = - [1666947955.621608][52495:52495] CHIP:DMG: { - [1666947955.621611][52495:52495] CHIP:DMG: 0x0 = 1, - [1666947955.621615][52495:52495] CHIP:DMG: 0x1 = 16319, - [1666947955.621618][52495:52495] CHIP:DMG: 0x2 = 0, - [1666947955.621622][52495:52495] CHIP:DMG: 0x3 = 65279, - [1666947955.621627][52495:52495] CHIP:DMG: 0x4 = 0, - [1666947955.621630][52495:52495] CHIP:DMG: 0x5 = 0, - [1666947955.621637][52495:52495] CHIP:DMG: }, - [1666947955.621639][52495:52495] CHIP:DMG: }, - [1666947955.621645][52495:52495] CHIP:DMG: - [1666947955.621648][52495:52495] CHIP:DMG: ], - [1666947955.621653][52495:52495] CHIP:DMG: - [1666947955.621656][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666947955.621658][52495:52495] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads ColorTemperatureMired attribute from TH (potentially - multiple times)" - PICS: CC.C.C4b.Tx && CC.C.A0007 - verification: | - ./chip-tool colorcontrol read color-temperature-mireds 1 1 - - After 10 Seconds, Verify response contains ColorTemperatureMireds value same as step 3a in TH(all-clusters-app) Logs: - [ReportDataMessage = - [1666947999.628386][52495:52495] CHIP:DMG: { - [1666947999.628389][52495:52495] CHIP:DMG: AttributeReportIBs = - [1666947999.628394][52495:52495] CHIP:DMG: [ - [1666947999.628397][52495:52495] CHIP:DMG: AttributeReportIB = - [1666947999.628402][52495:52495] CHIP:DMG: { - [1666947999.628405][52495:52495] CHIP:DMG: AttributeDataIB = - [1666947999.628408][52495:52495] CHIP:DMG: { - [1666947999.628413][52495:52495] CHIP:DMG: DataVersion = 0x7dbace04, - [1666947999.628419][52495:52495] CHIP:DMG: AttributePathIB = - [1666947999.628423][52495:52495] CHIP:DMG: { - [1666947999.628427][52495:52495] CHIP:DMG: Endpoint = 0x1, - [1666947999.628430][52495:52495] CHIP:DMG: Cluster = 0x300, - [1666947999.628433][52495:52495] CHIP:DMG: Attribute = 0x0000_0007, - [1666947999.628437][52495:52495] CHIP:DMG: } - [1666947999.628441][52495:52495] CHIP:DMG: - [1666947999.628445][52495:52495] CHIP:DMG: Data = 65279, - [1666947999.628447][52495:52495] CHIP:DMG: }, - [1666947999.628452][52495:52495] CHIP:DMG: - [1666947999.628454][52495:52495] CHIP:DMG: }, - [1666947999.628459][52495:52495] CHIP:DMG: - [1666947999.628462][52495:52495] CHIP:DMG: ], - [1666947999.628466][52495:52495] CHIP:DMG: - [1666947999.628470][52495:52495] CHIP:DMG: SuppressResponse = true, - [1666947999.628473][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666947999.628475][52495:52495] CHIP:DMG: } - disabled: true - - - label: "DUT sends StepColorTemperature command to TH" - PICS: CC.C.C4c.Tx - verification: | - ./chip-tool colorcontrol step-color-temperature 1 32639 200 0 65279 0 0 1 1 - - Verify the all fields are within their allowed bounds in CommandFields on TH(all-clusters-app) Logs: - - InvokeRequestMessage = - [1666948023.234384][52495:52495] CHIP:DMG: { - [1666948023.234387][52495:52495] CHIP:DMG: suppressResponse = false, - [1666948023.234391][52495:52495] CHIP:DMG: timedRequest = false, - [1666948023.234393][52495:52495] CHIP:DMG: InvokeRequests = - [1666948023.234398][52495:52495] CHIP:DMG: [ - [1666948023.234401][52495:52495] CHIP:DMG: CommandDataIB = - [1666948023.234405][52495:52495] CHIP:DMG: { - [1666948023.234408][52495:52495] CHIP:DMG: CommandPathIB = - [1666948023.234412][52495:52495] CHIP:DMG: { - [1666948023.234415][52495:52495] CHIP:DMG: EndpointId = 0x1, - [1666948023.234420][52495:52495] CHIP:DMG: ClusterId = 0x300, - [1666948023.234424][52495:52495] CHIP:DMG: CommandId = 0x4c, - [1666948023.234427][52495:52495] CHIP:DMG: }, - [1666948023.234431][52495:52495] CHIP:DMG: - [1666948023.234434][52495:52495] CHIP:DMG: CommandFields = - [1666948023.234438][52495:52495] CHIP:DMG: { - [1666948023.234442][52495:52495] CHIP:DMG: 0x0 = 1, - [1666948023.234446][52495:52495] CHIP:DMG: 0x1 = 32639, - [1666948023.234450][52495:52495] CHIP:DMG: 0x2 = 200, - [1666948023.234457][52495:52495] CHIP:DMG: 0x3 = 0, - [1666948023.234460][52495:52495] CHIP:DMG: 0x4 = 65279, - [1666948023.234463][52495:52495] CHIP:DMG: 0x5 = 0, - [1666948023.234467][52495:52495] CHIP:DMG: 0x6 = 0, - [1666948023.234471][52495:52495] CHIP:DMG: }, - [1666948023.234474][52495:52495] CHIP:DMG: }, - [1666948023.234482][52495:52495] CHIP:DMG: - [1666948023.234484][52495:52495] CHIP:DMG: ], - [1666948023.234490][52495:52495] CHIP:DMG: - [1666948023.234493][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666948023.234496][52495:52495] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads ColorTemperatureMired attribute from TH (potentially - multiple times)" - PICS: CC.C.C4c.Tx & CC.C.A0007 - verification: | - ./chip-tool colorcontrol read color-temperature-mireds 1 1 - After 20 Seconds, Verify response contains an ColorTemperatureMireds value same as step 4a in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948066.695666][52495:52495] CHIP:DMG: { - [1666948066.695669][52495:52495] CHIP:DMG: AttributeReportIBs = - [1666948066.695676][52495:52495] CHIP:DMG: [ - [1666948066.695680][52495:52495] CHIP:DMG: AttributeReportIB = - [1666948066.695689][52495:52495] CHIP:DMG: { - [1666948066.695692][52495:52495] CHIP:DMG: AttributeDataIB = - [1666948066.695696][52495:52495] CHIP:DMG: { - [1666948066.695700][52495:52495] CHIP:DMG: DataVersion = 0x7dbacf95, - [1666948066.695703][52495:52495] CHIP:DMG: AttributePathIB = - [1666948066.695707][52495:52495] CHIP:DMG: { - [1666948066.695712][52495:52495] CHIP:DMG: Endpoint = 0x1, - [1666948066.695716][52495:52495] CHIP:DMG: Cluster = 0x300, - [1666948066.695722][52495:52495] CHIP:DMG: Attribute = 0x0000_0007, - [1666948066.695725][52495:52495] CHIP:DMG: } - [1666948066.695730][52495:52495] CHIP:DMG: - [1666948066.695734][52495:52495] CHIP:DMG: Data = 65279, - [1666948066.695736][52495:52495] CHIP:DMG: }, - [1666948066.695741][52495:52495] CHIP:DMG: - [1666948066.695744][52495:52495] CHIP:DMG: }, - [1666948066.695748][52495:52495] CHIP:DMG: - [1666948066.695751][52495:52495] CHIP:DMG: ], - [1666948066.695756][52495:52495] CHIP:DMG: - [1666948066.695760][52495:52495] CHIP:DMG: SuppressResponse = true, - [1666948066.695763][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666948066.695766][52495:52495] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - Verify the all fields are within their allowed bounds in CommandFields on TH(all-clusters-app) Logs: - - - InvokeRequestMessage = - [1666948096.448918][52495:52495] CHIP:DMG: { - [1666948096.448922][52495:52495] CHIP:DMG: suppressResponse = false, - [1666948096.448927][52495:52495] CHIP:DMG: timedRequest = false, - [1666948096.448931][52495:52495] CHIP:DMG: InvokeRequests = - [1666948096.448939][52495:52495] CHIP:DMG: [ - [1666948096.448942][52495:52495] CHIP:DMG: CommandDataIB = - [1666948096.448948][52495:52495] CHIP:DMG: { - [1666948096.448953][52495:52495] CHIP:DMG: CommandPathIB = - [1666948096.448958][52495:52495] CHIP:DMG: { - [1666948096.448964][52495:52495] CHIP:DMG: EndpointId = 0x1, - [1666948096.448969][52495:52495] CHIP:DMG: ClusterId = 0x300, - [1666948096.448976][52495:52495] CHIP:DMG: CommandId = 0x47, - [1666948096.448980][52495:52495] CHIP:DMG: }, - [1666948096.448986][52495:52495] CHIP:DMG: - [1666948096.448991][52495:52495] CHIP:DMG: CommandFields = - [1666948096.448997][52495:52495] CHIP:DMG: { - [1666948096.449002][52495:52495] CHIP:DMG: 0x0 = 0, - [1666948096.449007][52495:52495] CHIP:DMG: 0x1 = 0, - [1666948096.449013][52495:52495] CHIP:DMG: }, - [1666948096.449017][52495:52495] CHIP:DMG: }, - [1666948096.449024][52495:52495] CHIP:DMG: - [1666948096.449028][52495:52495] CHIP:DMG: ], - [1666948096.449035][52495:52495] CHIP:DMG: - [1666948096.449039][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666948096.449043][52495:52495] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads ColorTemperatureMired attribute from TH (potentially - multiple times)" - PICS: CC.C.C47.Tx && CC.C.A0007 - verification: | - ./chip-tool colorcontrol read color-temperature-mireds 1 1 - - Verify response contains an ColorTemperatureMireds value same as step 5a in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666948158.878426][52495:52495] CHIP:DMG: { - [1666948158.878428][52495:52495] CHIP:DMG: AttributeReportIBs = - [1666948158.878434][52495:52495] CHIP:DMG: [ - [1666948158.878437][52495:52495] CHIP:DMG: AttributeReportIB = - [1666948158.878442][52495:52495] CHIP:DMG: { - [1666948158.878445][52495:52495] CHIP:DMG: AttributeDataIB = - [1666948158.878448][52495:52495] CHIP:DMG: { - [1666948158.878452][52495:52495] CHIP:DMG: DataVersion = 0x7dbacf95, - [1666948158.878455][52495:52495] CHIP:DMG: AttributePathIB = - [1666948158.878458][52495:52495] CHIP:DMG: { - [1666948158.878462][52495:52495] CHIP:DMG: Endpoint = 0x1, - [1666948158.878465][52495:52495] CHIP:DMG: Cluster = 0x300, - [1666948158.878470][52495:52495] CHIP:DMG: Attribute = 0x0000_0007, - [1666948158.878473][52495:52495] CHIP:DMG: } - [1666948158.878478][52495:52495] CHIP:DMG: - [1666948158.878482][52495:52495] CHIP:DMG: Data = 65279, - [1666948158.878485][52495:52495] CHIP:DMG: }, - [1666948158.878489][52495:52495] CHIP:DMG: - [1666948158.878492][52495:52495] CHIP:DMG: }, - [1666948158.878497][52495:52495] CHIP:DMG: - [1666948158.878499][52495:52495] CHIP:DMG: ], - [1666948158.878505][52495:52495] CHIP:DMG: - [1666948158.878508][52495:52495] CHIP:DMG: SuppressResponse = true, - [1666948158.878511][52495:52495] CHIP:DMG: InteractionModelRevision = 1 - [1666948158.878514][52495:52495] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_4_Simulated.yaml new file mode 100644 index 00000000000000..440eb878716b3c --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_6_4_Simulated.yaml @@ -0,0 +1,151 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 24.3.17. [TC-CC-6.4] Color Temperature functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + timeout: 500 + endpoint: 1 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: + "* TH provides a server implementation of Color Control with + F04(CT)=true and reasonable values of ColorTempPhysicalMinMireds (e.g. + 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read + attribute ColorTempPhysicalMinMireds from TH" + PICS: CC.C.A400b && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTempPhysicalMinMireds" + + - label: + "* TH provides a server implementation of Color Control with + F04(CT)=true and reasonable values of ColorTempPhysicalMinMireds (e.g. + 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read + attribute ColorTempPhysicalMaxMireds from TH" + PICS: CC.C.A400c && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTempPhysicalMaxMireds" + + - label: "DUT sends MoveToColorTemperature command to TH" + PICS: CC.C.C0a.Tx && CC.C.F04 + wait: "MoveToColorTemperature" + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "DUT sends MoveColorTemperatureMireds command to TH" + PICS: CC.C.C4b.Tx && CC.C.F04 + wait: "MoveColorTemperature" + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "DUT sends StepColorTemperature command to TH" + PICS: CC.C.C4c.Tx && CC.C.F04 + wait: "StepColorTemperature" + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" + + - label: "DUT sends StopMoveStep command to TH" + PICS: CC.C.C47.Tx && CC.C.F04 + wait: "StopMoveStep" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads CurrentColorTemperatureMireds attribute from TH + (potentially multiple times)" + PICS: CC.C.C47.Tx && CC.C.A0007 && CC.C.F04 + wait: "readAttribute" + attribute: "ColorTemperatureMireds" diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml deleted file mode 100644 index b37d3b5fa7ec88..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml +++ /dev/null @@ -1,478 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.22. [TC-CC-7.5] Enhanced Hue functionality with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Pre-Condition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F01(EHUE) - disabled: true - - - label: "DUT sends EnhancedMoveToHue command to TH" - PICS: CC.C.C40.Tx - verification: | - ./chip-tool colorcontrol enhanced-move-to-hue 1000 3 200 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666946934.676799][52174:52174] CHIP:DMG: { - [1666946934.676802][52174:52174] CHIP:DMG: suppressResponse = false, - [1666946934.676805][52174:52174] CHIP:DMG: InvokeResponseIBs = - [1666946934.676809][52174:52174] CHIP:DMG: [ - [1666946934.676812][52174:52174] CHIP:DMG: InvokeResponseIB = - [1666946934.676817][52174:52174] CHIP:DMG: { - [1666946934.676820][52174:52174] CHIP:DMG: CommandStatusIB = - [1666946934.676823][52174:52174] CHIP:DMG: { - [1666946934.676826][52174:52174] CHIP:DMG: CommandPathIB = - [1666946934.676830][52174:52174] CHIP:DMG: { - [1666946934.676834][52174:52174] CHIP:DMG: EndpointId = 0x1, - [1666946934.676838][52174:52174] CHIP:DMG: ClusterId = 0x300, - [1666946934.676841][52174:52174] CHIP:DMG: CommandId = 0x40, - [1666946934.676844][52174:52174] CHIP:DMG: }, - [1666946934.676850][52174:52174] CHIP:DMG: - [1666946934.676854][52174:52174] CHIP:DMG: StatusIB = - [1666946934.676858][52174:52174] CHIP:DMG: { - [1666946934.676863][52174:52174] CHIP:DMG: status = 0x00 (SUCCESS), - [1666946934.676866][52174:52174] CHIP:DMG: }, - [1666946934.676870][52174:52174] CHIP:DMG: - [1666946934.676873][52174:52174] CHIP:DMG: }, - [1666946934.676877][52174:52174] CHIP:DMG: - [1666946934.676880][52174:52174] CHIP:DMG: }, - [1666946934.676885][52174:52174] CHIP:DMG: - [1666946934.676887][52174:52174] CHIP:DMG: ], - [1666946934.676891][52174:52174] CHIP:DMG: - [1666946934.676894][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666946934.676898][52174:52174] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple - times)" - PICS: CC.C.C40.Tx && CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - - After 20s, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943789.581293][50952:50952] CHIP:DMG: { - [1666943789.581297][50952:50952] CHIP:DMG: AttributeReportIBs = - [1666943789.581303][50952:50952] CHIP:DMG: [ - [1666943789.581307][50952:50952] CHIP:DMG: AttributeReportIB = - [1666943789.581313][50952:50952] CHIP:DMG: { - [1666943789.581317][50952:50952] CHIP:DMG: AttributeDataIB = - [1666943789.581321][50952:50952] CHIP:DMG: { - [1666943789.581325][50952:50952] CHIP:DMG: DataVersion = 0xa88bfd64, - [1666943789.581330][50952:50952] CHIP:DMG: AttributePathIB = - [1666943789.581335][50952:50952] CHIP:DMG: { - [1666943789.581340][50952:50952] CHIP:DMG: Endpoint = 0x1, - [1666943789.581344][50952:50952] CHIP:DMG: Cluster = 0x300, - [1666943789.581350][50952:50952] CHIP:DMG: Attribute = 0x0000_4000, - [1666943789.581354][50952:50952] CHIP:DMG: } - [1666943789.581360][50952:50952] CHIP:DMG: - [1666943789.581366][50952:50952] CHIP:DMG: Data = 1000, - [1666943789.581370][50952:50952] CHIP:DMG: }, - [1666943789.581376][50952:50952] CHIP:DMG: - [1666943789.581380][50952:50952] CHIP:DMG: }, - [1666943789.581385][50952:50952] CHIP:DMG: - [1666943789.581389][50952:50952] CHIP:DMG: ], - [1666943789.581396][50952:50952] CHIP:DMG: - [1666943789.581398][50952:50952] CHIP:DMG: SuppressResponse = true, - [1666943789.581402][50952:50952] CHIP:DMG: InteractionModelRevision = 1 - [1666943789.581405][50952:50952] CHIP:DMG: } - disabled: true - - - label: "DUT sends EnhancedMoveHue command to TH" - PICS: CC.C.C41.Tx - verification: | - ./chip-tool colorcontrol enhanced-move-hue 0 100 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - - InvokeResponseMessage = - [1666943815.452312][50952:50952] CHIP:DMG: { - [1666943815.452317][50952:50952] CHIP:DMG: suppressResponse = false, - [1666943815.452321][50952:50952] CHIP:DMG: InvokeResponseIBs = - [1666943815.452329][50952:50952] CHIP:DMG: [ - [1666943815.452332][50952:50952] CHIP:DMG: InvokeResponseIB = - [1666943815.452340][50952:50952] CHIP:DMG: { - [1666943815.452345][50952:50952] CHIP:DMG: CommandStatusIB = - [1666943815.452350][50952:50952] CHIP:DMG: { - [1666943815.452355][50952:50952] CHIP:DMG: CommandPathIB = - [1666943815.452360][50952:50952] CHIP:DMG: { - [1666943815.452365][50952:50952] CHIP:DMG: EndpointId = 0x1, - [1666943815.452372][50952:50952] CHIP:DMG: ClusterId = 0x300, - [1666943815.452377][50952:50952] CHIP:DMG: CommandId = 0x41, - [1666943815.452383][50952:50952] CHIP:DMG: }, - [1666943815.452390][50952:50952] CHIP:DMG: - [1666943815.452394][50952:50952] CHIP:DMG: StatusIB = - [1666943815.452399][50952:50952] CHIP:DMG: { - [1666943815.452404][50952:50952] CHIP:DMG: status = 0x00 (SUCCESS), - [1666943815.452409][50952:50952] CHIP:DMG: }, - [1666943815.452414][50952:50952] CHIP:DMG: - [1666943815.452418][50952:50952] CHIP:DMG: }, - [1666943815.452425][50952:50952] CHIP:DMG: - [1666943815.452429][50952:50952] CHIP:DMG: }, - [1666943815.452436][50952:50952] CHIP:DMG: - [1666943815.452440][50952:50952] CHIP:DMG: ], - [1666943815.452448][50952:50952] CHIP:DMG: - [1666943815.452452][50952:50952] CHIP:DMG: InteractionModelRevision = 1 - [1666943815.452456][50952:50952] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads EnhancedCurrentHue attribute (potentially multiple times)" - PICS: CC.C.C41.Tx && CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - After 10 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947043.201089][52174:52174] CHIP:DMG: { - [1666947043.201091][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947043.201096][52174:52174] CHIP:DMG: [ - [1666947043.201098][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947043.201103][52174:52174] CHIP:DMG: { - [1666947043.201106][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947043.201109][52174:52174] CHIP:DMG: { - [1666947043.201113][52174:52174] CHIP:DMG: DataVersion = 0x257527a5, - [1666947043.201115][52174:52174] CHIP:DMG: AttributePathIB = - [1666947043.201119][52174:52174] CHIP:DMG: { - [1666947043.201124][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947043.201127][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947043.201131][52174:52174] CHIP:DMG: Attribute = 0x0000_4000, - [1666947043.201134][52174:52174] CHIP:DMG: } - [1666947043.201138][52174:52174] CHIP:DMG: - [1666947043.201141][52174:52174] CHIP:DMG: Data = 1000, - [1666947043.201144][52174:52174] CHIP:DMG: }, - [1666947043.201148][52174:52174] CHIP:DMG: - [1666947043.201151][52174:52174] CHIP:DMG: }, - [1666947043.201156][52174:52174] CHIP:DMG: - [1666947043.201158][52174:52174] CHIP:DMG: ], - [1666947043.201163][52174:52174] CHIP:DMG: - [1666947043.201166][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947043.201168][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947043.201170][52174:52174] CHIP:DMG: } - [1666947043.201172][52174:52174] CHIP:DMG: - disabled: true - - - label: "DUT sends EnhancedStepHue command to TH" - PICS: CC.C.C42.Tx - verification: | - ./chip-tool colorcontrol enhanced-step-hue 1 1000 200 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666947258.127499][52174:52174] CHIP:DMG: { - [1666947258.127504][52174:52174] CHIP:DMG: suppressResponse = false, - [1666947258.127511][52174:52174] CHIP:DMG: InvokeResponseIBs = - [1666947258.127520][52174:52174] CHIP:DMG: [ - [1666947258.127524][52174:52174] CHIP:DMG: InvokeResponseIB = - [1666947258.127530][52174:52174] CHIP:DMG: { - [1666947258.127534][52174:52174] CHIP:DMG: CommandStatusIB = - [1666947258.127539][52174:52174] CHIP:DMG: { - [1666947258.127542][52174:52174] CHIP:DMG: CommandPathIB = - [1666947258.127547][52174:52174] CHIP:DMG: { - [1666947258.127552][52174:52174] CHIP:DMG: EndpointId = 0x1, - [1666947258.127556][52174:52174] CHIP:DMG: ClusterId = 0x300, - [1666947258.127564][52174:52174] CHIP:DMG: CommandId = 0x42, - [1666947258.127568][52174:52174] CHIP:DMG: }, - [1666947258.127576][52174:52174] CHIP:DMG: - [1666947258.127580][52174:52174] CHIP:DMG: StatusIB = - [1666947258.127585][52174:52174] CHIP:DMG: { - [1666947258.127589][52174:52174] CHIP:DMG: status = 0x00 (SUCCESS), - [1666947258.127592][52174:52174] CHIP:DMG: }, - [1666947258.127596][52174:52174] CHIP:DMG: - [1666947258.127599][52174:52174] CHIP:DMG: }, - [1666947258.127605][52174:52174] CHIP:DMG: - [1666947258.127609][52174:52174] CHIP:DMG: }, - [1666947258.127615][52174:52174] CHIP:DMG: - [1666947258.127618][52174:52174] CHIP:DMG: ], - [1666947258.127626][52174:52174] CHIP:DMG: - [1666947258.127630][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947258.127633][52174:52174] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple - times)" - PICS: CC.C.C42.Tx && CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - After 20 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947270.561812][52174:52174] CHIP:DMG: { - [1666947270.561820][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947270.561840][52174:52174] CHIP:DMG: [ - [1666947270.561851][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947270.561869][52174:52174] CHIP:DMG: { - [1666947270.561881][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947270.561896][52174:52174] CHIP:DMG: { - [1666947270.561908][52174:52174] CHIP:DMG: DataVersion = 0x257542b7, - [1666947270.561922][52174:52174] CHIP:DMG: AttributePathIB = - [1666947270.561936][52174:52174] CHIP:DMG: { - [1666947270.561952][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947270.561967][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947270.561978][52174:52174] CHIP:DMG: Attribute = 0x0000_4000, - [1666947270.561991][52174:52174] CHIP:DMG: } - [1666947270.562007][52174:52174] CHIP:DMG: - [1666947270.562022][52174:52174] CHIP:DMG: Data = 2000, - [1666947270.562034][52174:52174] CHIP:DMG: }, - [1666947270.562050][52174:52174] CHIP:DMG: - [1666947270.562059][52174:52174] CHIP:DMG: }, - [1666947270.562076][52174:52174] CHIP:DMG: - [1666947270.562087][52174:52174] CHIP:DMG: ], - [1666947270.562105][52174:52174] CHIP:DMG: - [1666947270.562117][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947270.562129][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947270.562140][52174:52174] CHIP:DMG: } - disabled: true - - - label: "DUT sends EnhancedMoveToHueAndSaturation command to TH" - PICS: CC.C.C43.Tx - verification: | - ./chip-tool colorcontrol enhanced-move-to-hue-and-saturation 2500 100 200 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - [InvokeResponseMessage = - [1666947366.279459][52174:52174] CHIP:DMG: { - [1666947366.279463][52174:52174] CHIP:DMG: suppressResponse = false, - [1666947366.279466][52174:52174] CHIP:DMG: InvokeResponseIBs = - [1666947366.279473][52174:52174] CHIP:DMG: [ - [1666947366.279476][52174:52174] CHIP:DMG: InvokeResponseIB = - [1666947366.279483][52174:52174] CHIP:DMG: { - [1666947366.279486][52174:52174] CHIP:DMG: CommandStatusIB = - [1666947366.279490][52174:52174] CHIP:DMG: { - [1666947366.279493][52174:52174] CHIP:DMG: CommandPathIB = - [1666947366.279498][52174:52174] CHIP:DMG: { - [1666947366.279503][52174:52174] CHIP:DMG: EndpointId = 0x1, - [1666947366.279508][52174:52174] CHIP:DMG: ClusterId = 0x300, - [1666947366.279513][52174:52174] CHIP:DMG: CommandId = 0x43, - [1666947366.279518][52174:52174] CHIP:DMG: }, - [1666947366.279524][52174:52174] CHIP:DMG: - [1666947366.279529][52174:52174] CHIP:DMG: StatusIB = - [1666947366.279534][52174:52174] CHIP:DMG: { - [1666947366.279539][52174:52174] CHIP:DMG: status = 0x00 (SUCCESS), - [1666947366.279543][52174:52174] CHIP:DMG: }, - [1666947366.279548][52174:52174] CHIP:DMG: - [1666947366.279552][52174:52174] CHIP:DMG: }, - [1666947366.279558][52174:52174] CHIP:DMG: - [1666947366.279562][52174:52174] CHIP:DMG: }, - [1666947366.279568][52174:52174] CHIP:DMG: - [1666947366.279571][52174:52174] CHIP:DMG: ], - [1666947366.279577][52174:52174] CHIP:DMG: - [1666947366.279581][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947366.279584][52174:52174] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads EnhancedCurrentHue and CurrentSaturation attributes from TH - (potentially multiple times)" - PICS: CC.C.C43.Tx && CC.C.A4000 && CC.C.A0001 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - - After 20 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947536.315693][52174:52174] CHIP:DMG: { - [1666947536.315696][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947536.315703][52174:52174] CHIP:DMG: [ - [1666947536.315707][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947536.315714][52174:52174] CHIP:DMG: { - [1666947536.315718][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947536.315722][52174:52174] CHIP:DMG: { - [1666947536.315727][52174:52174] CHIP:DMG: DataVersion = 0x257547d6, - [1666947536.315732][52174:52174] CHIP:DMG: AttributePathIB = - [1666947536.315738][52174:52174] CHIP:DMG: { - [1666947536.315742][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947536.315747][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947536.315751][52174:52174] CHIP:DMG: Attribute = 0x0000_4000, - [1666947536.315755][52174:52174] CHIP:DMG: } - [1666947536.315760][52174:52174] CHIP:DMG: - [1666947536.315766][52174:52174] CHIP:DMG: Data = 2500, - [1666947536.315770][52174:52174] CHIP:DMG: }, - [1666947536.315776][52174:52174] CHIP:DMG: - [1666947536.315779][52174:52174] CHIP:DMG: }, - [1666947536.315785][52174:52174] CHIP:DMG: - [1666947536.315789][52174:52174] CHIP:DMG: ], - [1666947536.315795][52174:52174] CHIP:DMG: - [1666947536.315798][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947536.315803][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947536.315805][52174:52174] CHIP:DMG: } - - ./chip-tool colorcontrol read current-saturation 1 1 - After 20 Seconds, Verify response contains Current-saturation value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947452.160090][52174:52174] CHIP:DMG: { - [1666947452.160094][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947452.160100][52174:52174] CHIP:DMG: [ - [1666947452.160105][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947452.160113][52174:52174] CHIP:DMG: { - [1666947452.160117][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947452.160122][52174:52174] CHIP:DMG: { - [1666947452.160127][52174:52174] CHIP:DMG: DataVersion = 0x257547d6, - [1666947452.160132][52174:52174] CHIP:DMG: AttributePathIB = - [1666947452.160140][52174:52174] CHIP:DMG: { - [1666947452.160145][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947452.160151][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947452.160156][52174:52174] CHIP:DMG: Attribute = 0x0000_0001, - [1666947452.160162][52174:52174] CHIP:DMG: } - [1666947452.160168][52174:52174] CHIP:DMG: - [1666947452.160174][52174:52174] CHIP:DMG: Data = 100, - [1666947452.160178][52174:52174] CHIP:DMG: }, - [1666947452.160186][52174:52174] CHIP:DMG: - [1666947452.160191][52174:52174] CHIP:DMG: }, - [1666947452.160197][52174:52174] CHIP:DMG: - [1666947452.160201][52174:52174] CHIP:DMG: ], - [1666947452.160209][52174:52174] CHIP:DMG: - [1666947452.160213][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947452.160218][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947452.160222][52174:52174] CHIP:DMG: } - disabled: true - - - label: "DUT sends StopMoveStep command to TH." - PICS: CC.C.C47.Tx - verification: | - ./chip-tool colorcontrol stop-move-step 0 0 1 1 - - - Verify success response in TH(all-clusters-app) Log: - [InvokeResponseMessage = - [1666947649.150999][52174:52174] CHIP:DMG: { - [1666947649.151002][52174:52174] CHIP:DMG: suppressResponse = false, - [1666947649.151005][52174:52174] CHIP:DMG: InvokeResponseIBs = - [1666947649.151011][52174:52174] CHIP:DMG: [ - [1666947649.151014][52174:52174] CHIP:DMG: InvokeResponseIB = - [1666947649.151023][52174:52174] CHIP:DMG: { - [1666947649.151027][52174:52174] CHIP:DMG: CommandStatusIB = - [1666947649.151031][52174:52174] CHIP:DMG: { - [1666947649.151035][52174:52174] CHIP:DMG: CommandPathIB = - [1666947649.151041][52174:52174] CHIP:DMG: { - [1666947649.151045][52174:52174] CHIP:DMG: EndpointId = 0x1, - [1666947649.151052][52174:52174] CHIP:DMG: ClusterId = 0x300, - [1666947649.151057][52174:52174] CHIP:DMG: CommandId = 0x47, - [1666947649.151062][52174:52174] CHIP:DMG: }, - [1666947649.151067][52174:52174] CHIP:DMG: - [1666947649.151071][52174:52174] CHIP:DMG: StatusIB = - [1666947649.151076][52174:52174] CHIP:DMG: { - [1666947649.151081][52174:52174] CHIP:DMG: status = 0x00 (SUCCESS), - [1666947649.151085][52174:52174] CHIP:DMG: }, - [1666947649.151090][52174:52174] CHIP:DMG: - [1666947649.151095][52174:52174] CHIP:DMG: }, - [1666947649.151101][52174:52174] CHIP:DMG: - [1666947649.151105][52174:52174] CHIP:DMG: }, - [1666947649.151110][52174:52174] CHIP:DMG: - [1666947649.151114][52174:52174] CHIP:DMG: ], - [1666947649.151121][52174:52174] CHIP:DMG: - [1666947649.151124][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947649.151127][52174:52174] CHIP:DMG: }, - disabled: true - - - label: - "Over TransitionTime, DUT reads EnhancedCurrentHue attribute from TH." - PICS: CC.C.C47.Tx && CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - - Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666947687.412287][52174:52174] CHIP:DMG: { - [1666947687.412291][52174:52174] CHIP:DMG: AttributeReportIBs = - [1666947687.412301][52174:52174] CHIP:DMG: [ - [1666947687.412305][52174:52174] CHIP:DMG: AttributeReportIB = - [1666947687.412313][52174:52174] CHIP:DMG: { - [1666947687.412318][52174:52174] CHIP:DMG: AttributeDataIB = - [1666947687.412324][52174:52174] CHIP:DMG: { - [1666947687.412329][52174:52174] CHIP:DMG: DataVersion = 0x257547d6, - [1666947687.412335][52174:52174] CHIP:DMG: AttributePathIB = - [1666947687.412341][52174:52174] CHIP:DMG: { - [1666947687.412347][52174:52174] CHIP:DMG: Endpoint = 0x1, - [1666947687.412353][52174:52174] CHIP:DMG: Cluster = 0x300, - [1666947687.412360][52174:52174] CHIP:DMG: Attribute = 0x0000_4000, - [1666947687.412367][52174:52174] CHIP:DMG: } - [1666947687.412374][52174:52174] CHIP:DMG: - [1666947687.412380][52174:52174] CHIP:DMG: Data = 2500, - [1666947687.412386][52174:52174] CHIP:DMG: }, - [1666947687.412393][52174:52174] CHIP:DMG: - [1666947687.412398][52174:52174] CHIP:DMG: }, - [1666947687.412405][52174:52174] CHIP:DMG: - [1666947687.412409][52174:52174] CHIP:DMG: ], - [1666947687.412418][52174:52174] CHIP:DMG: - [1666947687.412423][52174:52174] CHIP:DMG: SuppressResponse = true, - [1666947687.412428][52174:52174] CHIP:DMG: InteractionModelRevision = 1 - [1666947687.412432][52174:52174] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_5_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_5_Simulated.yaml new file mode 100644 index 00000000000000..cff10bfd0df4ec --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_7_5_Simulated.yaml @@ -0,0 +1,180 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 24.3.22. [TC-CC-7.5] Enhanced Hue functionality with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + cluster: "Color Control" + timeout: 500 + endpoint: 1 + ConfigTransitionTime: + type: int16u + defaultValue: 3000 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends MoveToEnhancedHue command to TH" + PICS: CC.C.C40.Tx && CC.C.F01 + wait: "EnhancedMoveToHue" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C40.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C40.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "DUT sends MoveEnhanced Hue command to TH" + PICS: CC.C.C41.Tx + wait: "EnhancedMoveHue" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C41.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C41.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "DUT sends StepEnhanced command to TH" + PICS: CC.C.C42.Tx + wait: "EnhancedStepHue" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C42.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C42.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "DUT sends EnhancedMoveToHueAndSaturation command to TH" + PICS: CC.C.C43.Tx && CC.C.F01 + wait: "EnhancedMoveToHueAndSaturation" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C43.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: + "DUT reads CurrentSaturation attribute from TH (potentially multiple + times)" + PICS: CC.C.C43.Tx && CC.C.A0001 && CC.C.F01 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C43.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: + "DUT reads CurrentSaturation attribute from TH (potentially multiple + times)" + PICS: CC.C.C43.Tx && CC.C.A0001 && CC.C.F01 + wait: "readAttribute" + attribute: "CurrentSaturation" + + - label: "DUT sends StopMoveStep command to TH" + PICS: CC.C.C47.Tx && CC.C.F01 + wait: "StopMoveStep" + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C47.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait for ConfigTransitionTime" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: ConfigTransitionTime + + - label: + "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple + times)" + PICS: CC.C.C47.Tx && CC.C.A4000 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml deleted file mode 100644 index 33e064b8c35b0a..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml +++ /dev/null @@ -1,286 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.27. [TC-CC-9.4] ColorLoopSet Validation with client as DUT - -PICS: - - CC.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true - - - label: "Precondition" - verification: | - 1. Commission DUT to TH - - 2. Set DUT OnOff to On - ./chip-tool onoff on 1 1 - - Verify response contains a success (value 0x00) status On TH(chip-tool) Logs: - [1659710262.390398][4459:4464] CHIP:DMG: InvokeResponseMessage = - [1659710262.390424][4459:4464] CHIP:DMG: { - [1659710262.390448][4459:4464] CHIP:DMG: suppressResponse = false, - [1659710262.390472][4459:4464] CHIP:DMG: InvokeResponseIBs = - [1659710262.390503][4459:4464] CHIP:DMG: [ - [1659710262.390527][4459:4464] CHIP:DMG: InvokeResponseIB = - [1659710262.390559][4459:4464] CHIP:DMG: { - [1659710262.390584][4459:4464] CHIP:DMG: CommandStatusIB = - [1659710262.390617][4459:4464] CHIP:DMG: { - [1659710262.390642][4459:4464] CHIP:DMG: CommandPathIB = - [1659710262.390681][4459:4464] CHIP:DMG: { - [1659710262.390715][4459:4464] CHIP:DMG: EndpointId = 0x1, - [1659710262.390754][4459:4464] CHIP:DMG: ClusterId = 0x6, - [1659710262.390791][4459:4464] CHIP:DMG: CommandId = 0x1, - [1659710262.390826][4459:4464] CHIP:DMG: }, - [1659710262.390866][4459:4464] CHIP:DMG: - [1659710262.390896][4459:4464] CHIP:DMG: StatusIB = - [1659710262.390938][4459:4464] CHIP:DMG: { - [1659710262.390977][4459:4464] CHIP:DMG: status = 0x00 (SUCCESS), - [1659710262.391012][4459:4464] CHIP:DMG: }, - [1659710262.391050][4459:4464] CHIP:DMG: - [1659710262.391078][4459:4464] CHIP:DMG: }, - [1659710262.391114][4459:4464] CHIP:DMG: - [1659710262.391143][4459:4464] CHIP:DMG: }, - [1659710262.391174][4459:4464] CHIP:DMG: - [1659710262.391198][4459:4464] CHIP:DMG: ], - [1659710262.391227][4459:4464] CHIP:DMG: - [1659710262.391251][4459:4464] CHIP:DMG: InteractionModelRevision = 1 - [1659710262.391273][4459:4464] CHIP:DMG: }, - [1659710262.391331][4459:4464] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1659710262.391373][4459:4464] CHIP:DMG: ICR moving to [AwaitingDe] - - 3. DUT supports CC.C.F02(CL) and CC.C.F01(EHUE) - disabled: true - - - label: "DUT sends ColorLoopSet command to TH." - PICS: CC.C.C44.Tx - verification: | - ./chip-tool colorcontrol color-loop-set 15 0 0 30 160 0 0 1 1 - - Verify success response in TH(all-clusters-app) Log: - InvokeResponseMessage = - [1666943432.354542][50787:50787] CHIP:DMG: { - [1666943432.354546][50787:50787] CHIP:DMG: suppressResponse = false, - [1666943432.354549][50787:50787] CHIP:DMG: InvokeResponseIBs = - [1666943432.354554][50787:50787] CHIP:DMG: [ - [1666943432.354558][50787:50787] CHIP:DMG: InvokeResponseIB = - [1666943432.354563][50787:50787] CHIP:DMG: { - [1666943432.354565][50787:50787] CHIP:DMG: CommandStatusIB = - [1666943432.354570][50787:50787] CHIP:DMG: { - [1666943432.354573][50787:50787] CHIP:DMG: CommandPathIB = - [1666943432.354578][50787:50787] CHIP:DMG: { - [1666943432.354582][50787:50787] CHIP:DMG: EndpointId = 0x1, - [1666943432.354586][50787:50787] CHIP:DMG: ClusterId = 0x300, - [1666943432.354590][50787:50787] CHIP:DMG: CommandId = 0x44, - [1666943432.354594][50787:50787] CHIP:DMG: }, - [1666943432.354600][50787:50787] CHIP:DMG: - [1666943432.354604][50787:50787] CHIP:DMG: StatusIB = - [1666943432.354608][50787:50787] CHIP:DMG: { - [1666943432.354612][50787:50787] CHIP:DMG: status = 0x00 (SUCCESS), - [1666943432.354616][50787:50787] CHIP:DMG: }, - [1666943432.354620][50787:50787] CHIP:DMG: - [1666943432.354623][50787:50787] CHIP:DMG: }, - [1666943432.354628][50787:50787] CHIP:DMG: - [1666943432.354632][50787:50787] CHIP:DMG: }, - [1666943432.354637][50787:50787] CHIP:DMG: - [1666943432.354639][50787:50787] CHIP:DMG: ], - [1666943432.354644][50787:50787] CHIP:DMG: - [1666943432.354647][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943432.354651][50787:50787] CHIP:DMG: }, - disabled: true - - - label: "DUT read ColorLoopActive attribute from TH." - PICS: CC.C.A4002 - verification: | - ./chip-tool colorcontrol read color-loop-active 1 1 - - Verify response contains colorLoopActive value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943470.409724][50787:50787] CHIP:DMG: { - [1666943470.409725][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943470.409730][50787:50787] CHIP:DMG: [ - [1666943470.409733][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943470.409738][50787:50787] CHIP:DMG: { - [1666943470.409742][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943470.409745][50787:50787] CHIP:DMG: { - [1666943470.409749][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943470.409752][50787:50787] CHIP:DMG: AttributePathIB = - [1666943470.409756][50787:50787] CHIP:DMG: { - [1666943470.409761][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943470.409766][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943470.409770][50787:50787] CHIP:DMG: Attribute = 0x0000_4002, - [1666943470.409773][50787:50787] CHIP:DMG: } - [1666943470.409777][50787:50787] CHIP:DMG: - [1666943470.409780][50787:50787] CHIP:DMG: Data = 0, - [1666943470.409784][50787:50787] CHIP:DMG: }, - [1666943470.409789][50787:50787] CHIP:DMG: - [1666943470.409791][50787:50787] CHIP:DMG: }, - [1666943470.409795][50787:50787] CHIP:DMG: - [1666943470.409798][50787:50787] CHIP:DMG: ], - [1666943470.409802][50787:50787] CHIP:DMG: - [1666943470.409805][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943470.409808][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943470.409811][50787:50787] CHIP:DMG: } - disabled: true - - - label: "DUT read ColorLoopDirection attribute from TH." - PICS: CC.C.A4003 - verification: | - ./chip-tool colorcontrol read color-loop-direction 1 1 - - Verify response contains ColorLoopDirection value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943502.981937][50787:50787] CHIP:DMG: { - [1666943502.981940][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943502.981945][50787:50787] CHIP:DMG: [ - [1666943502.981948][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943502.981953][50787:50787] CHIP:DMG: { - [1666943502.981956][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943502.981960][50787:50787] CHIP:DMG: { - [1666943502.981965][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943502.981968][50787:50787] CHIP:DMG: AttributePathIB = - [1666943502.981971][50787:50787] CHIP:DMG: { - [1666943502.981977][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943502.981980][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943502.981984][50787:50787] CHIP:DMG: Attribute = 0x0000_4003, - [1666943502.981987][50787:50787] CHIP:DMG: } - [1666943502.981991][50787:50787] CHIP:DMG: - [1666943502.981995][50787:50787] CHIP:DMG: Data = 0, - [1666943502.981998][50787:50787] CHIP:DMG: }, - [1666943502.982003][50787:50787] CHIP:DMG: - [1666943502.982006][50787:50787] CHIP:DMG: }, - [1666943502.982010][50787:50787] CHIP:DMG: - [1666943502.982013][50787:50787] CHIP:DMG: ], - [1666943502.982018][50787:50787] CHIP:DMG: - [1666943502.982021][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943502.982026][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943502.982028][50787:50787] CHIP:DMG: } - disabled: true - - - label: "DUT read ColorLoopTime attribute from TH." - PICS: CC.C.A4004 - verification: | - ./chip-tool colorcontrol read color-loop-time 1 1 - - Verify response contains ColorLoopTime value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943523.885364][50787:50787] CHIP:DMG: { - [1666943523.885366][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943523.885371][50787:50787] CHIP:DMG: [ - [1666943523.885374][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943523.885378][50787:50787] CHIP:DMG: { - [1666943523.885381][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943523.885384][50787:50787] CHIP:DMG: { - [1666943523.885387][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943523.885390][50787:50787] CHIP:DMG: AttributePathIB = - [1666943523.885393][50787:50787] CHIP:DMG: { - [1666943523.885397][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943523.885400][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943523.885403][50787:50787] CHIP:DMG: Attribute = 0x0000_4004, - [1666943523.885407][50787:50787] CHIP:DMG: } - [1666943523.885411][50787:50787] CHIP:DMG: - [1666943523.885415][50787:50787] CHIP:DMG: Data = 30, - [1666943523.885419][50787:50787] CHIP:DMG: }, - [1666943523.885424][50787:50787] CHIP:DMG: - [1666943523.885427][50787:50787] CHIP:DMG: }, - [1666943523.885431][50787:50787] CHIP:DMG: - [1666943523.885434][50787:50787] CHIP:DMG: ], - [1666943523.885439][50787:50787] CHIP:DMG: - [1666943523.885442][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943523.885445][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943523.885448][50787:50787] CHIP:DMG: } - disabled: true - - - label: "DUT read ColorLoopStartEnhancedHue attribute from TH." - PICS: CC.C.A4005 - verification: | - ./chip-tool colorcontrol read color-loop-start-enhanced-hue 1 1 - Verify response contains ColorLoopStartEnhancedHue value in TH(all-clusters-app) Logs: - ReportDataMessage = - [1666943561.448178][50787:50787] CHIP:DMG: { - [1666943561.448181][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943561.448186][50787:50787] CHIP:DMG: [ - [1666943561.448189][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943561.448193][50787:50787] CHIP:DMG: { - [1666943561.448196][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943561.448199][50787:50787] CHIP:DMG: { - [1666943561.448203][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943561.448206][50787:50787] CHIP:DMG: AttributePathIB = - [1666943561.448209][50787:50787] CHIP:DMG: { - [1666943561.448213][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943561.448216][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943561.448220][50787:50787] CHIP:DMG: Attribute = 0x0000_4005, - [1666943561.448224][50787:50787] CHIP:DMG: } - [1666943561.448228][50787:50787] CHIP:DMG: - [1666943561.448232][50787:50787] CHIP:DMG: Data = 160, - [1666943561.448235][50787:50787] CHIP:DMG: }, - [1666943561.448240][50787:50787] CHIP:DMG: - [1666943561.448243][50787:50787] CHIP:DMG: }, - [1666943561.448247][50787:50787] CHIP:DMG: - [1666943561.448250][50787:50787] CHIP:DMG: ], - [1666943561.448254][50787:50787] CHIP:DMG: - [1666943561.448257][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943561.448260][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943561.448263][50787:50787] CHIP:DMG: } - disabled: true - - - label: - "Over next 30 seconds, at 5 seconds interval, DUT read - EnhancedCurrentHue attribute from TH." - PICS: CC.C.A4000 - verification: | - ./chip-tool colorcontrol read enhanced-current-hue 1 1 - - After 30s, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: - [ReportDataMessage = - [1666943589.470649][50787:50787] CHIP:DMG: { - [1666943589.470651][50787:50787] CHIP:DMG: AttributeReportIBs = - [1666943589.470656][50787:50787] CHIP:DMG: [ - [1666943589.470659][50787:50787] CHIP:DMG: AttributeReportIB = - [1666943589.470664][50787:50787] CHIP:DMG: { - [1666943589.470667][50787:50787] CHIP:DMG: AttributeDataIB = - [1666943589.470670][50787:50787] CHIP:DMG: { - [1666943589.470673][50787:50787] CHIP:DMG: DataVersion = 0x71ecef04, - [1666943589.470676][50787:50787] CHIP:DMG: AttributePathIB = - [1666943589.470680][50787:50787] CHIP:DMG: { - [1666943589.470684][50787:50787] CHIP:DMG: Endpoint = 0x1, - [1666943589.470687][50787:50787] CHIP:DMG: Cluster = 0x300, - [1666943589.470691][50787:50787] CHIP:DMG: Attribute = 0x0000_4000, - [1666943589.470694][50787:50787] CHIP:DMG: } - [1666943589.470698][50787:50787] CHIP:DMG: - [1666943589.470703][50787:50787] CHIP:DMG: Data = 0, - [1666943589.470706][50787:50787] CHIP:DMG: }, - [1666943589.470710][50787:50787] CHIP:DMG: - [1666943589.470713][50787:50787] CHIP:DMG: }, - [1666943589.470717][50787:50787] CHIP:DMG: - [1666943589.470720][50787:50787] CHIP:DMG: ], - [1666943589.470725][50787:50787] CHIP:DMG: - [1666943589.470728][50787:50787] CHIP:DMG: SuppressResponse = true, - [1666943589.470731][50787:50787] CHIP:DMG: InteractionModelRevision = 1 - [1666943589.470733][50787:50787] CHIP:DMG: } - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_4_Simulated.yaml new file mode 100644 index 00000000000000..f19978ea16ff5b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_CC_9_4_Simulated.yaml @@ -0,0 +1,147 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.2.27. [TC-CC-9.4] ColorLoopSet Validation with client as DUT + +PICS: + - CC.C + +config: + nodeId: 0x12344321 + timeout: 500 + cluster: "Color Control" + endpoint: 1 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "PreCondition: Set TH OnOff to On" + cluster: "On/Off" + wait: "On" + + - label: "DUT sends ColorLoopSet command to TH" + PICS: CC.C.C44.Tx && CC.C.F02 && CC.C.F01 + wait: "ColorLoopSet" + + - label: "DUT reads ColorLoopActive attribute from TH periodically" + PICS: CC.C.A4002 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "ColorLoopActive" + + - label: "DUT reads ColorLoopDirection attribute from TH periodically" + PICS: CC.C.A4003 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "ColorLoopDirection" + + - label: "DUT reads ColorLoopTime attribute from TH periodically" + PICS: CC.C.A4004 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "ColorLoopTime" + + - label: + "DUT reads ColorLoopStartEnhancedHue attribute from TH periodically" + PICS: CC.C.A4005 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "ColorLoopStartEnhancedHue" + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" + + - label: "Wait 5000ms" + PICS: CC.C.F02 && CC.C.F01 + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 5000 + + - label: "DUT reads EnhancedCurrentHue attribute from TH periodically" + PICS: CC.C.A4000 && CC.C.F02 && CC.C.F01 + wait: "readAttribute" + attribute: "EnhancedCurrentHue" diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml index 1fabbbb907a625..6ec3c9f86e2892 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml @@ -41,7 +41,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: ( !CHANNEL.S.CL && !CHANNEL.S.LI ) + PICS: ( !CHANNEL.S.F00 && !CHANNEL.S.F01 ) command: "readAttribute" attribute: "FeatureMap" response: @@ -49,8 +49,9 @@ tests: constraints: type: bitmap32 - - label: "Given CHANNEL.S.CL ensure featuremap has the correct bit set" - PICS: CHANNEL.S.CL + - label: + "Given CCHANNEL.S.F00(CL) ensure featuremap has the correct bit set" + PICS: CHANNEL.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -58,8 +59,8 @@ tests: type: bitmap32 hasMasksSet: [0x1] - - label: "Given CHANNEL.S.LI ensure featuremap has the correct bit set" - PICS: CHANNEL.S.LI + - label: "Given CHANNEL.S.F01(LI) ensure featuremap has the correct bit set" + PICS: CHANNEL.S.F01 command: "readAttribute" attribute: "FeatureMap" response: @@ -132,7 +133,7 @@ tests: contains: [3] - label: "Read the global attribute: GeneratedCommandList" - PICS: ( !CHANNEL.S.CL && !CHANNEL.S.LI ) + PICS: ( !CHANNEL.S.F00 && !CHANNEL.S.F01 ) command: "readAttribute" attribute: "GeneratedCommandList" response: @@ -141,7 +142,7 @@ tests: type: list - label: "Read the global attribute: GeneratedCommandList" - PICS: CHANNEL.S.CL || CHANNEL.S.LI + PICS: CHANNEL.S.F00 || CHANNEL.S.F01 command: "readAttribute" attribute: "GeneratedCommandList" response: diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml index 1a85df436ed44c..7de4f61f1ea817 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: ( !CONTENTLAUNCHER.S.CS && !CONTENTLAUNCHER.S.UP ) + PICS: ( !CONTENTLAUNCHER.S.F00 && !CONTENTLAUNCHER.S.F01 ) command: "readAttribute" attribute: "FeatureMap" response: @@ -51,8 +51,9 @@ tests: type: bitmap32 - label: - "Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set" - PICS: CONTENTLAUNCHER.S.CS + "Given CONTENTLAUNCHER.S.F00 (CS) ensure featuremap has the correct + bit set" + PICS: CONTENTLAUNCHER.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -61,8 +62,9 @@ tests: hasMasksSet: [0x1] - label: - "Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set" - PICS: CONTENTLAUNCHER.S.UP + "Given CONTENTLAUNCHER.S.F01(UP) ensure featuremap has the correct bit + set" + PICS: CONTENTLAUNCHER.S.F01 command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_2.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_2.yaml index 419277d04f4fde..92e3853436072e 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_2.yaml @@ -35,7 +35,7 @@ tests: verification: | To generate the Attestation Nonce give below command - echo hex:$(hexdump -vn32 -e'4/4 "%08X"' /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) The generated Attestation Nonce is hex:97B823C0207728BEC509CFE4D413C95AA693140D1F5D60215913ABB1F220E631 disabled: true @@ -303,7 +303,7 @@ tests: AttestationResponse Command received by TH1 from DUT" verification: | To get attestation nonce give below command - echo hex:$(hexdump -vn32 -e'4/4 "%08X"' /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) ./chip-tool operationalcredentials attestation-request hex:3577CA6EFFFC560E287604663AE5BE2F11D1B1CF99BE326AF5B3B114A2E91395 1 0 --trace_decode 1 @@ -729,7 +729,7 @@ tests: ,security level = 0 ,security_information = 0 ,version_number is an integer in range 0..65535 ,certification_type has a value between 1..2" verification: | - Verify Verify for the following contents of CD (certificate declaration) in TH (chip-tool) log: + Verify for the following contents of CD (certificate declaration) in TH (chip-tool) log: format_version = 1, vendor_id matches the basic_info_vendor_id, product_id_array matches the basic_info_product_id saved earlier, @@ -740,6 +740,8 @@ tests: version_number should be in range 0..65535, certification_type should be between 1..2 + As per Spec, certification_type value for test_app_all-clusters-app) can be 0 but in real devices the value should be between 1..2 + Verify if the VID PID info in here matches with the steps above [1655374218.453303][35023:35028] CHIP:DMG: Attestation Elements (585 bytes) = @@ -1092,7 +1094,7 @@ tests: verified with the well-known Certification Declaration public key used to originally sign the Certification Declaration" verification: | - Out of scope for V1.0, + Out of scope disabled: true - label: @@ -1127,14 +1129,14 @@ tests: secure session over which the AttestationResponse was obtained, using the subject public key found in the DAC." verification: | - Out of scope for V1.0, which requires a specific decode tool in chip-cert tool to decode the signature & construct a new message. + Out of scope, which requires a specific decode tool in chip-cert tool to decode the signature & construct a new message. disabled: true - label: "Verify that the PAA subject public key and subject match one of the official PAA certificates found in the Distributed Compliance Ledger." verification: | - For SVE-2, verify if the PAA subject key matches with the list of PAA stored in the TH. For 1.0 certification, verify the PAA subject matches one of the official PAA certificates found in DCL. To get the PAA subject public key from the test PAA stored in TH, use the command below. For 1.0 cert, Extract the subject public key in similar way and compare if it matches with the certs stored in DCL. + For certification, verify the PAA subject matches one of the official PAA certificates found in DCL. To get the PAA subject public key from the test PAA stored in TH, use the command below. For cert, Extract the subject public key in a similar way and compare if it matches with the certs stored in DCL. $openssl x509 -in credentials/development/paa-root-certs/Chip-Test-PAA-FFF1-Cert.pem -text Certificate: diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml index 8b1291cae3a823..9480811840e699 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml @@ -40,7 +40,7 @@ tests: - label: "Start the commissioning process of TH1 on DUT" verification: | - ./chip-all-clusters-app --wifi --trace_decode 1 + sudo ./chip-all-clusters-app --wifi --trace_decode 1 DUT as commissioner side: ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3840 --trace_decode 1 @@ -213,7 +213,7 @@ tests: - label: "Start the commissioning process of TH1 on DUT again" verification: | - ./chip-all-clusters-app --wifi --trace_decode 1 --discriminator 3841 + sudo ./chip-all-clusters-app --wifi --trace_decode 1 --discriminator 3841 ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml index 686ea04a00f784..3b83eaf4e81e87 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml @@ -220,24 +220,19 @@ tests: ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662456484.492166][32193:32198] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662456484.492170][32193:32198] CHIP:CTL: Received Attestation Information from the device - [1662456484.492173][32193:32198] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662456484.492179][32193:32198] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662456484.492181][32193:32198] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662456484.492183][32193:32198] CHIP:CTL: Verifying attestation - [1662456484.492990][32193:32198] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 605. Look at AttestationVerificationResult enum to understand the errors - [1662456484.493000][32193:32198] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662456484.493005][32193:32198] CHIP:CTL: Failed to perform commissioning step 8 - [1662456484.493007][32193:32198] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1662456484.493011][32193:32198] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662456484.493013][32193:32198] CHIP:CTL: Expiring failsafe on proxy 0x7fd0a40236a0 - [1662456484.493022][32193:32198] CHIP:DMG: ICR moving to [AddingComm] - [1662456484.493026][32193:32198] CHIP:DMG: ICR moving to [AddedComma] - [1662456484.493070][32193:32198] CHIP:IN: Prepared secure message 0x7fd0a4031c78 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 58630i with MessageCounter:1810755. - [1662456484.493076][32193:32198] CHIP:IN: Sending encrypted msg 0x7fd0a4031c78 with MessageCounter:1810755 to 0xFFFFFFFB00000000 (0) at monotonic time: 00000000039222AD msec - [1662456484.493127][32193:32198] CHIP:DMG: >> to UDP:[fe80::b7b8:ff3e:9ace:3e12%wlp0s20f3]:5540 | 1810755 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 29920 / Exchange = 58630] - [1662456484.493132][32193:32198] CHIP:DMG: Header Flags = + [1684494307.862989][176412:176414] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' + [1684494307.862994][176412:176414] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684494307.862996][176412:176414] CHIP:CTL: Verifying attestation + [1684494307.864806][176412:176414] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 303. Look at AttestationVerificationResult enum to understand the errors + [1684494307.864822][176412:176414] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684494307.864826][176412:176414] CHIP:CTL: Failed to perform commissioning step 8 + [1684494307.864829][176412:176414] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684494307.864837][176412:176414] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684494307.864844][176412:176414] CHIP:CTL: Expiring failsafe on proxy 0x7f2308036bd0 + [1684494307.864860][176412:176414] CHIP:DMG: ICR moving to [AddingComm] + [1684494307.864865][176412:176414] CHIP:DMG: ICR moving to [AddedComma] + [1684494307.864945][176412:176414] CHIP:EM: <<< [E:6835i M:18286748] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + @@ -258,23 +253,18 @@ tests: If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662459474.547436][32792:32797] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662459474.547441][32792:32797] CHIP:CTL: Received Attestation Information from the device - [1662459474.547445][32792:32797] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662459474.547452][32792:32797] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662459474.547456][32792:32797] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662459474.547458][32792:32797] CHIP:CTL: Verifying attestation - [1662459474.548034][32792:32797] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 301. Look at AttestationVerificationResult enum to understand the errors - [1662459474.548043][32792:32797] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662459474.548047][32792:32797] CHIP:CTL: Failed to perform commissioning step 8 - [1662459474.548051][32792:32797] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1662459474.548055][32792:32797] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662459474.548059][32792:32797] CHIP:CTL: Expiring failsafe on proxy 0x7f71200236a0 - [1662459474.548073][32792:32797] CHIP:DMG: ICR moving to [AddingComm] - [1662459474.548077][32792:32797] CHIP:DMG: ICR moving to [AddedComma] - [1662459474.548122][32792:32797] CHIP:IN: Prepared secure message 0x7f7120031f38 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 51350i with MessageCounter:196537634. - [1662459474.548128][32792:32797] CHIP:IN: Sending encrypted msg 0x7f7120031f38 with MessageCounter:196537634 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000003BFC294 msec - [1662459474.548181][32792:32797] CHIP:DMG: >> to UDP:[fe80::b7b8:ff3e:9ace:3e12%wlp0s20f3]:5540 | 196537634 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 10880 / Exchange = 51350] + [1684494415.854066][176461:176463] CHIP:CTL: Received Attestation Information from the device + [1684494415.854069][176461:176463] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' + [1684494415.854072][176461:176463] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 + [1684494415.854080][176461:176463] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' + [1684494415.854085][176461:176463] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684494415.854088][176461:176463] CHIP:CTL: Verifying attestation + [1684494415.860949][176461:176463] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 300. Look at AttestationVerificationResult enum to understand the errors + [1684494415.860970][176461:176463] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684494415.860974][176461:176463] CHIP:CTL: Failed to perform commissioning step 8 + [1684494415.860978][176461:176463] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684494415.860990][176461:176463] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684494415.860994][176461:176463] CHIP:CTL: Expiring failsafe on proxy 0x7f617c036bd0 disabled: true - label: @@ -336,18 +326,26 @@ tests: Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662460172.864493][32929:32934] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662460172.864502][32929:32934] CHIP:CTL: Received Attestation Information from the device - [1662460172.864510][32929:32934] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662460172.864522][32929:32934] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662460172.864526][32929:32934] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662460172.864528][32929:32934] CHIP:CTL: Verifying attestation - [1662460172.865422][32929:32934] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 603. Look at AttestationVerificationResult enum to understand the errors - [1662460172.865435][32929:32934] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662460172.865439][32929:32934] CHIP:CTL: Failed to perform commissioning step 8 - [1662460172.865442][32929:32934] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1662460172.865447][32929:32934] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662460172.865449][32929:32934] CHIP:CTL: Expiring failsafe on proxy 0x7fa380023460 + [1684495876.434738][176910:176912] CHIP:DMG: }, + [1684495876.434750][176910:176912] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 + [1684495876.434754][176910:176912] CHIP:CTL: Received Attestation Information from the device + [1684495876.434758][176910:176912] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' + [1684495876.434761][176910:176912] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 + [1684495876.434768][176910:176912] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' + [1684495876.434772][176910:176912] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684495876.434774][176910:176912] CHIP:CTL: Verifying attestation + [1684495876.441867][176910:176912] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 604. Look at AttestationVerificationResult enum to understand the errors + [1684495876.441878][176910:176912] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684495876.441881][176910:176912] CHIP:CTL: Failed to perform commissioning step 8 + [1684495876.441885][176910:176912] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684495876.441891][176910:176912] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684495876.441894][176910:176912] CHIP:CTL: Expiring failsafe on proxy 0x7f1fc0036bd0 + [1684495876.441907][176910:176912] CHIP:DMG: ICR moving to [AddingComm] + [1684495876.441912][176910:176912] CHIP:DMG: ICR moving to [AddedComma] + [1684495876.441967][176910:176912] CHIP:EM: <<< [E:25914i M:173255705] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + [1684495876.441973][176910:176912] CHIP:IN: (S) Sending msg 173255705 on secure session with LSID: 21068 + [1684495876.442029][176910:176912] CHIP:DMG: >> to UDP:[fe80::529f:9f59:cfec:7130%wlp0s20f3]:5540 | 173255705 | [Interaction Model (1) / InvokeCommandRequest + @@ -366,16 +364,23 @@ tests: Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662460606.271896][33030:33035] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662460606.271904][33030:33035] CHIP:CTL: Received Attestation Information from the device - [1662460606.271914][33030:33035] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662460606.271930][33030:33035] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662460606.271938][33030:33035] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662460606.271942][33030:33035] CHIP:CTL: Verifying attestation - [1662460606.272912][33030:33035] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 603. Look at AttestationVerificationResult enum to understand the errors - [1662460606.272924][33030:33035] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662460606.272927][33030:33035] CHIP:CTL: Failed to perform commissioning step 8 - [1662460606.272932][33030:33035] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684495930.801406][176931:176933] CHIP:CTL: Received Attestation Information from the device + [1684495930.801409][176931:176933] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' + [1684495930.801411][176931:176933] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 + [1684495930.801417][176931:176933] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' + [1684495930.801420][176931:176933] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684495930.801421][176931:176933] CHIP:CTL: Verifying attestation + [1684495930.808506][176931:176933] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 604. Look at AttestationVerificationResult enum to understand the errors + [1684495930.808521][176931:176933] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684495930.808524][176931:176933] CHIP:CTL: Failed to perform commissioning step 8 + [1684495930.808526][176931:176933] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684495930.808533][176931:176933] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684495930.808535][176931:176933] CHIP:CTL: Expiring failsafe on proxy 0x7fc730036bd0 + [1684495930.808548][176931:176933] CHIP:DMG: ICR moving to [AddingComm] + [1684495930.808551][176931:176933] CHIP:DMG: ICR moving to [AddedComma] + [1684495930.808609][176931:176933] CHIP:EM: <<< [E:8667i M:71525087] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + [1684495930.808614][176931:176933] CHIP:IN: (S) Sending msg 71525087 on secure session with LSID: 21274 + @@ -396,11 +401,17 @@ tests: Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662460943.774883][33107:33112] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662460943.774887][33107:33112] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662460943.774889][33107:33112] CHIP:CTL: Verifying attestation - [1662460943.775749][33107:33112] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 603. Look at AttestationVerificationResult enum to understand the errors - [1662460943.775757][33107:33112] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662460943.775760][33107:33112] CHIP:CTL: Failed to perform commissioning step 8 - [1662460943.775763][33107:33112] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup + [1684496002.435208][176959:176961] CHIP:CTL: Performing next commissioning step 'AttestationVerification' + [1684496002.435210][176959:176961] CHIP:CTL: Verifying attestation + [1684496002.442231][176959:176961] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 605. Look at AttestationVerificationResult enum to understand the errors + [1684496002.442244][176959:176961] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684496002.442248][176959:176961] CHIP:CTL: Failed to perform commissioning step 8 + [1684496002.442252][176959:176961] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' + [1684496002.442259][176959:176961] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' + [1684496002.442262][176959:176961] CHIP:CTL: Expiring failsafe on proxy 0x7f0354036bd0 + [1684496002.442275][176959:176961] CHIP:DMG: ICR moving to [AddingComm] + [1684496002.442279][176959:176961] CHIP:DMG: ICR moving to [AddedComma] + [1684496002.442334][176959:176961] CHIP:EM: <<< [E:26577i M:70580591] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + [1684496002.442340][176959:176961] CHIP:IN: (S) Sending msg 70580591 on secure session with LSID: 56268 + [1684496002.442397][176959:176961] CHIP:DMG: >> to UDP:[fe80::529f:9f59:cfec:7130%wlp0s20f3]:5540 | 70580591 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 4448 / Exchange = 26577] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml index 2e9e57934cbdfa..b43bc99d093692 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml @@ -30,13 +30,14 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual) + QR Code/ Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - label: "Scan the DUTs QR code using the TH." verification: | 1. Run DUT. Example for DUT=all-clusters-app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 + ... [1657213978.633542][366513:366513] CHIP:DL: Device Configuration: [1657213978.633637][366513:366513] CHIP:DL: Serial Number: (not set) @@ -71,7 +72,7 @@ tests: Verify in TH (CHIP-TOOL) - ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 + ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 ... [1657214364908] [29006:16612760] CHIP: [CTL] Starting commissioning discovery over DNS-SD diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml index 249a8208dd3a00..79002c585ce2e2 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml @@ -30,7 +30,8 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual) + QR Code/ Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). + To put the DUT into commissionable state and verify commissionable state. This step is same in couple of other cases (like DD) so use the same verification method here too i.e. if your DUT is discoverable over mDNS then use 'chiptool discover commissionables' to discover mDNS adv and provision the device using 'chip-tool pairing code node-id payload'. otherwise if your DUT is advertising over BLE , pls use the '/chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1' command to discover and provision the device (BTW the SSID , passwd, descriminator ..etc are configurable parameters for your DUT) diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml index 3d3d3bf40504da..8e2d1736cda97a 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml @@ -30,7 +30,7 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual) + 1 - 5.1.3 - QR Code/ Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - label: "Power on the DUT device." @@ -71,7 +71,7 @@ tests: - label: "Follow any DUT-specific steps, guided by a service provided by the - DUTs manufacturer for initial device setup, then place the DUT + DUT's manufacturer for initial device setup, then place the DUT Commissionee into commissioning mode." verification: | 1. Follow DUT vendor-specific steps to put DUT into commissioning mode diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml index 628974999e6d84..be91a20c477bac 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml @@ -27,7 +27,7 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1 - Onboarding payload is printed on the device or in additional provided materials (ex: manual) through a QR Code, a manually entered code or as content in an NFC tag. + 1 - 5.1 - Onboarding payload is printed on the device or in additional provided materials (ex: manual, companion app, web service) through a QR Code, a Manual Pairing Code or as content in an NFC tag. disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml index 70227d3b471e6f..47e0c8ac8b0683 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml @@ -27,10 +27,18 @@ config: tests: - label: "Preconditions" verification: | - 1 - 5.1.4.2 - Manual Pairing Code is printed on the device or in additional provided materials (ex: manual)" + Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - label: "Verify using instruments" verification: | - Vendor specific field testcase that should be manually verified using the requirements in the Expected Outcome. + The Manual Pairing Code shall meet the following requirements: + + - Printed using a minimum font size of 6 points, typically producing a typeface height of 2.1 mm (6/72 inches) + + - Include dashes between the groups of Manual Pairing Code digits (e.g. "MATTER 1234-5678-901") + + - If the code is presented in audio format it SHOULD be read in groups of 4 digits, with the last group being only 3 or 1 digits depending on overall size. + + - If a Matter logo cannot be printed alongside the code then the code SHOULD be prefixed with MATTER (e.g. "MATTER 1234-5678-901") disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml index 7156ab378bc336..f7db55889fe58c 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml @@ -34,7 +34,7 @@ tests: - label: "Preconditions" verification: | - 1 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). Device also has additional TLV data with a non-zero length appended to the end of the QR code. + 1 - 5.1.3 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). Device also has additional TLV data with a non-zero length appended to the end of the QR code. An example onboarding QR code could be "MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -107,10 +107,10 @@ tests: Verify in DUT(CHIP-TOOL) CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 CHIP:CTL: Received CommissioningComplete response, errorCode=0 - CHIP:CTL: Successfully finished commissioning step "SendComplete" - CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - CHIP:CTL: Performing next commissioning step "Cleanup" - CHIP:CTL: Successfully finished commissioning step "Cleanup" + CHIP:CTL: Successfully finished commissioning step 'SendComplete' + CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + CHIP:CTL: Performing next commissioning step 'Cleanup' + CHIP:CTL: Successfully finished commissioning step 'Cleanup' CHIP:TOO: Device commissioning completed with success CHIP:DMG: ICR moving to [AwaitingDe] disabled: true @@ -118,7 +118,7 @@ tests: - label: "Scan the TH Devices QR code (that includes the additional TLV data) using DUT. Using the example provided above, the payload would be - MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40." + 'MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40'." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Launch the TH commissionee app and get QR code from TH side @@ -131,7 +131,7 @@ tests: [1667807422.508591][12415:12415] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: [1667807422.508608][12415:12415] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 - 2. Build TLV Data into TH"s QR code using chip-tool"s generate-qrcode command + 2. Build TLV Data into TH's QR code using chip-tool's generate-qrcode command ./chip-tool payload generate-qrcode --existing-payload MT:-24J042C00KA0648G00 --tlvBytes hex:152C000A3132333435363738393018 [1667807462.804398][10254:10254] CHIP:TOO: QR Code: MT:-24J042C00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40 disabled: true @@ -144,10 +144,10 @@ tests: Verify in DUT(CHIP-TOOL) [1657210956708] [28601:16575811] CHIP: [CTL] Received CommissioningComplete response, errorCode=0 - [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1657210956708] [28601:16575811] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1657210956708] [28601:16575811] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657210956708] [28601:16575811] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657210956708] [28601:16575811] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657210956709] [28601:16575811] CHIP: [TOO] Device commissioning completed with success disabled: true @@ -155,10 +155,10 @@ tests: "Scan the TH Devices QR code (that includes the additional large TLV data) using DUT. For an example using 1000 bytes of data, the payload would be - MT:-24J0AFN00KA064IJ3P0JFQB7TZZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T11UXS0. + 'MT:-24J0AFN00KA064IJ3P0JFQB7TZZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T11UXS0'. Where the TLV payload was 0x15 0x2d 0x82 0xe8 0x03 <1000 bytes of - data> 0x18 (using tag type 0x2d=UTF-8 string, 2-octet length, vendor - tag 0x82, length 0x03e8)" + data> 0x18 (using tag type 0x2d=''UTF-8 string, 2-octet length'', + vendor tag 0x82, length 0x03e8)" PICS: MCORE.DD.SCAN_QR_CODE verification: | No applicable TH logs. @@ -173,7 +173,7 @@ tests: [1667807539.277261][12433:12433] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 - 2. Build TLV Data into TH's QR code using chip-tool"s generate-qrcode command. To generate the QR code containing the 1000-byte TLV data, use the following command and piece together the 2 log lines of output. + 2. Build TLV Data into TH's QR code using chip-tool's generate-qrcode command. To generate the QR code containing the 1000-byte TLV data, use the following command and piece together the 2 log lines of output. NOTE: The finished QR code is in the verification step already. ./chip-tool payload generate-qrcode --existing-payload MT:-24J042C00KA0648G00 --tlvBytes hex:152d82e8033132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393018 diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml index 9a59369735cd10..066402b7167fa6 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml @@ -34,7 +34,7 @@ tests: - label: "Preconditions" verification: | - Manual Pairing Code is printed on the device or in additional provided materials (ex: manual) + Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - label: @@ -67,7 +67,7 @@ tests: 2. Parse 11-digit Manual Pairing code - ./chip-tool payload parse-setup-payload 34970112332 + ./chip-tool payload parse-setup-payload 34970112332 Verify in DUT(CHIP-TOOL) [1667811737.160767][10335:10335] CHIP:SPL: Parsing decimalRepresentation: 34970112332 @@ -81,7 +81,7 @@ tests: 3. Parse 21-digit Manual Pairing code - ./chip-tool payload parse-setup-payload 749701123365521327694 + ./chip-tool payload parse-setup-payload 749701123365521327694 Verify in DUT as commissoiner side: CHIP:SPL: Parsing decimalRepresentation: 749701123365521327694 @@ -99,10 +99,10 @@ tests: Verify in DUT(CHIP-TOOL) [1653556303.582797][4071:4076] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 [1653556303.582850][4071:4076] CHIP:CTL: Received CommissioningComplete response, errorCode=0 - [1653556303.582891][4071:4076] CHIP:CTL: Successfully finished commissioning step "SendComplete" - [1653556303.582927][4071:4076] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - [1653556303.582964][4071:4076] CHIP:CTL: Performing next commissioning step "Cleanup" - [1653556303.583040][4071:4076] CHIP:CTL: Successfully finished commissioning step "Cleanup" + [1653556303.582891][4071:4076] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1653556303.582927][4071:4076] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1653556303.582964][4071:4076] CHIP:CTL: Performing next commissioning step 'Cleanup' + [1653556303.583040][4071:4076] CHIP:CTL: Successfully finished commissioning step 'Cleanup' [1653556303.583110][4071:4076] CHIP:TOO: Device commissioning completed with success [1653556303.583209][4071:4076] CHIP:DMG: ICR moving to [AwaitingDe] [1653556303.583255][4071:4076] CHIP:EM: Sending Standalone Ack for MessageCounter:9735725 on exchange 24476i diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml index 308445ff364a84..3edd959864b175 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml @@ -37,7 +37,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). + 2 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -105,10 +105,10 @@ tests: ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 [1657232374820] [31379:16804218] CHIP: [CTL] Received CommissioningComplete response, errorCode=0 - [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1657232374820] [31379:16804218] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1657232374820] [31379:16804218] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657232374820] [31379:16804218] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657232374820] [31379:16804218] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657232374820] [31379:16804218] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657232374820] [31379:16804218] CHIP: [TOO] Device commissioning completed with success Verifiy on TH(ALL-CLUSTER-APP): @@ -160,10 +160,10 @@ tests: ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 [1651105530854] [95067:65607294] CHIP: [CTL] Received CommissioningComplete response - [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651105530854] [95067:65607294] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651105530854] [95067:65607294] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651105530854] [95067:65607294] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651105530854] [95067:65607294] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651105530854] [95067:65607294] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651105530854] [95067:65607294] CHIP: [TOO] Device commissioning completed with success Verifiy on TH(ALL-CLUSTER-APP): diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml index f61869fdc2b1fd..3cee8442b562c6 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml @@ -37,7 +37,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). + 2 - 5.1.3 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -108,10 +108,10 @@ tests: Verify on the DUT (CHIP-TOOL): ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 - [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657234147237] [31454:16822562] CHIP: [TOO] Device commissioning completed with success disabled: true @@ -162,10 +162,10 @@ tests: Verify on the DUT (CHIP-TOOL): ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 - [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657234324847] [31475:16824564] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml index e9e517757f305b..292d6f8650dc97 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml @@ -37,7 +37,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). + 2 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -116,7 +116,7 @@ tests: Verify on the DUT (Chip-tool): ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 - [1657235087918] [31502:16832693] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657235087918] [31502:16832693] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657235087918] [31502:16832693] CHIP: [TOO] Device commissioning completed with success disabled: true @@ -177,7 +177,7 @@ tests: Verify on the DUT (Chip-tool): ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 - [1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657235198856] [31506:16834043] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml index 9b85eaf3df8809..9f3933b56e83f3 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml @@ -36,7 +36,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). + 2 - 5.1.3 - QR Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes: @@ -84,7 +84,7 @@ tests: but substituting out the current Version String with an invalid Version String (i.e. '010' or any non-zero 3-bit value)" verification: | - 1. Use chip-tool"s "payload generate-qrcode" command to help generate the new, invalid QR code + 1. Use chip-tool's "payload generate-qrcode" command to help generate the new, invalid QR code Verify on the TH (All-cluster-app) ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1 --version 2 [1657235626568] [31698:16839018] CHIP: [TOO] QR Code: MT:034J029Q00KA0648G00 @@ -108,7 +108,7 @@ tests: discovery capability)" PICS: MCORE.DD.DISCOVERY_BLE verification: | - 1. Use chip-tool"s "payload generate-qrcode" command to help generate the new, invalid QR code + 1. Use chip-tool's "payload generate-qrcode" command to help generate the new, invalid QR code Verify on the TH (All-cluster-app) ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1 --rendezvous 4 [1657235754393] [31702:16840391] CHIP: [TOO] QR Code: MT:-24J029Q00KA0648G00 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml index 75cade09e4c756..77e900f73e04e1 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml @@ -37,7 +37,7 @@ tests: Preconditions 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.4.2 - Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual). + 2 - 5.1.4.2 - Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding payload could be "34970112332" (11-digit) or could be "749701123365521327694" (21-digit) (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include: @@ -95,10 +95,10 @@ tests: ./chip-tool pairing code 1 34970112332 [1651109112823] [95528:65650355] CHIP: [CTL] Received CommissioningComplete response - [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651109112823] [95528:65650355] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651109112823] [95528:65650355] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651109112823] [95528:65650355] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651109112823] [95528:65650355] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651109112823] [95528:65650355] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651109112823] [95528:65650355] CHIP: [TOO] Device commissioning completed with success disabled: true @@ -150,9 +150,9 @@ tests: ./chip-tool pairing code 1 749701123365521327694 [1651109219028] [95536:65652322] CHIP: [CTL] Received CommissioningComplete response - [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651109219028] [95536:65652322] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651109219028] [95536:65652322] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651109219028] [95536:65652322] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651109219028] [95536:65652322] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651109219028] [95536:65652322] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651109219028] [95536:65652322] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml index 713836a53bda4b..00dccf424bfd47 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml @@ -35,7 +35,7 @@ tests: verification: | 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.4.2 - 11-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual). + 2 - 5.1.4.2 - 11-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding payload could be "34970112332" (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include: @@ -82,7 +82,7 @@ tests: code but substituting out the current VERSION with an invalid VERSION: 2" verification: | - 1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code Verify on the DUT (Chip-tool): ./chip-tool payload verhoeff-generate 8497011233 @@ -108,7 +108,7 @@ tests: manual code but substituting out the current VID_PID_PRESENT with an invalid VID_PID_PRESENT set to 1" verification: | - 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify on the DUT (Chip-tool): ./chip-tool payload generate-manualcode --discriminator 0xF00 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 2 --force-short-code 1 @@ -137,7 +137,7 @@ tests: discriminator value and adheres to rules of section 5.1.1.5. 'Discriminator value')" verification: | - 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify on the DUT (Chip-tool): ./chip-tool payload generate-manualcode --existing-payload 34970112332 --discriminator 0xE00 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml index 696268becb4de1..c00f141b770537 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml @@ -37,7 +37,7 @@ tests: Preconditions 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. - 2 - 5.1.4.2 - 21-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual). + 2 - 5.1.4.2 - 21-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). An example onboarding payload could be "749701123365521327694" (21-digit) (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include: @@ -89,7 +89,7 @@ tests: code but substituting out the current VERSION with an invalid VERSION: 2" verification: | - 1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code No applicable TH or DUT logs. ./chip-tool payload verhoeff-generate 84970112336552132769 @@ -115,7 +115,7 @@ tests: manual code but substituting out the current VID_PID_PRESENT with an invalid VID_PID_PRESENT set to 0" verification: | - 1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): ./chip-tool payload verhoeff-generate 34970112336552132769 @@ -147,7 +147,7 @@ tests: discriminator value and adheres to rules of section 5.1.1.5. 'Discriminator value')" verification: | - 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --discriminator 3584 @@ -180,7 +180,7 @@ tests: 1. Use this as an example of how to generate a manual code with an invalid passcode. In this example the invalid passcode=00000000 Verify in DUT (Chip-tool): - Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --setup-pin-code 00000000 [1657239062245] [32164:16876812] CHIP: [TOO] Manual Code: 749152000065521327698 @@ -286,13 +286,13 @@ tests: (0xFFF4) ./chip-tool pairing code 1 749701123365524327693 - [1667893519.289945][2201:2203] CHIP:CTL: Successfully finished commissioning step "SendComplete" - [1667893519.290002][2201:2203] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - [1667893519.290101][2201:2203] CHIP:CTL: Performing next commissioning step "Cleanup" + [1667893519.289945][2201:2203] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1667893519.290002][2201:2203] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1667893519.290101][2201:2203] CHIP:CTL: Performing next commissioning step 'Cleanup' [1667893519.290169][2201:2203] CHIP:IN: SecureSession[0xffff8000aa10]: MarkForEviction Type:1 LSID:45403 - [1667893519.290227][2201:2203] CHIP:SC: SecureSession[0xffff8000aa10]: Moving from state "kActive" --> "kPendingEviction" + [1667893519.290227][2201:2203] CHIP:SC: SecureSession[0xffff8000aa10]: Moving from state 'kActive' --> 'kPendingEviction' [1667893519.290365][2201:2203] CHIP:IN: SecureSession[0xffff8000aa10]: Released - Type:1 LSID:45403 - [1667893519.290450][2201:2203] CHIP:CTL: Successfully finished commissioning step "Cleanup" + [1667893519.290450][2201:2203] CHIP:CTL: Successfully finished commissioning step 'Cleanup' [1667893519.290540][2201:2203] CHIP:TOO: Device commissioning completed with success [1667893519.290691][2201:2203] CHIP:DMG: ICR moving to [AwaitingDe] [1667893519.290894][2201:2203] CHIP:EM: <<< [E:27144i M:100805848 (Ack:153455649)] (S) Msg TX to 1:0000000000000001 [3FBC] --- Type 0000:10 (SecureChannel:StandaloneAck) @@ -303,7 +303,7 @@ tests: [1667893519.292017][2201:2201] CHIP:CTL: Shutting down the controller [1667893519.292084][2201:2201] CHIP:IN: Expiring all sessions for fabric 0x1!! [1667893519.292143][2201:2201] CHIP:IN: SecureSession[0xffff80010440]: MarkForEviction Type:2 LSID:45404 - [1667893519.292199][2201:2201] CHIP:SC: SecureSession[0xffff80010440]: Moving from state "kActive" --> "kPendingEviction" + [1667893519.292199][2201:2201] CHIP:SC: SecureSession[0xffff80010440]: Moving from state 'kActive' --> 'kPendingEviction' [1667893519.292254][2201:2201] CHIP:IN: SecureSession[0xffff80010440]: Released - Type:2 LSID:45404 [1667893519.292315][2201:2201] CHIP:FP: Forgetting fabric 0x1 [1667893519.292390][2201:2201] CHIP:TS: Pending Last Known Good Ti @@ -315,7 +315,7 @@ tests: PRODUCT_ID of 0x0000(i.e. While following section 2.5.3. 'Product Identifier')" verification: | - 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code + 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --product-id 0x0000 @@ -339,7 +339,7 @@ tests: CHECK_DIGIT while following Table 39. Encoding Method with Vendor and Product IDs included (VID_PID_Present == 1))" verification: | - 1. Use chip-tool"s "payload verhoeff-verify" command to help verify that the check-digit is invalid + 1. Use chip-tool's "payload verhoeff-verify" command to help verify that the check-digit is invalid Verify in DUT (Chip-tool): ./chip-tool payload verhoeff-verify 749701123365521327693 20 diff --git a/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml index e2105566cf1c2c..d21203edc47941 100644 --- a/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 84.1.1. [TC-DESC-1.1] Global Attributes [DUT-Server] +name: 84.1.1. [TC-DESC-1.1] Global Attributes with DUT as Server PICS: - DESC.S diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml index 8606d71c36013e..d5b36838f78512 100644 --- a/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 47.1.1. [TC-DGETH-1.1] Global Attributes [DUT as Server] +name: 47.1.1. [TC-DGETH-1.1] Global Attributes with DUT as Server PICS: - DGETH.S @@ -212,6 +212,34 @@ tests: - name: "expectedValue" value: "y" + - label: + "TH reads EventList attribute from DUT. 1.The list MAY contain values + in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - + 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), + these values SHALL be ignored. 2.The list SHALL NOT contain any values + in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), + (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where + XXXX is the allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool ethernetnetworkdiagnostics read event-list 1 0 + Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: + + [1676459303.132712][25176:25178] CHIP:DMG: } + [1676459303.132751][25176:25178] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFA DataVersion: 2330608789 + [1676459303.132772][25176:25178] CHIP:TOO: EventList: 0 entries + [1676459303.132795][25176:25178] CHIP:EM: <<< [E:41866i S:29076 M:220910528 (Ack:11574043)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676459303.132799][25176:25178] CHIP:IN: (S) Sending msg 220910528 on secure session with LSID: 29076 + [1676459303.132809][25176:25178] CHIP:EM: Flushed pending ack for MessageCounter:11574043 on exchange 41866i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && DGETH.S.Afffa + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "TH reads AcceptedCommandList from DUT" PICS: ( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9 command: "readAttribute" @@ -282,31 +310,3 @@ tests: value: "Please enter 'y' for success" - name: "expectedValue" value: "y" - - - label: - "TH reads EventList attribute from DUT. 1.The list MAY contain values - in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), - these values SHALL be ignored. 2.The list SHALL NOT contain any values - in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), - (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where - XXXX is the allowed MEI range (0x0001 - 0xFFF1)" - verification: | - ./chip-tool ethernetnetworkdiagnostics read event-list 1 0 - Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: - - [1676459303.132712][25176:25178] CHIP:DMG: } - [1676459303.132751][25176:25178] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFA DataVersion: 2330608789 - [1676459303.132772][25176:25178] CHIP:TOO: EventList: 0 entries - [1676459303.132795][25176:25178] CHIP:EM: <<< [E:41866i S:29076 M:220910528 (Ack:11574043)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) - [1676459303.132799][25176:25178] CHIP:IN: (S) Sending msg 220910528 on secure session with LSID: 29076 - [1676459303.132809][25176:25178] CHIP:EM: Flushed pending ack for MessageCounter:11574043 on exchange 41866i - cluster: "LogCommands" - command: "UserPrompt" - PICS: PICS_USER_PROMPT && DGETH.S.Afffa - arguments: - values: - - name: "message" - value: "Please enter 'y' for success" - - name: "expectedValue" - value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml index d42ee1fcf64a92..51c0a686d8c781 100644 --- a/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 45.2.1. [TC-DGETH-2.1] Attributes with server as DUT +name: 47.2.1. [TC-DGETH-2.1] Attributes [DUT as Server] PICS: - DGETH.S diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_2_2.yaml index 78c53eb9436548..6507dc3af97304 100644 --- a/src/app/tests/suites/certification/Test_TC_DGETH_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGETH_2_2.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 45.2.2. [TC-DGETH-2.2] Command received functionality with server as DUT +name: 47.2.2. [TC-DGETH-2.2] Command Received [DUT as Server] PICS: - DGETH.S diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml deleted file mode 100644 index fa4014112b76cb..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.3.2. [TC-DGETH-3.2] Command Generated {DUT_Client}] - -PICS: - - DGETH.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetCounts to TH." - PICS: DGETH.C.C00.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool ethernetnetworkdiagnostics reset-counts 1 0 - - Verify Command data recieved from running the below command is a success on TH(all-clusters-app) Log - - [1659960382.148753][4826:4826] CHIP:DMG: InvokeRequestMessage = - [1659960382.148777][4826:4826] CHIP:DMG: { - [1659960382.148798][4826:4826] CHIP:DMG: suppressResponse = false, - [1659960382.148822][4826:4826] CHIP:DMG: timedRequest = false, - [1659960382.148856][4826:4826] CHIP:DMG: InvokeRequests = - [1659960382.148889][4826:4826] CHIP:DMG: [ - [1659960382.148921][4826:4826] CHIP:DMG: CommandDataIB = - [1659960382.148948][4826:4826] CHIP:DMG: { - [1659960382.148981][4826:4826] CHIP:DMG: CommandPathIB = - [1659960382.149013][4826:4826] CHIP:DMG: { - [1659960382.149051][4826:4826] CHIP:DMG: EndpointId = 0x0, - [1659960382.149081][4826:4826] CHIP:DMG: ClusterId = 0x37, - [1659960382.149119][4826:4826] CHIP:DMG: CommandId = 0x0, - [1659960382.149149][4826:4826] CHIP:DMG: }, - [1659960382.149178][4826:4826] CHIP:DMG: - [1659960382.149212][4826:4826] CHIP:DMG: CommandFields = - [1659960382.149239][4826:4826] CHIP:DMG: { - [1659960382.149276][4826:4826] CHIP:DMG: }, - [1659960382.149302][4826:4826] CHIP:DMG: }, - [1659960382.149337][4826:4826] CHIP:DMG: - [1659960382.149358][4826:4826] CHIP:DMG: ], - [1659960382.149392][4826:4826] CHIP:DMG: - [1659960382.149413][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960382.149433][4826:4826] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml new file mode 100644 index 00000000000000..ed99dc255d3ae9 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 47.3.2. [TC-DGETH-3.2] Command Generated DUT as Client] + +PICS: + - DGETH.C + +config: + nodeId: 0x12344321 + cluster: "Ethernet Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends ResetCounts to TH" + PICS: DGETH.C.C00.Tx + wait: "ResetCounts" diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml index 91b1c2a49c74ba..f60c8eaaa1e7b5 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 85.1.1. [TC-DGGEN-1.1] Global attributes with server as DUT +name: 88.1.1. [TC-DGGEN-1.1] Global Attributes with DUT as Server PICS: - DGGEN.S diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml index 76bf4f7fb6c605..c4ae78848fd361 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 85.2.1. [TC-DGGEN-2.1] Attributes with server as DUT +name: 88.2.1. [TC-DGGEN-2.1] Attributes [DUT as Server] PICS: - DGGEN.S diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml index cbca8ba3a409c3..5873be3dd4670c 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.2.2. [TC-DGGEN-2.2] Event functionality test with server as DUT +name: 88.2.2. [TC-DGGEN-2.2] Event Functionality [DUT as Server] PICS: - DGGEN.S @@ -50,9 +50,10 @@ tests: more time.)" PICS: DGGEN.S.E00 verification: | - Optional attribute so its not compulsory to get the expected outcome + Optional Event so its not compulsory to get the expected outcome On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT + echo '{"Name":"HardwareFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event hardware-fault-change 1 0 @@ -61,14 +62,22 @@ tests: detected by the Node. The current and previous field SHALL represent the set of faults as per Section 11.11.6.1, “HardwareFault enum”, On TH(chip-tool) - [1659530031.316459][4951:4956] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0000 - [1659530031.316486][4951:4956] CHIP:TOO: Event number: 6 - [1659530031.316505][4951:4956] CHIP:TOO: Priority: Critical - [1659530031.316524][4951:4956] CHIP:TOO: Timestamp: 32093879 - [1659530031.316629][4951:4956] CHIP:TOO: HardwareFaultChange: { - [1659530031.316697][4951:4956] CHIP:TOO: Current: 0 entries - [1659530031.316752][4951:4956] CHIP:TOO: Previous: 0 entries - [1659530031.316778][4951:4956] CHIP:TOO: } + [1684144494.712474][50333:50335] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0000 + [1684144494.712481][50333:50335] CHIP:TOO: Event number: 4 + [1684144494.712487][50333:50335] CHIP:TOO: Priority: Critical + [1684144494.712491][50333:50335] CHIP:TOO: Timestamp: 1684144478245 + [1684144494.712532][50333:50335] CHIP:TOO: HardwareFaultChange: { + [1684144494.712549][50333:50335] CHIP:TOO: Current: 4 entries + [1684144494.712578][50333:50335] CHIP:TOO: [1]: 1 + [1684144494.712588][50333:50335] CHIP:TOO: [2]: 2 + [1684144494.712595][50333:50335] CHIP:TOO: [3]: 5 + [1684144494.712602][50333:50335] CHIP:TOO: [4]: 8 + [1684144494.712610][50333:50335] CHIP:TOO: Previous: 2 entries + [1684144494.712617][50333:50335] CHIP:TOO: [1]: 1 + [1684144494.712623][50333:50335] CHIP:TOO: [2]: 5 + [1684144494.712630][50333:50335] CHIP:TOO: } + [1684144494.712706][50333:50335] CHIP:EM: <<< [E:38263i S:20357 M:150922929 (Ack:189840504)] (S) Msg TX to 1:0000000000000001 [EDC1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1684144494.712720][50333:50335] CHIP:IN: (S) Sending msg 150922929 on secure session with LSID: 20357 disabled: true - label: @@ -79,24 +88,32 @@ tests: previous TH fabric." PICS: DGGEN.S.E01 verification: | - Optional attribute so its not compulsory to get the expected outcome - + Optional Event so its not compulsory to get the expected outcome On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT - echo '{"Name":"RadioFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) + + echo '{"Name":"RadioFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event radio-fault-change 1 0 Verify that RadioFaultChange Event SHALL indicate a change in the set of radio faults currently detected by the Node.TH receives RadioFaultChange event with current and previous data specified by RadioFault ENUM table 11.11.6.2 according to two repeated failures On TH(chip-tool) - [1659530181.319598][4969:4975] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0001 - [1659530181.319628][4969:4975] CHIP:TOO: Event number: 7 - [1659530181.319652][4969:4975] CHIP:TOO: Priority: Critical - [1659530181.319675][4969:4975] CHIP:TOO: Timestamp: 32245892 - [1659530181.319768][4969:4975] CHIP:TOO: RadioFaultChange: { - [1659530181.319814][4969:4975] CHIP:TOO: Current: 0 entries - [1659530181.319848][4969:4975] CHIP:TOO: Previous: 0 entries - [1659530181.319878][4969:4975] CHIP:TOO: } + [1684144521.151145][50343:50345] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0001 + [1684144521.151152][50343:50345] CHIP:TOO: Event number: 5 + [1684144521.151160][50343:50345] CHIP:TOO: Priority: Critical + [1684144521.151167][50343:50345] CHIP:TOO: Timestamp: 1684144512621 + [1684144521.151208][50343:50345] CHIP:TOO: RadioFaultChange: { + [1684144521.151223][50343:50345] CHIP:TOO: Current: 4 entries + [1684144521.151236][50343:50345] CHIP:TOO: [1]: 1 + [1684144521.151248][50343:50345] CHIP:TOO: [2]: 2 + [1684144521.151260][50343:50345] CHIP:TOO: [3]: 3 + [1684144521.151270][50343:50345] CHIP:TOO: [4]: 4 + [1684144521.151283][50343:50345] CHIP:TOO: Previous: 2 entries + [1684144521.151293][50343:50345] CHIP:TOO: [1]: 1 + [1684144521.151303][50343:50345] CHIP:TOO: [2]: 3 + [1684144521.151313][50343:50345] CHIP:TOO: } + [1684144521.151392][50343:50345] CHIP:EM: <<< [E:9727i S:1308 M:147284449 (Ack:216976802)] (S) Msg TX to 1:0000000000000001 [EDC1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1684144521.151406][50343:50345] CHIP:IN: (S) Sending msg 147284449 on secure session with LSID: 1308 disabled: true - label: @@ -107,22 +124,33 @@ tests: rejoining DUT back to previous TH fabric.)" PICS: DGGEN.S.E02 verification: | + Optional Event so its not compulsory to get the expected outcome + On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT - echo '{"Name":"NetworkFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) + + echo '{"Name":"NetworkFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event network-fault-change 1 0 Verify that NetworkFaultChange Event SHALL indicate a change in the set of network faults currently TH receives NetworkFaultChange event with current and previous data specified by NetworkFault ENUM table 11.11.2.3 according to two failure causes, On TH(chip-tool) - [1659530237.352498][4985:4990] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0002 - [1659530237.352541][4985:4990] CHIP:TOO: Event number: 8 - [1659530237.352573][4985:4990] CHIP:TOO: Priority: Critical - [1659530237.352604][4985:4990] CHIP:TOO: Timestamp: 32301872 - [1659530237.352728][4985:4990] CHIP:TOO: NetworkFaultChange: { - [1659530237.352786][4985:4990] CHIP:TOO: Current: 0 entries - [1659530237.352831][4985:4990] CHIP:TOO: Previous: 0 entries - [1659530237.352874][4985:4990] CHIP:TOO: } + [1684144729.918248][50378:50380] CHIP:DMG: } + [1684144729.918277][50378:50380] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0002 + [1684144729.918279][50378:50380] CHIP:TOO: Event number: 6 + [1684144729.918281][50378:50380] CHIP:TOO: Priority: Critical + [1684144729.918282][50378:50380] CHIP:TOO: Timestamp: 1684144547365 + [1684144729.918299][50378:50380] CHIP:TOO: NetworkFaultChange: { + [1684144729.918306][50378:50380] CHIP:TOO: Current: 3 entries + [1684144729.918310][50378:50380] CHIP:TOO: [1]: 1 + [1684144729.918312][50378:50380] CHIP:TOO: [2]: 2 + [1684144729.918314][50378:50380] CHIP:TOO: [3]: 3 + [1684144729.918317][50378:50380] CHIP:TOO: Previous: 2 entries + [1684144729.918319][50378:50380] CHIP:TOO: [1]: 1 + [1684144729.918321][50378:50380] CHIP:TOO: [2]: 2 + [1684144729.918323][50378:50380] CHIP:TOO: } + [1684144729.918348][50378:50380] CHIP:EM: <<< [E:3897i S:30865 M:110094271 (Ack:224914158)] (S) Msg TX to 1:0000000000000001 [EDC1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1684144729.918352][50378:50380] CHIP:IN: (S) Sending msg 110094271 on secure session with LSID: 30865 disabled: true - label: @@ -130,8 +158,6 @@ tests: TH fabric." PICS: DGGEN.S.E03 verification: | - Optional attribute so its not compulsory to get the expected outcome - On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT echo '{"Name":""}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) @@ -139,11 +165,13 @@ tests: Read the event data of BootReason specified by Table 103 BootReason ENUM table On TH(chip-tool) - [1659530352.583608][4993:4998] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0003 - [1659530352.583636][4993:4998] CHIP:TOO: Event number: 0 - [1659530352.583656][4993:4998] CHIP:TOO: Priority: Critical - [1659530352.583675][4993:4998] CHIP:TOO: Timestamp: 29669541 - [1659530352.583750][4993:4998] CHIP:TOO: BootReason: { - [1659530352.583789][4993:4998] CHIP:TOO: BootReason: 0 - [1659530352.583813][4993:4998] CHIP:TOO: } + [1684144762.620015][50386:50388] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0003 + [1684144762.620021][50386:50388] CHIP:TOO: Event number: 0 + [1684144762.620026][50386:50388] CHIP:TOO: Priority: Critical + [1684144762.620032][50386:50388] CHIP:TOO: Timestamp: 1684144422477 + [1684144762.620066][50386:50388] CHIP:TOO: BootReason: { + [1684144762.620084][50386:50388] CHIP:TOO: BootReason: 0 + [1684144762.620090][50386:50388] CHIP:TOO: } + [1684144762.620152][50386:50388] CHIP:EM: <<< [E:4771i S:40131 M:192514327 (Ack:118464853)] (S) Msg TX to 1:0000000000000001 [EDC1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1684144762.620165][50386:50388] CHIP:IN: (S) Sending msg 192514327 on secure session with LSID: 40131 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml index 9601aa00adb4d0..4d815ff45e5ac9 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.2.3. [TC-DGGEN-2.3] Command Received [DUT Server] +name: 88.2.3. [TC-DGGEN-2.3] Command Received [DUT as Server] PICS: - DGGEN.S diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml index c42de650a5f2b6..b58804cbad13b0 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.3.1. [TC-DGGEN-3.1] Attributes observed at client side as DUT +name: 88.3.1. [TC-DGGEN-3.1] Attributes [DUT as Client] PICS: - DGGEN.C @@ -76,6 +76,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read reboot-count 1 0 + verify that RebootCount attribute data type must be UINT16 and the count should match with the number of rebooted times on TH(all-clusters-app). Received Read request @@ -144,6 +145,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read total-operational-hours 1 0 + verify that TotalOperationalHours attribute data type must be UINT32 and the value indicates the number of hours the node has been operational since DUT (node) has been rebooted on TH(all-clusters-app). ReadRequestMessage = @@ -213,6 +215,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read active-hardware-faults 1 0 + verify that ActiveHardwareFaults attribute the attribute response should be empty. But when a hardware fault occurs, the return attribute value must match the value listed in the HardwareFault ENUM table 11.11.6.1 on TH(all-clusters-app). [1659773303.234177][17263:17263] CHIP:DMG: @@ -255,6 +258,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read active-radio-faults 1 0 + verify that the attribute response should be empty. But when a radio fault occurs, the return attribute value must match the value listed in the RadioFault ENUM table. 11.11.6.2 on TH(all-clusters-app). [1659971190.358722][3458:3458] CHIP:IM: Received Read request @@ -290,6 +294,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read active-network-faults 1 0 + verify that ActiveNetworkFaults attribute value attribute response should be empty. But when a network fault occurs, the return attribute value must match the value listed in the NetworkFault ENUM on TH(all-clusters-app) ReadRequestMessage = @@ -325,6 +330,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read test-event-triggers-enabled 1 0 + verify that TestEventTriggersEnabled attribute value should be data type bool on TH(all-clusters-app) ReadRequestMessage = diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml index 6f18c56d3df09b..71e40d75a04a1c 100644 --- a/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 44.1.1. [TC-DGSW-1.1] Global Attributes [DUT_Sever] +name: 44.1.1. [TC-DGSW-1.1] Global Attributes with DUT as Server PICS: - DGSW.S diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml deleted file mode 100644 index 496b7a6229d0c9..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.3.2. [TC-DGSW-3.2] Commands Generated [{DUT_Client}] - -PICS: - - DGSW.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetWatermarks to TH." - PICS: DGSW.C.C00.Tx - verification: | - ./chip-tool softwarediagnostics reset-watermarks 1 0 - - Verify the success response on TH(all-clusters-app) Log: - - [1666950895.120765][5367:5367] CHIP:EM: Handling via exchange: 21122r, Delegate: 0xaaaac4ce0288 - [1666950895.120930][5367:5367] CHIP:DMG: InvokeRequestMessage = - [1666950895.121022][5367:5367] CHIP:DMG: { - [1666950895.121081][5367:5367] CHIP:DMG: suppressResponse = false, - [1666950895.121148][5367:5367] CHIP:DMG: timedRequest = false, - [1666950895.121232][5367:5367] CHIP:DMG: InvokeRequests = - [1666950895.121311][5367:5367] CHIP:DMG: [ - [1666950895.121394][5367:5367] CHIP:DMG: CommandDataIB = - [1666950895.121481][5367:5367] CHIP:DMG: { - [1666950895.121584][5367:5367] CHIP:DMG: CommandPathIB = - [1666950895.121675][5367:5367] CHIP:DMG: { - [1666950895.121777][5367:5367] CHIP:DMG: EndpointId = 0x0, - [1666950895.121870][5367:5367] CHIP:DMG: ClusterId = 0x34, - [1666950895.121985][5367:5367] CHIP:DMG: CommandId = 0x0, - [1666950895.122066][5367:5367] CHIP:DMG: }, - [1666950895.122174][5367:5367] CHIP:DMG: - [1666950895.122247][5367:5367] CHIP:DMG: CommandFields = - [1666950895.122356][5367:5367] CHIP:DMG: { - [1666950895.122443][5367:5367] CHIP:DMG: }, - [1666950895.122550][5367:5367] CHIP:DMG: }, - [1666950895.122631][5367:5367] CHIP:DMG: - [1666950895.122744][5367:5367] CHIP:DMG: ], - [1666950895.122824][5367:5367] CHIP:DMG: - [1666950895.122913][5367:5367] CHIP:DMG: InteractionModelRevision = 1 - [1666950895.122978][5367:5367] CHIP:DMG: }, - [1666950895.123150][5367:5367] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0034 e=0 p=o - [1666950895.123234][5367:5367] CHIP:DMG: AccessControl: allowed - [1666950895.123326][5367:5367] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0034 Command=0x0000_0000 - [1666950895.123421][5367:5367] CHIP:DMG: Command handler moving to [ Preparing] - [1666950895.123520][5367:5367] CHIP:DMG: Command handler moving to [AddingComm] - [1666950895.123586][5367:5367] CHIP:DMG: Command handler moving to [AddedComma] - [1666950895.123697][5367:5367] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1666950895.124253][5367:5367] CHIP:EM: <<< [E:21122r M:53749270 (Ack:215040220)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:09 (IM:InvokeCommandResponse) - [1666950895.124353][5367:5367] CHIP:IN: (S) Sending msg 53749270 on secure session with LSID: 41627 - [1666950895.125043][5367:5367] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:43984 | 53749270 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 7655 / Exchange = 21122] - [1666950895.125300][5367:5367] CHIP:DMG: Header Flags = - [1666950895.125360][5367:5367] CHIP:DMG: { - [1666950895.125474][5367:5367] CHIP:DMG: Exchange (0x06) = - [1666950895.125533][5367:5367] CHIP:DMG: { - [1666950895.125592][5367:5367] CHIP:DMG: AckMsg = 215040220 - [1666950895.125670][5367:5367] CHIP:DMG: NeedsAck = true - [1666950895.125728][5367:5367] CHIP:DMG: } - [1666950895.125801][5367:5367] CHIP:DMG: } - [1666950895.125881][5367:5367] CHIP:DMG: - [1666950895.125949][5367:5367] CHIP:DMG: Encrypted Payload (67 bytes) = - [1666950895.126029][5367:5367] CHIP:DMG: { - [1666950895.126086][5367:5367] CHIP:DMG: data = 00e71d001626340381eb47b7c924c57eb20842e6809b145878249948f15f820ef8edeb3aab5886a560d141b458fddda64b7a1d8caec61fd9ad1f223049490f6b8d9160 - [1666950895.126144][5367:5367] CHIP:DMG: buffer_ptr = 187650549874176 - [1666950895.126198][5367:5367] CHIP:DMG: } - [1666950895.126251][5367:5367] CHIP:DMG: - [1666950895.126421][5367:5367] CHIP:DMG: InvokeResponseMessage = - [1666950895.126509][5367:5367] CHIP:DMG: { - [1666950895.126569][5367:5367] CHIP:DMG: suppressResponse = false, - [1666950895.126638][5367:5367] CHIP:DMG: InvokeResponseIBs = - [1666950895.126768][5367:5367] CHIP:DMG: [ - [1666950895.126840][5367:5367] CHIP:DMG: InvokeResponseIB = - [1666950895.126960][5367:5367] CHIP:DMG: { - [1666950895.127033][5367:5367] CHIP:DMG: CommandStatusIB = - [1666950895.127147][5367:5367] CHIP:DMG: { - [1666950895.127226][5367:5367] CHIP:DMG: CommandPathIB = - [1666950895.127333][5367:5367] CHIP:DMG: { - [1666950895.127429][5367:5367] CHIP:DMG: EndpointId = 0x0, - [1666950895.127715][5367:5367] CHIP:DMG: ClusterId = 0x34, - [1666950895.127833][5367:5367] CHIP:DMG: CommandId = 0x0, - [1666950895.127928][5367:5367] CHIP:DMG: }, - [1666950895.128044][5367:5367] CHIP:DMG: - [1666950895.128127][5367:5367] CHIP:DMG: StatusIB = - [1666950895.128212][5367:5367] CHIP:DMG: { - [1666950895.128331][5367:5367] CHIP:DMG: status = 0x00 (SUCCESS), - [1666950895.128449][5367:5367] CHIP:DMG: }, - [1666950895.128544][5367:5367] CHIP:DMG: - [1666950895.128644][5367:5367] CHIP:DMG: }, - [1666950895.128741][5367:5367] CHIP:DMG: - [1666950895.128833][5367:5367] CHIP:DMG: }, - [1666950895.128918][5367:5367] CHIP:DMG: - [1666950895.129000][5367:5367] CHIP:DMG: ], - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml new file mode 100644 index 00000000000000..a49b6e016f1cc8 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 43.3.1. [TC-DGSW-3.2] Attributes observation with client as DUT + +PICS: + - DGSW.C + +config: + nodeId: 0x12344321 + cluster: "Software Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends ResetWatermarks to TH" + PICS: DGSW.C.C00.Tx + wait: "ResetWatermarks" diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2.yaml deleted file mode 100644 index 892611d1569a54..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2.yaml +++ /dev/null @@ -1,343 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 50.3.2. [TC-DGTHREAD-3.2] Attributes-Tx [DUT- Client] - -PICS: - - DGTHREAD.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - 1.For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - 2.Chip-tool command used below are an example to verify the in DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command - disabled: true - - - label: "Commission DUT to TH" - verification: | - - disabled: true - - - label: "DUT reads TxTotalCount attribute value from TH" - PICS: DGTHREAD.C.A0016 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-total-count 54 0 - - Verify "TxTotalCount response" on the TH(All-cluster-app) Log: - - D: 2843340 [SC]Allocated SecureSession (0x20002e98) - waiting for Sigma1 msg - I: 2843348 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:148275633 on exchar - D: 2843358 [EM]Handling via exchange: 4328r, Delegate: 0x200070ec - D: 2843364 [IM]Received Read request - D: 2843369 [DMG]IM RH moving to [GeneratingReports] - D: 2843374 [EM]Retransmitting MessageCounter:53367852 on exchange 4327r Send Cnt 1 - I: 2843382 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367852 to 0x0000000000000000c - D: 2843396 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 2843405 [DMG] Cluster 35, Attribute 16 is dirty - D: 2843412 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0016 (expanded=0) - D: 2843421 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxUnicastCount attribute value from TH" - PICS: DGTHREAD.C.A0017 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-unicast-count 54 0 - - Verify "TxUnicastCount response" on the TH(All-cluster-app) Log: - - D: 3036505 [SC]Allocated SecureSession (0x20002f50) - waiting for Sigma1 msg - I: 3036513 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:134883675 on exchar - D: 3036523 [EM]Handling via exchange: 50096r, Delegate: 0x200070ec - D: 3036529 [IM]Received Read request - D: 3036533 [DMG]IM RH moving to [GeneratingReports] - D: 3036538 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3036546 [DMG] Cluster 35, Attribute 17 is dirty - D: 3036552 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0017 (expanded=0) - D: 3036563 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxBroadcastCount attribute value from TH" - PICS: DGTHREAD.C.A0018 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-broadcast-count 54 0 - - Verify "TxBroadcastCount response" on the TH(All-cluster-app) Log: - - I: 3080325 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367860 to 0x0000000000000000c - I: 3080339 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:187366260 on exchar - D: 3080349 [EM]Handling via exchange: 4630r, Delegate: 0x200070ec - D: 3080357 [IM]Received Read request - D: 3080362 [DMG]IM RH moving to [GeneratingReports] - D: 3080367 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3080377 [DMG] Cluster 35, Attribute 18 is dirty - D: 3080382 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0018 (expanded=0) - D: 3080391 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxAckRequestedCount attribute value from TH" - PICS: DGTHREAD.C.A0019 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-ack-requested-count 54 0 - - Verify "TxAckRequestedCount response" on the TH(All-cluster-app) Log: - - I: 3120921 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367864 to 0x0000000000000000c - I: 3120937 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:2317510 on exchangr - D: 3120947 [EM]Handling via exchange: 48251r, Delegate: 0x200070ec - D: 3120954 [IM]Received Read request - D: 3120959 [DMG]IM RH moving to [GeneratingReports] - D: 3120964 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3120973 [DMG] Cluster 35, Attribute 19 is dirty - D: 3120978 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0019 (expanded=0) - D: 3120988 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxAckedCount attribute value from TH" - PICS: DGTHREAD.C.A001a - verification: | - ./chip-tool threadnetworkdiagnostics read tx-acked-count 54 0 - - Verify "TxAckedCount response" on the TH(All-cluster-app) Log: - - D: 3176183 [SC]Allocated SecureSession (0x20003178) - waiting for Sigma1 msg - I: 3176190 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:96627054 on exchanr - D: 3176200 [EM]Handling via exchange: 13382r, Delegate: 0x200070ec - D: 3176206 [IM]Received Read request - D: 3176210 [DMG]IM RH moving to [GeneratingReports] - D: 3176217 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3176226 [DMG] Cluster 35, Attribute 1a is dirty - D: 3176232 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001A (expanded=0) - D: 3176241 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxNoAckRequestedCount attribute value from TH" - PICS: DGTHREAD.C.A001b - verification: | - ./chip-tool threadnetworkdiagnostics read tx-no-ack-requested-count 54 0 - Verify "TxNoAckRequestedCount response" on the TH(All-cluster-app) Log: - - D: 3223768 [SC]Allocated SecureSession (0x20003230) - waiting for Sigma1 msg - I: 3223776 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:222085508 on exchar - D: 3223786 [EM]Handling via exchange: 38957r, Delegate: 0x200070ec - D: 3223792 [IM]Received Read request - D: 3223796 [DMG]IM RH moving to [GeneratingReports] - D: 3223801 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3223809 [DMG] Cluster 35, Attribute 1b is dirty - D: 3223815 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001B (expanded=0) - D: 3223824 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxDataCount attribute value from TH" - PICS: DGTHREAD.C.A001c - verification: | - ./chip-tool threadnetworkdiagnostics read tx-data-count 54 0 - Verify "TxDataCount response" on the TH(All-cluster-app) Log: - - D: 3259870 [SC]Allocated SecureSession (0x200032e8) - waiting for Sigma1 msg - I: 3259878 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:111520680 on exchar - D: 3259888 [EM]Handling via exchange: 55695r, Delegate: 0x200070ec - D: 3259894 [IM]Received Read request - D: 3259898 [DMG]IM RH moving to [GeneratingReports] - D: 3259903 [EM]Retransmitting MessageCounter:53367876 on exchange 55694r Send Cnt 1 - I: 3259911 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367876 to 0x0000000000000000c - D: 3259925 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3259934 [DMG] Cluster 35, Attribute 1c is dirty - D: 3259941 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001C (expanded=0) - D: 3259951 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads TxDataPollCount attribute value from TH" - PICS: DGTHREAD.C.A001d - verification: | - ./chip-tool threadnetworkdiagnostics read tx-data-poll-count 54 0 - Verify "TxDataPollCount response" on the TH(All-cluster-app) Log: - - D: 3325107 [SC]Allocated SecureSession (0x200033a0) - waiting for Sigma1 msg - I: 3325115 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:39487161 on exchanr - D: 3325125 [EM]Handling via exchange: 61775r, Delegate: 0x200070ec - D: 3325131 [IM]Received Read request - D: 3325135 [DMG]IM RH moving to [GeneratingReports] - D: 3325140 [EM]Retransmitting MessageCounter:53367880 on exchange 61774r Send Cnt 1 - I: 3325148 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367880 to 0x0000000000000000c - D: 3325163 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3325173 [DMG] Cluster 35, Attribute 1d is dirty - D: 3325179 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001D (expanded=0) - D: 3325189 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxBeaconCount attribute value from TH" - PICS: DGTHREAD.C.A001e - verification: | - ./chip-tool threadnetworkdiagnostics read tx-beacon-count 54 0 - Verify "TxBeaconCount response" on the TH(All-cluster-app) Log: - - D: 3354772 [SC]Allocated SecureSession (0x20003458) - waiting for Sigma1 msg - D: 3354779 [EM]Retransmitting MessageCounter:53367884 on exchange 50547r Send Cnt 1 - I: 3354786 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367884 to 0x0000000000000000c - I: 3354801 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:80147352 on exchanr - D: 3354811 [EM]Handling via exchange: 50548r, Delegate: 0x200070ec - D: 3354818 [IM]Received Read request - D: 3354822 [DMG]IM RH moving to [GeneratingReports] - D: 3354828 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3354837 [DMG] Cluster 35, Attribute 1e is dirty - D: 3354842 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001E (expanded=0) - D: 3354853 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxBeaconRequestCount attribute value from TH" - PICS: DGTHREAD.C.A001f - verification: | - ./chip-tool threadnetworkdiagnostics read tx-beacon-request-count 54 0 - Verify "TxBeaconRequestCount response" on the TH(All-cluster-app) Log: - - D: 3383318 [SC]Allocated SecureSession (0x20003510) - waiting for Sigma1 msg - I: 3383326 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:29889571 on exchanr - D: 3383338 [EM]Handling via exchange: 53268r, Delegate: 0x200070ec - D: 3383344 [IM]Received Read request - D: 3383348 [DMG]IM RH moving to [GeneratingReports] - D: 3383353 [EM]Retransmitting MessageCounter:53367888 on exchange 53267r Send Cnt 1 - I: 3383360 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367888 to 0x0000000000000000c - D: 3383374 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3383383 [DMG] Cluster 35, Attribute 1f is dirty - D: 3383389 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_001F (expanded=0) - D: 3383400 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxOtherCount attribute value from TH" - PICS: DGTHREAD.C.A0020 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-other-count 54 0 - Verify "TxOtherCount response" on the TH(All-cluster-app) Log: - - D: 3549567 [SC]Allocated SecureSession (0x200035c8) - waiting for Sigma1 msg - I: 3549574 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:196573482 on exchar - D: 3549585 [EM]Handling via exchange: 49239r, Delegate: 0x200070ec - D: 3549591 [IM]Received Read request - D: 3549595 [DMG]IM RH moving to [GeneratingReports] - D: 3549599 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3549608 [DMG] Cluster 35, Attribute 20 is dirty - D: 3549613 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0020 (expanded=0) - D: 3549623 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxRetryCount attribute value from TH" - PICS: DGTHREAD.C.A0021 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-retry-count 54 0 - Verify "TxRetryCount response" on the TH(All-cluster-app) Log: - - D: 3579614 [SC]Allocated SecureSession (0x20003680) - waiting for Sigma1 msg - I: 3579622 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:236977137 on exchar - D: 3579632 [EM]Handling via exchange: 26757r, Delegate: 0x200070ec - D: 3579638 [IM]Received Read request - D: 3579642 [DMG]IM RH moving to [GeneratingReports] - D: 3579647 [EM]Retransmitting MessageCounter:53367896 on exchange 26756r Send Cnt 1 - I: 3579654 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367896 to 0x0000000000000000c - D: 3579669 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3579678 [DMG] Cluster 35, Attribute 21 is dirty - D: 3579684 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0021 (expanded=0) - D: 3579695 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxDirectMaxRetryExpiryCount attribute value from TH" - PICS: DGTHREAD.C.A0022 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-direct-max-retry-expiry-count 54 0 - Verify "TxDirectMaxRetryExpiryCount response" on the TH(All-cluster-app) Log: - - D: 3783161 [SC]Allocated SecureSession (0x20003738) - waiting for Sigma1 msg - I: 3783169 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:218163522 on exchar - D: 3783179 [EM]Handling via exchange: 24150r, Delegate: 0x200070ec - D: 3783185 [IM]Received Read request - D: 3783189 [DMG]IM RH moving to [GeneratingReports] - D: 3783194 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3783202 [DMG] Cluster 35, Attribute 22 is dirty - D: 3783208 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0022 (expanded=0) - D: 3783217 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxIndirectMaxRetryExpiryCount attribute value from TH" - PICS: DGTHREAD.C.A0023 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-indirect-max-retry-expiry-count 54 0 - Verify "TxIndirectMaxRetryExpiryCount response" on the TH(All-cluster-app) Log: - - D: 3821837 [SC]Allocated SecureSession (0x200037f0) - waiting for Sigma1 msg - I: 3821844 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:265981625 on exchar - D: 3821855 [EM]Handling via exchange: 43311r, Delegate: 0x200070ec - D: 3821860 [IM]Received Read request - D: 3821864 [DMG]IM RH moving to [GeneratingReports] - D: 3821869 [EM]Retransmitting MessageCounter:53367904 on exchange 43310r Send Cnt 1 - I: 3821877 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367904 to 0x0000000000000000c - D: 3821891 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3821900 [DMG] Cluster 35, Attribute 23 is dirty - D: 3821907 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0023 (expanded=0) - D: 3821917 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxErrCcaCount attribute value from TH" - PICS: DGTHREAD.C.A0024 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-err-cca-count 54 0 - Verify "TxErrCcaCount response" on the TH(All-cluster-app) Log: - D: 3851430 [SC]Allocated SecureSession (0x20002c70) - waiting for Sigma1 msg - I: 3851438 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:99541923 on exchanr - D: 3851448 [EM]Handling via exchange: 35297r, Delegate: 0x200070ec - D: 3851454 [IM]Received Read request - D: 3851458 [DMG]IM RH moving to [GeneratingReports] - D: 3851463 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3851472 [DMG] Cluster 35, Attribute 24 is dirty - D: 3851477 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0024 (expanded=0) - D: 3851486 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxErrAbortCount attribute value from TH" - PICS: DGTHREAD.C.A0025 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-err-abort-count 54 0 - Verify "TxErrAbortCount response" on the TH(All-cluster-app) Log: - - I: 3878371 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367912 to 0x0000000000000000c - I: 3878386 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:20729896 on exchanr - D: 3878397 [EM]Handling via exchange: 34017r, Delegate: 0x200070ec - D: 3878405 [IM]Received Read request - D: 3878409 [DMG]IM RH moving to [GeneratingReports] - D: 3878414 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3878422 [DMG] Cluster 35, Attribute 25 is dirty - D: 3878428 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0025 (expanded=0) - D: 3878437 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads TxErrBusyChannelCount attribute value from TH" - PICS: DGTHREAD.C.A0026 - verification: | - ./chip-tool threadnetworkdiagnostics read tx-err-busy-channel-count 54 0 - Verify "TxErrBusyChannelCount response" on the TH(All-cluster-app) Log: - - D: 3925250 [SC]Allocated SecureSession (0x20002d28) - waiting for Sigma1 msg - I: 3925257 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:68236194 on exchanr - D: 3925267 [EM]Handling via exchange: 58143r, Delegate: 0x200070ec - D: 3925273 [IM]Received Read request - D: 3925277 [DMG]IM RH moving to [GeneratingReports] - D: 3925282 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 3925292 [DMG] Cluster 35, Attribute 26 is dirty - D: 3925298 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0026 (expanded=0) - D: 3925307 [DMG] Sending report (payload has 36 bytes)... - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2_Simulated.yaml new file mode 100644 index 00000000000000..6b07de333d504b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_2_Simulated.yaml @@ -0,0 +1,113 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.2. [TC-DGTHREAD-3.2] Command Generated {DUT_Client}] + +PICS: + - DGTHREAD.C + +config: + nodeId: 0x12344321 + cluster: "Thread Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT reads TxUnicastCount attribute value from TH" + wait: "readAttribute" + attribute: "TxUnicastCount" + PICS: DGTHREAD.C.A0016 + + - label: "DUT reads TxUnicastCount attribute value from TH" + wait: "readAttribute" + attribute: "TxUnicastCount" + PICS: DGTHREAD.C.A0017 + + - label: "DUT reads TxBroadcastCount attribute value from TH" + wait: "readAttribute" + attribute: "TxBroadcastCount" + PICS: DGTHREAD.C.A0018 + + - label: "DUT reads TxAckRequestedCount attribute value from TH" + wait: "readAttribute" + attribute: "TxAckRequestedCount" + PICS: DGTHREAD.C.A0019 + + - label: "DUT reads TxAckedCount attribute value from TH" + wait: "readAttribute" + attribute: "TxAckedCount" + PICS: DGTHREAD.C.A001a + + - label: "DUT reads TxNoAckRequestedCount attribute value from TH" + wait: "readAttribute" + attribute: "TxNoAckRequestedCount" + PICS: DGTHREAD.C.A001b + + - label: "DUT reads TxDataCount attribute value from TH" + wait: "readAttribute" + attribute: "TxDataCount" + PICS: DGTHREAD.C.A001c + + - label: "DUT reads TxDataPollCount attribute value from TH" + wait: "readAttribute" + attribute: "TxDataPollCount" + PICS: DGTHREAD.C.A001d + + - label: "DUT reads TxBeaconCount attribute value from TH" + wait: "readAttribute" + attribute: "TxBeaconCount" + PICS: DGTHREAD.C.A001e + + - label: "DUT reads TxBeaconRequestCount attribute value from TH" + wait: "readAttribute" + attribute: "TxBeaconRequestCount" + PICS: DGTHREAD.C.A001f + + - label: "DUT reads TxOtherCount attribute value from TH" + wait: "readAttribute" + attribute: "TxOtherCount" + PICS: DGTHREAD.C.A0020 + + - label: "DUT reads TxRetryCount attribute value from TH" + wait: "readAttribute" + attribute: "TxRetryCount" + PICS: DGTHREAD.C.A0021 + + - label: "DUT reads TxDirectMaxRetryExpiryCount attribute value from TH" + wait: "readAttribute" + attribute: "TxDirectMaxRetryExpiryCount" + PICS: DGTHREAD.C.A0022 + + - label: "DUT reads TxIndirectMaxRetryExpiryCount attribute value from TH" + wait: "readAttribute" + attribute: "TxIndirectMaxRetryExpiryCount" + PICS: DGTHREAD.C.A0023 + + - label: "DUT reads TxErrCcaCount attribute value from TH" + wait: "readAttribute" + attribute: "TxErrCcaCount" + PICS: DGTHREAD.C.A0024 + + - label: "DUT reads TxErrAbortCount attribute value from TH" + wait: "readAttribute" + attribute: "TxErrAbortCount" + PICS: DGTHREAD.C.A0025 + + - label: "DUT reads TxErrBusyChannelCount attribute value from TH" + wait: "readAttribute" + attribute: "TxErrBusyChannelCount" + PICS: DGTHREAD.C.A0026 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3.yaml deleted file mode 100644 index e79fb6c3c6882d..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3.yaml +++ /dev/null @@ -1,334 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 50.3.3. [TC-DGTHREAD-3.3] Attributes-Rx [DUT- Client] - -PICS: - - DGTHREAD.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission DUT to TH" - verification: | - - disabled: true - - - label: "DUT reads RxTotalCount attribute value from TH" - PICS: DGTHREAD.C.A0027 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-total-count 54 0 - Verify "RxTotalCount response" on the TH(All-cluster-app) Log: - - D: 4079810 [SC]Allocated SecureSession (0x20002e98) - waiting for Sigma1 msg - I: 4079818 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:21934806 on exchanr - D: 4079828 [EM]Handling via exchange: 8058r, Delegate: 0x200070ec - D: 4079834 [IM]Received Read request - D: 4079838 [DMG]IM RH moving to [GeneratingReports] - D: 4079844 [EM]Retransmitting MessageCounter:53367920 on exchange 8057r Send Cnt 1 - I: 4079852 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367920 to 0x0000000000000000c - D: 4079866 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 4079875 [DMG] Cluster 35, Attribute 27 is dirty - D: 4079880 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0027 (expanded=0) - D: 4079890 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads RxUnicastCount attribute value from TH" - PICS: DGTHREAD.C.A0028 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-unicast-count 54 0 - Verify "RxUnicastCount response" on the TH(All-cluster-app) Log: - - D: 4108122 [SC]Allocated SecureSession (0x20002f50) - waiting for Sigma1 msg - I: 4108130 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:146842823 on exchar - D: 4108140 [EM]Handling via exchange: 31466r, Delegate: 0x200070ec - D: 4108146 [IM]Received Read request - D: 4108150 [DMG]IM RH moving to [GeneratingReports] - D: 4108154 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 4108163 [DMG] Cluster 35, Attribute 28 is dirty - D: 4108168 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0028 (expanded=0) - D: 4108178 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads RxBroadcastCount attribute value from TH" - PICS: DGTHREAD.C.A0029 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-broadcast-count 54 0 - Verify "RxBroadcastCount response" on the TH(All-cluster-app) Log: - - D: 4630447 [SC]Allocated SecureSession (0x20003008) - waiting for Sigma1 msg - I: 4630454 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:32416455 on exchanr - D: 4630464 [EM]Handling via exchange: 25526r, Delegate: 0x200070ec - D: 4630470 [IM]Received Read request - D: 4630474 [DMG]IM RH moving to [GeneratingReports] - D: 4630479 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 4630488 [DMG] Cluster 35, Attribute 29 is dirty - D: 4630493 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0029 (expanded=0) - D: 4630502 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxDataCount attribute value from TH" - PICS: DGTHREAD.C.A002a - verification: | - ./chip-tool threadnetworkdiagnostics read rx-data-count 54 0 - Verify "RxDataCount response" on the TH(All-cluster-app) Log: - - D: 5193071 [SC]Allocated SecureSession (0x200030c0) - waiting for Sigma1 msg - I: 5193079 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:49592654 on exchanr - D: 5193089 [EM]Handling via exchange: 37413r, Delegate: 0x200070ec - D: 5193095 [IM]Received Read request - D: 5193099 [DMG]IM RH moving to [GeneratingReports] - D: 5193103 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 5193112 [DMG] Cluster 35, Attribute 2a is dirty - D: 5193119 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002A (expanded=0) - D: 5193128 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads RxDataPollCount attribute value from TH" - PICS: DGTHREAD.C.A002b - verification: | - ./chip-tool threadnetworkdiagnostics read rx-data-poll-count 54 0 - Verify "RxDataPollCount response" on the TH(All-cluster-app) Log: - - D: 5612663 [SC]Allocated SecureSession (0x20003230) - waiting for Sigma1 msg - D: 5612670 [EM]Retransmitting MessageCounter:53367940 on exchange 23136r Send Cnt 1 - I: 5612678 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367940 to 0x0000000000000000c - I: 5612693 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:94938048 on exchanr - D: 5612703 [EM]Handling via exchange: 23137r, Delegate: 0x200070ec - D: 5612711 [IM]Received Read request - D: 5612716 [DMG]IM RH moving to [GeneratingReports] - D: 5612720 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 5612731 [DMG] Cluster 35, Attribute 2b is dirty - D: 5612736 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002B (expanded=0) - D: 5612745 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxBeaconCount attribute value from TH" - PICS: DGTHREAD.C.A002c - verification: | - ./chip-tool threadnetworkdiagnostics read rx-beacon-count 54 0 - Verify "RxBeaconCount response" on the TH(All-cluster-app) Log: - - D: 5685067 [SC]Allocated SecureSession (0x200032e8) - waiting for Sigma1 msg - D: 5685074 [EM]Retransmitting MessageCounter:53367944 on exchange 27673r Send Cnt 1 - I: 5685083 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367944 to 0x0000000000000000c - I: 5685098 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:229974593 on exchar - D: 5685108 [EM]Handling via exchange: 27674r, Delegate: 0x200070ec - D: 5685115 [IM]Received Read request - D: 5685119 [DMG]IM RH moving to [GeneratingReports] - D: 5685125 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 5685134 [DMG] Cluster 35, Attribute 2c is dirty - D: 5685139 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002C (expanded=0) - D: 5685148 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxBeaconRequestCount attribute value from TH" - PICS: DGTHREAD.C.A002d - verification: | - ./chip-tool threadnetworkdiagnostics read rx-beacon-request-count 54 0 - Verify "RxBeaconRequestCount response" on the TH(All-cluster-app) Log: - - I: 6354933 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367948 to 0x0000000000000000c - I: 6354947 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:189386222 on exchar - D: 6354958 [EM]Handling via exchange: 40234r, Delegate: 0x200070ec - D: 6354964 [IM]Received Read request - D: 6354968 [DMG]IM RH moving to [GeneratingReports] - D: 6354974 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6354983 [DMG] Cluster 35, Attribute 2d is dirty - D: 6354989 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002D (expanded=0) - D: 6354999 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxOtherCount attribute value from TH" - PICS: DGTHREAD.C.A002e - verification: | - ./chip-tool threadnetworkdiagnostics read rx-other-count 54 0 - Verify "RxOtherCount response" on the TH(All-cluster-app) Log: - - D: 6440317 [SC]Allocated SecureSession (0x20003458) - waiting for Sigma1 msg - I: 6440325 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:185096786 on exchar - D: 6440335 [EM]Handling via exchange: 54133r, Delegate: 0x200070ec - D: 6440341 [IM]Received Read request - D: 6440345 [DMG]IM RH moving to [GeneratingReports] - D: 6440350 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6440360 [DMG] Cluster 35, Attribute 2e is dirty - D: 6440366 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002E (expanded=0) - D: 6440375 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxAddressFilteredCount attribute value from TH" - PICS: DGTHREAD.C.A002f - verification: | - ./chip-tool threadnetworkdiagnostics read rx-address-filtered-count 54 0 - Verify "RxAddressFilteredCount response" on the TH(All-cluster-app) Log: - - D: 6500252 [SC]Allocated SecureSession (0x20003510) - waiting for Sigma1 msg - I: 6500260 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:17427447 on exchanr - D: 6500270 [EM]Handling via exchange: 733r, Delegate: 0x200070ec - D: 6500276 [IM]Received Read request - D: 6500280 [DMG]IM RH moving to [GeneratingReports] - D: 6500284 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6500293 [DMG] Cluster 35, Attribute 2f is dirty - D: 6500299 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_002F (expanded=0) - D: 6500308 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxDestAddrFilteredCount attribute value from TH" - PICS: DGTHREAD.C.A0030 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-dest-addr-filtered-count 54 0 - Verify "RxDestAddrFilteredCount response" on the TH(All-cluster-app) Log: - - D: 6546865 [SC]Allocated SecureSession (0x200035c8) - waiting for Sigma1 msg - I: 6546873 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:74235822 on exchanr - D: 6546883 [EM]Handling via exchange: 35034r, Delegate: 0x200070ec - D: 6546890 [IM]Received Read request - D: 6546894 [DMG]IM RH moving to [GeneratingReports] - D: 6546899 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6546908 [DMG] Cluster 35, Attribute 30 is dirty - D: 6546913 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0030 (expanded=0) - D: 6546922 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxDuplicatedCount attribute value from TH" - PICS: DGTHREAD.C.A0031 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-duplicated-count 54 0 - Verify "RxDuplicatedCount response" on the TH(All-cluster-app) Log: - - D: 6599281 [SC]Allocated SecureSession (0x20003680) - waiting for Sigma1 msg - I: 6599288 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:36119403 on exchanr - D: 6599298 [EM]Handling via exchange: 9572r, Delegate: 0x200070ec - D: 6599304 [IM]Received Read request - D: 6599308 [DMG]IM RH moving to [GeneratingReports] - D: 6599313 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6599322 [DMG] Cluster 35, Attribute 31 is dirty - D: 6599327 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0031 (expanded=0) - D: 6599336 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrNoFrameCount attribute value from TH" - PICS: DGTHREAD.C.A0032 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-no-frame-count 54 0 - Verify "RxErrNoFrameCount response" on the TH(All-cluster-app) Log: - - D: 6634879 [SC]Allocated SecureSession (0x20003738) - waiting for Sigma1 msg - D: 6634886 [EM]Retransmitting MessageCounter:53367968 on exchange 23023r Send Cnt 1 - I: 6634893 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367968 to 0x0000000000000000c - I: 6634908 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:125719359 on exchar - D: 6634919 [EM]Handling via exchange: 23024r, Delegate: 0x200070ec - D: 6634925 [IM]Received Read request - D: 6634931 [DMG]IM RH moving to [GeneratingReports] - D: 6634936 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6634945 [DMG] Cluster 35, Attribute 32 is dirty - D: 6634951 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0032 (expanded=0) - D: 6634962 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrUnknownNeighborCount attribute value from TH" - PICS: DGTHREAD.C.A0033 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-unknown-neighbor-count 54 0 - Verify "RxErrUnknownNeighborCount response" on the TH(All-cluster-app) Log: - - D: 6673331 [SC]Allocated SecureSession (0x200037f0) - waiting for Sigma1 msg - I: 6673338 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:5756147 on exchangr - D: 6673348 [EM]Handling via exchange: 27489r, Delegate: 0x200070ec - D: 6673354 [IM]Received Read request - D: 6673358 [DMG]IM RH moving to [GeneratingReports] - D: 6673363 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6673372 [DMG] Cluster 35, Attribute 33 is dirty - D: 6673377 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0033 (expanded=0) - D: 6673386 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrInvalidScrAddrCount attribute value from TH" - PICS: DGTHREAD.C.A0034 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-invalid-src-addr-count 54 0 - Verify "RxErrInvalidSrcAddrCount response" on the TH(All-cluster-app) Log: - - D: 6729267 [SC]Allocated SecureSession (0x20002c70) - waiting for Sigma1 msg - I: 6729275 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:63567787 on exchanr - D: 6729285 [EM]Handling via exchange: 51938r, Delegate: 0x200070ec - D: 6729291 [IM]Received Read request - D: 6729295 [DMG]IM RH moving to [GeneratingReports] - D: 6729300 [EM]Retransmitting MessageCounter:53367976 on exchange 51937r Send Cnt 1 - I: 6729307 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367976 to 0x0000000000000000c - D: 6729321 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6729332 [DMG] Cluster 35, Attribute 34 is dirty - D: 6729338 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0034 (expanded=0) - D: 6729347 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrSecCount attribute value from TH" - PICS: DGTHREAD.C.A0035 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-sec-count 54 0 - Verify "RxErrSecCount response" on the TH(All-cluster-app) Log: - - D: 6776643 [SC]Allocated SecureSession (0x20002de0) - waiting for Sigma1 msg - I: 6776651 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:62796965 on exchanr - D: 6776661 [EM]Handling via exchange: 37020r, Delegate: 0x200070ec - D: 6776667 [IM]Received Read request - D: 6776671 [DMG]IM RH moving to [GeneratingReports] - D: 6776676 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6776685 [DMG] Cluster 35, Attribute 35 is dirty - D: 6776690 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0035 (expanded=0) - D: 6776701 [DMG] Sending report (payload has 36 bytes)... - disabled: true - - - label: "DUT reads RxErrFcsCount attribute value from TH" - PICS: DGTHREAD.C.A0036 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-fcs-count 54 0 - Verify "RxErrFcsCount response" on the TH(All-cluster-app) Log: - - D: 6844438 [SC]Allocated SecureSession (0x20002d28) - waiting for Sigma1 msg - I: 6844445 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:26761069 on exchanr - D: 6844455 [EM]Handling via exchange: 326r, Delegate: 0x200070ec - D: 6844461 [IM]Received Read request - D: 6844465 [DMG]IM RH moving to [GeneratingReports] - D: 6844470 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6844480 [DMG] Cluster 35, Attribute 36 is dirty - D: 6844485 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0036 (expanded=0) - D: 6844495 [DMG] Sending report (payload has 37 bytes)... - disabled: true - - - label: "DUT reads RxErrOtherCount attribute value from TH" - PICS: DGTHREAD.C.A0037 - verification: | - ./chip-tool threadnetworkdiagnostics read rx-err-other-count 54 0 - Verify "RxErrOtherCount response" on the TH(All-cluster-app) Log: - - D: 6866596 [SC]Allocated SecureSession (0x20002e98) - waiting for Sigma1 msg - I: 6866604 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:179617390 on exchar - D: 6866614 [EM]Handling via exchange: 3843r, Delegate: 0x200070ec - D: 6866619 [IM]Received Read request - D: 6866623 [DMG]IM RH moving to [GeneratingReports] - D: 6866628 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 6866639 [DMG] Cluster 35, Attribute 37 is dirty - D: 6866644 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0037 (expanded=0) - D: 6866653 [DMG] Sending report (payload has 36 bytes)... - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3_Simulated.yaml new file mode 100644 index 00000000000000..8a343dce13b85b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_3_Simulated.yaml @@ -0,0 +1,113 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.2. [TC-DGTHREAD-3.3] Command Generated {DUT_Client}] + +PICS: + - DGTHREAD.C + +config: + nodeId: 0x12344321 + cluster: "Thread Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT reads RxTotalCount attribute value from TH" + wait: "readAttribute" + attribute: "RxTotalCount" + PICS: DGTHREAD.C.A0027 + + - label: "DUT reads RxUnicastCount attribute value from TH" + wait: "readAttribute" + attribute: "RxUnicastCount" + PICS: DGTHREAD.C.A0028 + + - label: "DUT reads RxBroadcastCount attribute value from TH" + wait: "readAttribute" + attribute: "RxBroadcastCount" + PICS: DGTHREAD.C.A0029 + + - label: "DUT reads RxDataCount attribute value from TH" + wait: "readAttribute" + attribute: "RxDataCount" + PICS: DGTHREAD.C.A002a + + - label: "DUT reads RxDataPollCount attribute value from TH" + wait: "readAttribute" + attribute: "RxDataPollCount" + PICS: DGTHREAD.C.A002b + + - label: "DUT reads RxBeaconCount attribute value from TH" + wait: "readAttribute" + attribute: "RxBeaconCount" + PICS: DGTHREAD.C.A002c + + - label: "DUT reads RxBeaconRequestCount attribute value from TH" + wait: "readAttribute" + attribute: "RxBeaconRequestCount" + PICS: DGTHREAD.C.A002d + + - label: "DUT reads RxOtherCount attribute value from TH" + wait: "readAttribute" + attribute: "RxOtherCount" + PICS: DGTHREAD.C.A002e + + - label: "DUT reads RxAddressFilteredCount attribute value from TH" + wait: "readAttribute" + attribute: "RxAddressFilteredCount" + PICS: DGTHREAD.C.A002f + + - label: "DUT reads RxDestAddrFilteredCount attribute value from TH" + wait: "readAttribute" + attribute: "RxDestAddrFilteredCount" + PICS: DGTHREAD.C.A0030 + + - label: "DUT reads RxDuplicatedCount attribute value from TH" + wait: "readAttribute" + attribute: "RxDuplicatedCount" + PICS: DGTHREAD.C.A0031 + + - label: "DUT reads RxErrNoFrameCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrNoFrameCount" + PICS: DGTHREAD.C.A0032 + + - label: "DUT reads RxErrUnknownNeighborCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrUnknownNeighborCount" + PICS: DGTHREAD.C.A0033 + + - label: "DUT reads RxErrInvalidSrcAddrCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrInvalidSrcAddrCount" + PICS: DGTHREAD.C.A0034 + + - label: "DUT reads RxErrSecCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrSecCount" + PICS: DGTHREAD.C.A0035 + + - label: "DUT reads RxErrFcsCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrFcsCount" + PICS: DGTHREAD.C.A0036 + + - label: "DUT reads RxErrOtherCount attribute value from TH" + wait: "readAttribute" + attribute: "RxErrOtherCount" + PICS: DGTHREAD.C.A0037 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4.yaml deleted file mode 100644 index 0946b8c2a70565..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 50.3.4. [TC-DGTHREAD-3.4] ResetCounts Command[DUT-Client] - -PICS: - - DGTHREAD.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetCounts Command to TH" - PICS: DGTHREAD.C.C00.Tx - verification: | - ./chip-tool threadnetworkdiagnostics reset-counts 54 0 - Verify "ResetCounts response" on the TH(All-cluster-app) Log: - - D: 6932849 [SC]Allocated SecureSession (0x20002f50) - waiting for Sigma1 msg - I: 6932856 [EM]Received message of type 0x8 with protocolId (0, 1) and MessageCounter:25984238 on exchanr - D: 6932866 [EM]Handling via exchange: 5441r, Delegate: 0x200070ec - D: 6932873 [DMG]Received command for Endpoint=0 Cluster=0x0000_0035 Command=0x0000_0000 - D: 6932881 [DMG]ICR moving to [ Preparing] - D: 6932884 [DMG]ICR moving to [AddingComm] - D: 6932888 [DMG]ICR moving to [AddedComma] - D: 6932894 [DMG]Decreasing reference count for CommandHandler, remaining 0 - I: 6932901 [IN]Prepared secure message 0x200048b4 to 0x000000000001B669 (1) of type 0x9 and protocolId . - I: 6932916 [IN]Sending encrypted msg 0x200048b4 with MessageCounter:151760493 to 0x000000000001B669 (1) c - D: 6932930 [DMG]ICR moving to [CommandSen] - D: 6932934 [DMG]ICR moving to [AwaitingDe] - D: 6932938 [EM]Retransmitting MessageCounter:53367992 on exchange 5440r Send Cnt 1 - I: 6932946 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367992 to 0x0000000000000000c - I: 6932962 [EM]Received message of type 0x10 with protocolId (0, 0) and MessageCounter:229191096 on exchr - D: 6932972 [EM]Found matching exchange: 5440r, Delegate: (nil) - D: 6932979 [EM]Rxd Ack; Removing MessageCounter:53367992 from Retrans Table on exchange 5440r - D: 6932988 [EM]Removed CHIP MessageCounter:53367992 from RetransTable on exchange 5440r - D: 6932998 [IN]Received a duplicate message with MessageCounter:25984238 on exchange 5441r - I: 6933006 [EM]Received message of type 0x8 with protocolId (0, 1) and MessageCounter:25984238 on exchanr - D: 6933016 [EM]Found matching exchange: 5441r, Delegate: (nil) - D: 6933022 [EM]Forcing tx of solitary ack for duplicate MessageCounter:25984238 on exchange 5441r - D: 6933030 [EM]Sending Standalone Ack for MessageCounter:25984238 on exchange 5441r - disabled: true - - - label: "DUT reads OverrunCount attribute from TH" - PICS: DGTHREAD.C.A0006 - verification: | - ./chip-tool threadnetworkdiagnostics read overrun-count 54 0 - Verify "OverrunCount response" on the TH(All-cluster-app) Log: - - D: 7011179 [SC]Allocated SecureSession (0x20003008) - waiting for Sigma1 msg - I: 7011187 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:245187273 on exchar - D: 7011197 [EM]Handling via exchange: 37861r, Delegate: 0x200070ec - D: 7011203 [IM]Received Read request - D: 7011207 [DMG]IM RH moving to [GeneratingReports] - D: 7011212 [EM]Retransmitting MessageCounter:53367996 on exchange 37860r Send Cnt 1 - I: 7011219 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367996 to 0x0000000000000000c - D: 7011235 [DMG]Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - D: 7011244 [DMG] Cluster 35, Attribute 6 is dirty - D: 7011250 [DMG]Reading attribute: Cluster=0x0000_0035 Endpoint=0 AttributeId=0x0000_0006 (expanded=0) - D: 7011260 [DMG] Sending report (payload has 36 bytes)... - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4_Simulated.yaml new file mode 100644 index 00000000000000..cdb4b6cc199bc6 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_4_Simulated.yaml @@ -0,0 +1,37 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.2. [TC-DGTHREAD-3.4] Command Generated {DUT_Client}] + +PICS: + - DGTHREAD.C + +config: + nodeId: 0x12344321 + cluster: "Thread Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends ResetCounts command to TH" + PICS: DGTHREAD.C.C00.Tx + wait: "ResetCounts" + + - label: "DUT reads OverrunCount attribute value from TH" + wait: "readAttribute" + attribute: "OverrunCount" + PICS: DGTHREAD.C.A0006 diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml deleted file mode 100644 index 62460173bafef8..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.2. [TC-DGWIFI-3.2]Command Generated [DUT as Client] - -PICS: - - DGWIFI.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetCounts command to TH" - PICS: DGWIFI.C.C00.Tx - verification: | - ./chip-tool wifinetworkdiagnostics reset-counts 1 0 - - verify the " success response" for ResetCounts command on the TH (all-cluster-app) log: - - [1666959400.011236][6130:6130] CHIP:EM: Handling via exchange: 33250r, Delegate: 0xaaaad6e20288 - [1666959400.011383][6130:6130] CHIP:DMG: InvokeRequestMessage = - [1666959400.011452][6130:6130] CHIP:DMG: { - [1666959400.011511][6130:6130] CHIP:DMG: suppressResponse = false, - [1666959400.011579][6130:6130] CHIP:DMG: timedRequest = false, - [1666959400.011641][6130:6130] CHIP:DMG: InvokeRequests = - [1666959400.011720][6130:6130] CHIP:DMG: [ - [1666959400.011783][6130:6130] CHIP:DMG: CommandDataIB = - [1666959400.011853][6130:6130] CHIP:DMG: { - [1666959400.011984][6130:6130] CHIP:DMG: CommandPathIB = - [1666959400.012114][6130:6130] CHIP:DMG: { - [1666959400.012196][6130:6130] CHIP:DMG: EndpointId = 0x0, - [1666959400.012334][6130:6130] CHIP:DMG: ClusterId = 0x36, - [1666959400.012471][6130:6130] CHIP:DMG: CommandId = 0x0, - [1666959400.012601][6130:6130] CHIP:DMG: }, - [1666959400.012739][6130:6130] CHIP:DMG: - [1666959400.012810][6130:6130] CHIP:DMG: CommandFields = - [1666959400.012938][6130:6130] CHIP:DMG: { - [1666959400.013016][6130:6130] CHIP:DMG: }, - [1666959400.013134][6130:6130] CHIP:DMG: }, - [1666959400.013215][6130:6130] CHIP:DMG: - [1666959400.013277][6130:6130] CHIP:DMG: ], - [1666959400.013353][6130:6130] CHIP:DMG: - [1666959400.013416][6130:6130] CHIP:DMG: InteractionModelRevision = 1 - [1666959400.013476][6130:6130] CHIP:DMG: }, - [1666959400.013621][6130:6130] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0036 e=0 p=o - [1666959400.013704][6130:6130] CHIP:DMG: AccessControl: allowed - [1666959400.013774][6130:6130] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0036 Command=0x0000_0000 - [1666959400.018281][6130:6130] CHIP:DL: Found the primary WiFi interface:wlan0 - [1666959400.018419][6130:6130] CHIP:DMG: Command handler moving to [ Preparing] - [1666959400.018494][6130:6130] CHIP:DMG: Command handler moving to [AddingComm] - [1666959400.018562][6130:6130] CHIP:DMG: Command handler moving to [AddedComma] - [1666959400.018675][6130:6130] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1666959400.019314][6130:6130] CHIP:EM: <<< [E:33250r M:63255960 (Ack:74829349)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:09 (IM:InvokeCommandResponse) - [1666959400.019427][6130:6130] CHIP:IN: (S) Sending msg 63255960 on secure session with LSID: 44736 - [1666959400.020094][6130:6130] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:38143 | 63255960 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 63986 / Exchange = 33250] - [1666959400.020191][6130:6130] CHIP:DMG: Header Flags = - [1666959400.020249][6130:6130] CHIP:DMG: { - [1666959400.020335][6130:6130] CHIP:DMG: Exchange (0x06) = - [1666959400.020391][6130:6130] CHIP:DMG: { - [1666959400.020451][6130:6130] CHIP:DMG: AckMsg = 74829349 - [1666959400.020507][6130:6130] CHIP:DMG: NeedsAck = true - [1666959400.020574][6130:6130] CHIP:DMG: } - [1666959400.020643][6130:6130] CHIP:DMG: } - [1666959400.020699][6130:6130] CHIP:DMG: - [1666959400.020767][6130:6130] CHIP:DMG: Encrypted Payload (67 bytes) = - [1666959400.020823][6130:6130] CHIP:DMG: { - [1666959400.020878][6130:6130] CHIP:DMG: data = 00f2f9009835c50387f400a6ef13a28b3b46eb5a99745448df633531de072463f12d56a3f096824b82a3a409c494841c55a558a7ee3c8e94775c4495b700db3bc9f22a - [1666959400.020937][6130:6130] CHIP:DMG: buffer_ptr = 187651201115584 - [1666959400.020992][6130:6130] CHIP:DMG: } - [1666959400.021044][6130:6130] CHIP:DMG: - [1666959400.021196][6130:6130] CHIP:DMG: InvokeResponseMessage = - [1666959400.021264][6130:6130] CHIP:DMG: { - [1666959400.021323][6130:6130] CHIP:DMG: suppressResponse = false, - [1666959400.021385][6130:6130] CHIP:DMG: InvokeResponseIBs = - [1666959400.021463][6130:6130] CHIP:DMG: [ - [1666959400.021525][6130:6130] CHIP:DMG: InvokeResponseIB = - [1666959400.021769][6130:6130] CHIP:DMG: { - [1666959400.021841][6130:6130] CHIP:DMG: CommandStatusIB = - [1666959400.021930][6130:6130] CHIP:DMG: { - [1666959400.022009][6130:6130] CHIP:DMG: CommandPathIB = - [1666959400.022091][6130:6130] CHIP:DMG: { - [1666959400.022179][6130:6130] CHIP:DMG: EndpointId = 0x0, - [1666959400.022270][6130:6130] CHIP:DMG: ClusterId = 0x36, - [1666959400.022358][6130:6130] CHIP:DMG: CommandId = 0x0, - [1666959400.022442][6130:6130] CHIP:DMG: }, - [1666959400.022535][6130:6130] CHIP:DMG: - [1666959400.022612][6130:6130] CHIP:DMG: StatusIB = - [1666959400.022697][6130:6130] CHIP:DMG: { - [1666959400.022843][6130:6130] CHIP:DMG: status = 0x00 (SUCCESS), - [1666959400.022930][6130:6130] CHIP:DMG: }, - [1666959400.023016][6130:6130] CHIP:DMG: - [1666959400.023091][6130:6130] CHIP:DMG: }, - [1666959400.023185][6130:6130] CHIP:DMG: - [1666959400.023256][6130:6130] CHIP:DMG: }, - [1666959400.023338][6130:6130] CHIP:DMG: - [1666959400.023400][6130:6130] CHIP:DMG: ], - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml new file mode 100644 index 00000000000000..ddd2e798443a26 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 52.3.1. [TC-DGWIFI-3.1] Attributes observed with client as DUT + +PICS: + - DGWIFI.C + +config: + nodeId: 0x12344321 + cluster: "WiFi Network Diagnostics" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends ResetCounts command to TH" + PICS: DGTHREAD.C.C00.Tx + wait: "ResetCounts" diff --git a/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml index 442948e126f1cd..aed9bc9466e304 100644 --- a/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 56.1.1. [TC-DLOG-1.1] Global Attributes [DUT-Server] +name: 56.1.1. [TC-DLOG-1.1] Global Attributes with DUT as Server PICS: - DLOG.S diff --git a/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml index 70ea959ef7a268..e109c22a0669cd 100644 --- a/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 98.3.1. [TC-FLABEL-3.1] Fixed Label cluster [DUT-client] +name: 98.3.1. [TC-FLABEL-1.1] Global Attributes with DUT as Server PICS: - FLABEL.C diff --git a/src/app/tests/suites/certification/Test_TC_FLW_2_2.yaml b/src/app/tests/suites/certification/Test_TC_FLW_2_2.yaml index b6d8c56e82dd55..40a19b37bdc10e 100644 --- a/src/app/tests/suites/certification/Test_TC_FLW_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_FLW_2_2.yaml @@ -42,7 +42,7 @@ tests: minValue: 0 maxValue: 65535 - - label: "operate on DUT to change the flow significantly" + - label: "Operate on device to change the flow significantly" cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && FLW.M.FlowChange diff --git a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml index 11c152a1214e4e..8225c69c9bbd1a 100644 --- a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml @@ -39,9 +39,9 @@ tests: Verify the "MaxGroupsPerFabric value" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674543469.443764][19260:19262] CHIP:DMG: } - [1674543469.443889][19260:19262] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 3217277214 - [1674543469.444257][19260:19262] CHIP:TOO: MaxGroupsPerFabric: 4 + [1683797307.084182][38841:38843] CHIP:DMG: } + [1683797307.084220][38841:38843] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 366443848 + [1683797307.084237][38841:38843] CHIP:TOO: MaxGroupsPerFabric: 12 disabled: true - label: | @@ -71,196 +71,301 @@ tests: verification: | Execute the following command in TH to generate the pre-condition to execute this test case: - ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, - "groupKeySecurityPolicy": 1, "epochKey0": - "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": - "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": - "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - - [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = - [1658316948.574561][4039:4044] CHIP:DMG: { - [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), - [1658316948.574632][4039:4044] CHIP:DMG: }, - - Before adding the Groups (0x0001,0x0002) execute this command - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - - [1663071507.364542][23693:23698] CHIP:DMG: WriteClient moving to [ResponseRe] - [1663071507.364603][23693:23698] CHIP:DMG: WriteResponseMessage = - [1663071507.364635][23693:23698] CHIP:DMG: { - [1663071507.364661][23693:23698] CHIP:DMG: AttributeStatusIBs = - [1663071507.364699][23693:23698] CHIP:DMG: [ - [1663071507.364728][23693:23698] CHIP:DMG: AttributeStatusIB = - [1663071507.364768][23693:23698] CHIP:DMG: { - [1663071507.364799][23693:23698] CHIP:DMG: AttributePathIB = - [1663071507.364838][23693:23698] CHIP:DMG: { - [1663071507.364876][23693:23698] CHIP:DMG: Endpoint = 0x0, - [1663071507.364921][23693:23698] CHIP:DMG: Cluster = 0x3f, - [1663071507.364961][23693:23698] CHIP:DMG: Attribute = 0x0000_0000, - [1663071507.365002][23693:23698] CHIP:DMG: } - [1663071507.365044][23693:23698] CHIP:DMG: - [1663071507.365079][23693:23698] CHIP:DMG: StatusIB = - [1663071507.365121][23693:23698] CHIP:DMG: { - [1663071507.365164][23693:23698] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071507.365201][23693:23698] CHIP:DMG: }, - [1663071507.365243][23693:23698] CHIP:DMG: - [1663071507.365275][23693:23698] CHIP:DMG: }, - [1663071507.365320][23693:23698] CHIP:DMG: - [1663071507.365351][23693:23698] CHIP:DMG: AttributeStatusIB = - [1663071507.365385][23693:23698] CHIP:DMG: { - [1663071507.365417][23693:23698] CHIP:DMG: AttributePathIB = - [1663071507.365453][23693:23698] CHIP:DMG: { - [1663071507.365489][23693:23698] CHIP:DMG: Endpoint = 0x0, - [1663071507.365532][23693:23698] CHIP:DMG: Cluster = 0x3f, - [1663071507.365574][23693:23698] CHIP:DMG: Attribute = 0x0000_0000, - [1663071507.365612][23693:23698] CHIP:DMG: ListIndex = Null, - [1663071507.365652][23693:23698] CHIP:DMG: } - [1663071507.365696][23693:23698] CHIP:DMG: - [1663071507.365735][23693:23698] CHIP:DMG: StatusIB = - [1663071507.365773][23693:23698] CHIP:DMG: { - [1663071507.365810][23693:23698] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071507.365846][23693:23698] CHIP:DMG: }, - [1663071507.365883][23693:23698] CHIP:DMG: - [1663071507.365915][23693:23698] CHIP:DMG: }, - [1663071507.365958][23693:23698] CHIP:DMG: - [1663071507.365987][23693:23698] CHIP:DMG: AttributeStatusIB = - [1663071507.366017][23693:23698] CHIP:DMG: { - [1663071507.366047][23693:23698] CHIP:DMG: AttributePathIB = - [1663071507.366082][23693:23698] CHIP:DMG: { - [1663071507.366121][23693:23698] CHIP:DMG: Endpoint = 0x0, - [1663071507.366164][23693:23698] CHIP:DMG: Cluster = 0x3f, - [1663071507.366204][23693:23698] CHIP:DMG: Attribute = 0x0000_0000, - [1663071507.366243][23693:23698] CHIP:DMG: ListIndex = Null, - [1663071507.366280][23693:23698] CHIP:DMG: } - [1663071507.366319][23693:23698] CHIP:DMG: - [1663071507.366355][23693:23698] CHIP:DMG: StatusIB = - [1663071507.366390][23693:23698] CHIP:DMG: { - [1663071507.366428][23693:23698] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071507.366466][23693:23698] CHIP:DMG: }, - - - Before adding the Groups (0x0003,0x0004) execute this command - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 3, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":4, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1674546137.239871][19959:19961] CHIP:DMG: WriteResponseMessage = - [1674546137.239875][19959:19961] CHIP:DMG: { - [1674546137.239877][19959:19961] CHIP:DMG: AttributeStatusIBs = - [1674546137.239882][19959:19961] CHIP:DMG: [ - [1674546137.239885][19959:19961] CHIP:DMG: AttributeStatusIB = - [1674546137.239888][19959:19961] CHIP:DMG: { - [1674546137.239891][19959:19961] CHIP:DMG: AttributePathIB = - [1674546137.239895][19959:19961] CHIP:DMG: { - [1674546137.239898][19959:19961] CHIP:DMG: Endpoint = 0x0, - [1674546137.239901][19959:19961] CHIP:DMG: Cluster = 0x3f, - [1674546137.239905][19959:19961] CHIP:DMG: Attribute = 0x0000_0000, - [1674546137.239908][19959:19961] CHIP:DMG: } - [1674546137.239912][19959:19961] CHIP:DMG: - [1674546137.239915][19959:19961] CHIP:DMG: StatusIB = - [1674546137.239919][19959:19961] CHIP:DMG: { - [1674546137.239922][19959:19961] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546137.239925][19959:19961] CHIP:DMG: }, - [1674546137.239928][19959:19961] CHIP:DMG: - [1674546137.239931][19959:19961] CHIP:DMG: }, - [1674546137.239938][19959:19961] CHIP:DMG: - [1674546137.239940][19959:19961] CHIP:DMG: AttributeStatusIB = - [1674546137.239943][19959:19961] CHIP:DMG: { - [1674546137.239946][19959:19961] CHIP:DMG: AttributePathIB = - [1674546137.239948][19959:19961] CHIP:DMG: { - [1674546137.239951][19959:19961] CHIP:DMG: Endpoint = 0x0, - [1674546137.239955][19959:19961] CHIP:DMG: Cluster = 0x3f, - [1674546137.239959][19959:19961] CHIP:DMG: Attribute = 0x0000_0000, - [1674546137.239962][19959:19961] CHIP:DMG: ListIndex = Null, - [1674546137.239965][19959:19961] CHIP:DMG: } - [1674546137.239970][19959:19961] CHIP:DMG: - [1674546137.239972][19959:19961] CHIP:DMG: StatusIB = - [1674546137.239975][19959:19961] CHIP:DMG: { - [1674546137.239979][19959:19961] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546137.239982][19959:19961] CHIP:DMG: }, - [1674546137.239985][19959:19961] CHIP:DMG: - [1674546137.239988][19959:19961] CHIP:DMG: }, - [1674546137.239994][19959:19961] CHIP:DMG: - [1674546137.239997][19959:19961] CHIP:DMG: AttributeStatusIB = - [1674546137.240000][19959:19961] CHIP:DMG: { - [1674546137.240002][19959:19961] CHIP:DMG: AttributePathIB = - [1674546137.240005][19959:19961] CHIP:DMG: { - [1674546137.240009][19959:19961] CHIP:DMG: Endpoint = 0x0, - [1674546137.240012][19959:19961] CHIP:DMG: Cluster = 0x3f, - [1674546137.240015][19959:19961] CHIP:DMG: Attribute = 0x0000_0000, - [1674546137.240018][19959:19961] CHIP:DMG: ListIndex = Null, - [1674546137.240021][19959:19961] CHIP:DMG: } - [1674546137.240026][19959:19961] CHIP:DMG: - [1674546137.240028][19959:19961] CHIP:DMG: StatusIB = - [1674546137.240033][19959:19961] CHIP:DMG: { - [1674546137.240036][19959:19961] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546137.240039][19959:19961] CHIP:DMG: }, - [1674546137.240042][19959:19961] CHIP:DMG: - [1674546137.240044][19959:19961] CHIP:DMG: }, - [1674546137.240049][19959:19961] CHIP:DMG: - [1674546137.240051][19959:19961] CHIP:DMG: ], - [1674546137.240059][19959:19961] CHIP:DMG: - [1674546137.240062][19959:19961] CHIP:DMG: InteractionModelRevision = 1 - [1674546137.240064][19959:19961] CHIP:DMG: } - - - - - After executing all commands related to the above four groups, execute the below command before adding the Group 0x0007 to check the Resource_Exhausted Condition - - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 7, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674546896.141697][20084:20086] CHIP:DMG: WriteResponseMessage = - [1674546896.141700][20084:20086] CHIP:DMG: { - [1674546896.141702][20084:20086] CHIP:DMG: AttributeStatusIBs = - [1674546896.141707][20084:20086] CHIP:DMG: [ - [1674546896.141708][20084:20086] CHIP:DMG: AttributeStatusIB = - [1674546896.141711][20084:20086] CHIP:DMG: { - [1674546896.141713][20084:20086] CHIP:DMG: AttributePathIB = - [1674546896.141716][20084:20086] CHIP:DMG: { - [1674546896.141719][20084:20086] CHIP:DMG: Endpoint = 0x0, - [1674546896.141721][20084:20086] CHIP:DMG: Cluster = 0x3f, - [1674546896.141724][20084:20086] CHIP:DMG: Attribute = 0x0000_0000, - [1674546896.141726][20084:20086] CHIP:DMG: } - [1674546896.141730][20084:20086] CHIP:DMG: - [1674546896.141732][20084:20086] CHIP:DMG: StatusIB = - [1674546896.141734][20084:20086] CHIP:DMG: { - [1674546896.141737][20084:20086] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546896.141739][20084:20086] CHIP:DMG: }, - [1674546896.141742][20084:20086] CHIP:DMG: - [1674546896.141743][20084:20086] CHIP:DMG: }, - [1674546896.141750][20084:20086] CHIP:DMG: - [1674546896.141752][20084:20086] CHIP:DMG: AttributeStatusIB = - [1674546896.141755][20084:20086] CHIP:DMG: { - [1674546896.141758][20084:20086] CHIP:DMG: AttributePathIB = - [1674546896.141760][20084:20086] CHIP:DMG: { - [1674546896.141763][20084:20086] CHIP:DMG: Endpoint = 0x0, - [1674546896.141766][20084:20086] CHIP:DMG: Cluster = 0x3f, - [1674546896.141769][20084:20086] CHIP:DMG: Attribute = 0x0000_0000, - [1674546896.141773][20084:20086] CHIP:DMG: ListIndex = Null, - [1674546896.141776][20084:20086] CHIP:DMG: } - [1674546896.141781][20084:20086] CHIP:DMG: - [1674546896.141783][20084:20086] CHIP:DMG: StatusIB = - [1674546896.141786][20084:20086] CHIP:DMG: { - [1674546896.141789][20084:20086] CHIP:DMG: status = 0x00 (SUCCESS), - [1674546896.141792][20084:20086] CHIP:DMG: }, - [1674546896.141795][20084:20086] CHIP:DMG: - [1674546896.141798][20084:20086] CHIP:DMG: }, - [1674546896.141802][20084:20086] CHIP:DMG: - [1674546896.141805][20084:20086] CHIP:DMG: ], - [1674546896.141811][20084:20086] CHIP:DMG: - [1674546896.141813][20084:20086] CHIP:DMG: InteractionModelRevision = 1 - [1674546896.141816][20084:20086] CHIP:DMG: } + ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, + "groupKeySecurityPolicy": 1, "epochKey0": + "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": + "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": + "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = + [1658316948.574561][4039:4044] CHIP:DMG: { + [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), + [1658316948.574632][4039:4044] CHIP:DMG: }, + + Before adding the Groups(0x0001 to Maxgroup) execute below command to bind the GroupId with GroupKeySetId . + + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":4, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 5, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 9, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":10, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 11, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":12, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683797474.814392][38909:38911] CHIP:DMG: WriteResponseMessage = + [1683797474.814395][38909:38911] CHIP:DMG: { + [1683797474.814398][38909:38911] CHIP:DMG: AttributeStatusIBs = + [1683797474.814403][38909:38911] CHIP:DMG: [ + [1683797474.814405][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814410][38909:38911] CHIP:DMG: { + [1683797474.814414][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814419][38909:38911] CHIP:DMG: { + [1683797474.814424][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814429][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814435][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814441][38909:38911] CHIP:DMG: } + [1683797474.814447][38909:38911] CHIP:DMG: + [1683797474.814451][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814456][38909:38911] CHIP:DMG: { + [1683797474.814466][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814471][38909:38911] CHIP:DMG: }, + [1683797474.814476][38909:38911] CHIP:DMG: + [1683797474.814480][38909:38911] CHIP:DMG: }, + [1683797474.814489][38909:38911] CHIP:DMG: + [1683797474.814493][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814498][38909:38911] CHIP:DMG: { + [1683797474.814501][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814506][38909:38911] CHIP:DMG: { + [1683797474.814510][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814515][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814520][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814527][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814530][38909:38911] CHIP:DMG: } + [1683797474.814541][38909:38911] CHIP:DMG: + [1683797474.814546][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814551][38909:38911] CHIP:DMG: { + [1683797474.814555][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814560][38909:38911] CHIP:DMG: }, + [1683797474.814564][38909:38911] CHIP:DMG: + [1683797474.814567][38909:38911] CHIP:DMG: }, + [1683797474.814576][38909:38911] CHIP:DMG: + [1683797474.814579][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814583][38909:38911] CHIP:DMG: { + [1683797474.814586][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814591][38909:38911] CHIP:DMG: { + [1683797474.814595][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814599][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814604][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814609][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814615][38909:38911] CHIP:DMG: } + [1683797474.814622][38909:38911] CHIP:DMG: + [1683797474.814626][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814630][38909:38911] CHIP:DMG: { + [1683797474.814634][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814639][38909:38911] CHIP:DMG: }, + [1683797474.814644][38909:38911] CHIP:DMG: + [1683797474.814647][38909:38911] CHIP:DMG: }, + [1683797474.814657][38909:38911] CHIP:DMG: + [1683797474.814660][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814665][38909:38911] CHIP:DMG: { + [1683797474.814668][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814675][38909:38911] CHIP:DMG: { + [1683797474.814680][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814683][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814688][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814692][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814696][38909:38911] CHIP:DMG: } + [1683797474.814702][38909:38911] CHIP:DMG: + [1683797474.814706][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814710][38909:38911] CHIP:DMG: { + [1683797474.814715][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814720][38909:38911] CHIP:DMG: }, + [1683797474.814724][38909:38911] CHIP:DMG: + [1683797474.814728][38909:38911] CHIP:DMG: }, + [1683797474.814737][38909:38911] CHIP:DMG: + [1683797474.814741][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814745][38909:38911] CHIP:DMG: { + [1683797474.814748][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814752][38909:38911] CHIP:DMG: { + [1683797474.814757][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814761][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814767][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814771][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814776][38909:38911] CHIP:DMG: } + [1683797474.814782][38909:38911] CHIP:DMG: + [1683797474.814786][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814791][38909:38911] CHIP:DMG: { + [1683797474.814795][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814799][38909:38911] CHIP:DMG: }, + [1683797474.814803][38909:38911] CHIP:DMG: + [1683797474.814808][38909:38911] CHIP:DMG: }, + [1683797474.814817][38909:38911] CHIP:DMG: + [1683797474.814821][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814825][38909:38911] CHIP:DMG: { + [1683797474.814828][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814835][38909:38911] CHIP:DMG: { + [1683797474.814839][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814844][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814868][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814872][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814876][38909:38911] CHIP:DMG: } + [1683797474.814882][38909:38911] CHIP:DMG: + [1683797474.814886][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814892][38909:38911] CHIP:DMG: { + [1683797474.814896][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814901][38909:38911] CHIP:DMG: }, + [1683797474.814906][38909:38911] CHIP:DMG: + [1683797474.814910][38909:38911] CHIP:DMG: }, + [1683797474.814919][38909:38911] CHIP:DMG: + [1683797474.814922][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814927][38909:38911] CHIP:DMG: { + [1683797474.814931][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814935][38909:38911] CHIP:DMG: { + [1683797474.814939][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814944][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814950][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814954][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814958][38909:38911] CHIP:DMG: } + [1683797474.814965][38909:38911] CHIP:DMG: + [1683797474.814969][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814973][38909:38911] CHIP:DMG: { + [1683797474.814978][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814982][38909:38911] CHIP:DMG: }, + [1683797474.814987][38909:38911] CHIP:DMG: + [1683797474.814991][38909:38911] CHIP:DMG: }, + [1683797474.815000][38909:38911] CHIP:DMG: + [1683797474.815003][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815007][38909:38911] CHIP:DMG: { + [1683797474.815011][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815015][38909:38911] CHIP:DMG: { + [1683797474.815019][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815024][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815029][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815033][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815038][38909:38911] CHIP:DMG: } + [1683797474.815045][38909:38911] CHIP:DMG: + [1683797474.815048][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815054][38909:38911] CHIP:DMG: { + [1683797474.815058][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815062][38909:38911] CHIP:DMG: }, + [1683797474.815067][38909:38911] CHIP:DMG: + [1683797474.815071][38909:38911] CHIP:DMG: }, + [1683797474.815080][38909:38911] CHIP:DMG: + [1683797474.815084][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815088][38909:38911] CHIP:DMG: { + [1683797474.815091][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815096][38909:38911] CHIP:DMG: { + [1683797474.815100][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815107][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815112][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815117][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815121][38909:38911] CHIP:DMG: } + [1683797474.815127][38909:38911] CHIP:DMG: + [1683797474.815131][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815135][38909:38911] CHIP:DMG: { + [1683797474.815139][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815143][38909:38911] CHIP:DMG: }, + [1683797474.815148][38909:38911] CHIP:DMG: + [1683797474.815151][38909:38911] CHIP:DMG: }, + [1683797474.815160][38909:38911] CHIP:DMG: + [1683797474.815164][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815168][38909:38911] CHIP:DMG: { + [1683797474.815171][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815177][38909:38911] CHIP:DMG: { + [1683797474.815181][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815186][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815190][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815198][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815202][38909:38911] CHIP:DMG: } + [1683797474.815207][38909:38911] CHIP:DMG: + [1683797474.815211][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815216][38909:38911] CHIP:DMG: { + [1683797474.815220][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815224][38909:38911] CHIP:DMG: }, + [1683797474.815230][38909:38911] CHIP:DMG: + [1683797474.815233][38909:38911] CHIP:DMG: }, + [1683797474.815242][38909:38911] CHIP:DMG: + [1683797474.815245][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815249][38909:38911] CHIP:DMG: { + [1683797474.815252][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815257][38909:38911] CHIP:DMG: { + [1683797474.815262][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815266][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815271][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815275][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815278][38909:38911] CHIP:DMG: } + [1683797474.815285][38909:38911] CHIP:DMG: + [1683797474.815289][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815293][38909:38911] CHIP:DMG: { + [1683797474.815297][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815300][38909:38911] CHIP:DMG: }, + [1683797474.815305][38909:38911] CHIP:DMG: + [1683797474.815308][38909:38911] CHIP:DMG: }, + [1683797474.815317][38909:38911] CHIP:DMG: + [1683797474.815321][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815325][38909:38911] CHIP:DMG: { + [1683797474.815329][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815333][38909:38911] CHIP:DMG: { + [1683797474.815337][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815342][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815346][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815352][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815356][38909:38911] CHIP:DMG: } + [1683797474.815363][38909:38911] CHIP:DMG: + [1683797474.815366][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815370][38909:38911] CHIP:DMG: { + [1683797474.815375][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815379][38909:38911] CHIP:DMG: }, + [1683797474.815383][38909:38911] CHIP:DMG: + [1683797474.815387][38909:38911] CHIP:DMG: }, + [1683797474.815396][38909:38911] CHIP:DMG: + [1683797474.815400][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815404][38909:38911] CHIP:DMG: { + [1683797474.815407][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815411][38909:38911] CHIP:DMG: { + [1683797474.815415][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815419][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815424][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815428][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815432][38909:38911] CHIP:DMG: } + [1683797474.815439][38909:38911] CHIP:DMG: + [1683797474.815443][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815448][38909:38911] CHIP:DMG: { + [1683797474.815452][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815455][38909:38911] CHIP:DMG: }, + [1683797474.815460][38909:38911] CHIP:DMG: + [1683797474.815463][38909:38911] CHIP:DMG: }, + [1683797474.815469][38909:38911] CHIP:DMG: + [1683797474.815473][38909:38911] CHIP:DMG: ], + [1683797474.815508][38909:38911] CHIP:DMG: + [1683797474.815512][38909:38911] CHIP:DMG: InteractionModelRevision = 1 + [1683797474.815515][38909:38911] CHIP:DMG: } + + Before adding the Groups(MaxGroup+1) execute below command which is used to check the Resource_Exhausted Condition + + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 13, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683799348.785746][39651:39653] CHIP:DMG: WriteResponseMessage = + [1683799348.785751][39651:39653] CHIP:DMG: { + [1683799348.785755][39651:39653] CHIP:DMG: AttributeStatusIBs = + [1683799348.785763][39651:39653] CHIP:DMG: [ + [1683799348.785767][39651:39653] CHIP:DMG: AttributeStatusIB = + [1683799348.785771][39651:39653] CHIP:DMG: { + [1683799348.785775][39651:39653] CHIP:DMG: AttributePathIB = + [1683799348.785780][39651:39653] CHIP:DMG: { + [1683799348.785785][39651:39653] CHIP:DMG: Endpoint = 0x0, + [1683799348.785789][39651:39653] CHIP:DMG: Cluster = 0x3f, + [1683799348.785794][39651:39653] CHIP:DMG: Attribute = 0x0000_0000, + [1683799348.785798][39651:39653] CHIP:DMG: } + [1683799348.785804][39651:39653] CHIP:DMG: + [1683799348.785811][39651:39653] CHIP:DMG: StatusIB = + [1683799348.785816][39651:39653] CHIP:DMG: { + [1683799348.785821][39651:39653] CHIP:DMG: status = 0x00 (SUCCESS), + [1683799348.785825][39651:39653] CHIP:DMG: }, + [1683799348.785831][39651:39653] CHIP:DMG: + [1683799348.785835][39651:39653] CHIP:DMG: }, + [1683799348.785844][39651:39653] CHIP:DMG: + [1683799348.785848][39651:39653] CHIP:DMG: AttributeStatusIB = + [1683799348.785852][39651:39653] CHIP:DMG: { + [1683799348.785856][39651:39653] CHIP:DMG: AttributePathIB = + [1683799348.785860][39651:39653] CHIP:DMG: { + [1683799348.785865][39651:39653] CHIP:DMG: Endpoint = 0x0, + [1683799348.785869][39651:39653] CHIP:DMG: Cluster = 0x3f, + [1683799348.785874][39651:39653] CHIP:DMG: Attribute = 0x0000_0000, + [1683799348.785878][39651:39653] CHIP:DMG: ListIndex = Null, + [1683799348.785882][39651:39653] CHIP:DMG: } + [1683799348.785889][39651:39653] CHIP:DMG: + [1683799348.785894][39651:39653] CHIP:DMG: StatusIB = + [1683799348.785898][39651:39653] CHIP:DMG: { + [1683799348.785904][39651:39653] CHIP:DMG: status = 0x00 (SUCCESS), + [1683799348.785909][39651:39653] CHIP:DMG: }, + [1683799348.785914][39651:39653] CHIP:DMG: + [1683799348.785918][39651:39653] CHIP:DMG: }, + [1683799348.785924][39651:39653] CHIP:DMG: + [1683799348.785927][39651:39653] CHIP:DMG: ], + [1683799348.785936][39651:39653] CHIP:DMG: + [1683799348.785940][39651:39653] CHIP:DMG: InteractionModelRevision = 1 + [1683799348.785943][39651:39653] CHIP:DMG: } disabled: true - label: @@ -356,7 +461,6 @@ tests: Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: - [1653484116.857523][11289:11294] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1653484116.857675][11289:11294] CHIP:TOO: AddGroupResponse: { [1653484116.857739][11289:11294] CHIP:TOO: status: 0 @@ -367,13 +471,91 @@ tests: Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: - [1674546345.099827][19986:19988] CHIP:DMG: }, - [1674546345.099884][19986:19988] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0004 Command=0x0000_0000 [1674546345.099915][19986:19988] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000 [1674546345.099956][19986:19988] CHIP:TOO: AddGroupResponse: { [1674546345.099972][19986:19988] CHIP:TOO: status: 0 [1674546345.099983][19986:19988] CHIP:TOO: groupID: 4 [1674546345.099991][19986:19988] CHIP:TOO: } + + ./chip-tool groups add-group 0x0005 grp5 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683797532.820818][38963:38965] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683797532.820829][38963:38965] CHIP:TOO: AddGroupResponse: { + [1683797532.820834][38963:38965] CHIP:TOO: status: 0 + [1683797532.820836][38963:38965] CHIP:TOO: groupID: 5 + [1683797532.820839][38963:38965] CHIP:TOO: } + + ./chip-tool groups add-group 0x0006 grp6 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798249.880860][39235:39237] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798249.880880][39235:39237] CHIP:TOO: AddGroupResponse: { + [1683798249.880886][39235:39237] CHIP:TOO: status: 0 + [1683798249.880889][39235:39237] CHIP:TOO: groupID: 6 + [1683798249.880894][39235:39237] CHIP:TOO: } + + ./chip-tool groups add-group 0x0007 grp7 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798272.917114][39258:39260] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798272.917127][39258:39260] CHIP:TOO: AddGroupResponse: { + [1683798272.917132][39258:39260] CHIP:TOO: status: 0 + [1683798272.917134][39258:39260] CHIP:TOO: groupID: 7 + [1683798272.917137][39258:39260] CHIP:TOO: } + + ./chip-tool groups add-group 0x0008 grp8 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798280.635111][39261:39263] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798280.635124][39261:39263] CHIP:TOO: AddGroupResponse: { + [1683798280.635129][39261:39263] CHIP:TOO: status: 0 + [1683798280.635132][39261:39263] CHIP:TOO: groupID: 8 + [1683798280.635134][39261:39263] CHIP:TOO: } + + ./chip-tool groups add-group 0x0009 grp9 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798286.442492][39265:39267] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798286.442506][39265:39267] CHIP:TOO: AddGroupResponse: { + [1683798286.442511][39265:39267] CHIP:TOO: status: 0 + [1683798286.442515][39265:39267] CHIP:TOO: groupID: 9 + [1683798286.442519][39265:39267] CHIP:TOO: } + + ./chip-tool groups add-group 0x000a grp10 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798294.910019][39276:39278] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798294.910031][39276:39278] CHIP:TOO: AddGroupResponse: { + [1683798294.910038][39276:39278] CHIP:TOO: status: 0 + [1683798294.910041][39276:39278] CHIP:TOO: groupID: 10 + [1683798294.910044][39276:39278] CHIP:TOO: } + + ./chip-tool groups add-group 0x000b grp11 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798300.856661][39279:39281] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798300.856672][39279:39281] CHIP:TOO: AddGroupResponse: { + [1683798300.856676][39279:39281] CHIP:TOO: status: 0 + [1683798300.856679][39279:39281] CHIP:TOO: groupID: 11 + [1683798300.856681][39279:39281] CHIP:TOO: } + + ./chip-tool groups add-group 0x000c grp12 1 0 + + Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + + [1683798309.207611][39284:39286] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683798309.207625][39284:39286] CHIP:TOO: AddGroupResponse: { + [1683798309.207631][39284:39286] CHIP:TOO: status: 0 + [1683798309.207635][39284:39286] CHIP:TOO: groupID: 12 + [1683798309.207639][39284:39286] CHIP:TOO: } disabled: true - label: @@ -385,39 +567,93 @@ tests: Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674543471.793316][19288:19290] CHIP:DMG: } - [1674543471.793466][19288:19290] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3217277219 - [1674546505.532342][20008:20010] CHIP:DMG: } - [1674546505.533120][20008:20010] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1241587620 - [1674546505.533150][20008:20010] CHIP:TOO: GroupTable: 4 entries - [1674546505.533171][20008:20010] CHIP:TOO: [1]: { - [1674546505.533179][20008:20010] CHIP:TOO: GroupId: 1 - [1674546505.533184][20008:20010] CHIP:TOO: Endpoints: 1 entries - [1674546505.533190][20008:20010] CHIP:TOO: [1]: 0 - [1674546505.533198][20008:20010] CHIP:TOO: GroupName: grp1 - [1674546505.533202][20008:20010] CHIP:TOO: FabricIndex: 1 - [1674546505.533207][20008:20010] CHIP:TOO: } - [1674546505.533212][20008:20010] CHIP:TOO: [2]: { - [1674546505.533215][20008:20010] CHIP:TOO: GroupId: 2 - [1674546505.533217][20008:20010] CHIP:TOO: Endpoints: 1 entries - [1674546505.533220][20008:20010] CHIP:TOO: [1]: 0 - [1674546505.533224][20008:20010] CHIP:TOO: GroupName: grp2 - [1674546505.533228][20008:20010] CHIP:TOO: FabricIndex: 1 - [1674546505.533231][20008:20010] CHIP:TOO: } - [1674546505.533238][20008:20010] CHIP:TOO: [3]: { - [1674546505.533241][20008:20010] CHIP:TOO: GroupId: 3 - [1674546505.533245][20008:20010] CHIP:TOO: Endpoints: 1 entries - [1674546505.533250][20008:20010] CHIP:TOO: [1]: 0 - [1674546505.533254][20008:20010] CHIP:TOO: GroupName: grp3 - [1674546505.533258][20008:20010] CHIP:TOO: FabricIndex: 1 - [1674546505.533262][20008:20010] CHIP:TOO: } - [1674546505.533269][20008:20010] CHIP:TOO: [4]: { - [1674546505.533272][20008:20010] CHIP:TOO: GroupId: 4 - [1674546505.533277][20008:20010] CHIP:TOO: Endpoints: 1 entries - [1674546505.533282][20008:20010] CHIP:TOO: [1]: 0 - [1674546505.533286][20008:20010] CHIP:TOO: GroupName: grp4 - [1674546505.533289][20008:20010] CHIP:TOO: FabricIndex: 1 - [1674546505.533292][20008:20010] CHIP:TOO: } + [1683799060.033379][39543:39545] CHIP:DMG: } + [1683799060.033604][39543:39545] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443861 + [1683799060.033654][39543:39545] CHIP:TOO: GroupTable: 12 entries + [1683799060.033666][39543:39545] CHIP:TOO: [1]: { + [1683799060.033670][39543:39545] CHIP:TOO: GroupId: 1 + [1683799060.033674][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033678][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033682][39543:39545] CHIP:TOO: GroupName: grp1 + [1683799060.033685][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033688][39543:39545] CHIP:TOO: } + [1683799060.033693][39543:39545] CHIP:TOO: [2]: { + [1683799060.033696][39543:39545] CHIP:TOO: GroupId: 2 + [1683799060.033700][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033704][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033707][39543:39545] CHIP:TOO: GroupName: grp2 + [1683799060.033710][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033711][39543:39545] CHIP:TOO: } + [1683799060.033717][39543:39545] CHIP:TOO: [3]: { + [1683799060.033719][39543:39545] CHIP:TOO: GroupId: 3 + [1683799060.033722][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033726][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033728][39543:39545] CHIP:TOO: GroupName: grp3 + [1683799060.033730][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033733][39543:39545] CHIP:TOO: } + [1683799060.033737][39543:39545] CHIP:TOO: [4]: { + [1683799060.033740][39543:39545] CHIP:TOO: GroupId: 4 + [1683799060.033743][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033746][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033749][39543:39545] CHIP:TOO: GroupName: grp4 + [1683799060.033752][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033754][39543:39545] CHIP:TOO: } + [1683799060.033759][39543:39545] CHIP:TOO: [5]: { + [1683799060.033762][39543:39545] CHIP:TOO: GroupId: 5 + [1683799060.033765][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033769][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033771][39543:39545] CHIP:TOO: GroupName: grp5 + [1683799060.033774][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033777][39543:39545] CHIP:TOO: } + [1683799060.033783][39543:39545] CHIP:TOO: [6]: { + [1683799060.033785][39543:39545] CHIP:TOO: GroupId: 6 + [1683799060.033788][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033792][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033795][39543:39545] CHIP:TOO: GroupName: grp6 + [1683799060.033798][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033801][39543:39545] CHIP:TOO: } + [1683799060.033806][39543:39545] CHIP:TOO: [7]: { + [1683799060.033809][39543:39545] CHIP:TOO: GroupId: 7 + [1683799060.033813][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033816][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033819][39543:39545] CHIP:TOO: GroupName: grp7 + [1683799060.033822][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033824][39543:39545] CHIP:TOO: } + [1683799060.033830][39543:39545] CHIP:TOO: [8]: { + [1683799060.033832][39543:39545] CHIP:TOO: GroupId: 8 + [1683799060.033835][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033839][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033841][39543:39545] CHIP:TOO: GroupName: grp8 + [1683799060.033843][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033845][39543:39545] CHIP:TOO: } + [1683799060.033850][39543:39545] CHIP:TOO: [9]: { + [1683799060.033853][39543:39545] CHIP:TOO: GroupId: 9 + [1683799060.033855][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033858][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033861][39543:39545] CHIP:TOO: GroupName: grp9 + [1683799060.033863][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033866][39543:39545] CHIP:TOO: } + [1683799060.033871][39543:39545] CHIP:TOO: [10]: { + [1683799060.033874][39543:39545] CHIP:TOO: GroupId: 10 + [1683799060.033877][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033881][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033884][39543:39545] CHIP:TOO: GroupName: grp10 + [1683799060.033886][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033889][39543:39545] CHIP:TOO: } + [1683799060.033894][39543:39545] CHIP:TOO: [11]: { + [1683799060.033897][39543:39545] CHIP:TOO: GroupId: 11 + [1683799060.033900][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033903][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033905][39543:39545] CHIP:TOO: GroupName: grp11 + [1683799060.033907][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033910][39543:39545] CHIP:TOO: } + [1683799060.033915][39543:39545] CHIP:TOO: [12]: { + [1683799060.033918][39543:39545] CHIP:TOO: GroupId: 12 + [1683799060.033922][39543:39545] CHIP:TOO: Endpoints: 1 entries + [1683799060.033925][39543:39545] CHIP:TOO: [1]: 0 + [1683799060.033928][39543:39545] CHIP:TOO: GroupName: grp12 + [1683799060.033930][39543:39545] CHIP:TOO: FabricIndex: 1 + [1683799060.033932][39543:39545] CHIP:TOO: } disabled: true - label: @@ -425,17 +661,15 @@ tests: (maxgroups+1)" PICS: G.S.C00.Rsp verification: | - ./chip-tool groups add-group 0x0007 grp7 1 0 + ./chip-tool groups add-group 0x000d grp13 1 0 Verify the "status is RESOURCE_EXHAUSTED" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674547293.989280][20162:20164] CHIP:DMG: }, - [1674547293.989297][20162:20164] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0004 Command=0x0000_0000 - [1674547293.989307][20162:20164] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 - [1674547293.989316][20162:20164] CHIP:TOO: AddGroupResponse: { - [1674547293.989324][20162:20164] CHIP:TOO: status: 137 - [1674547293.989328][20162:20164] CHIP:TOO: groupID: 7 - [1674547293.989332][20162:20164] CHIP:TOO: } + [1683799371.472148][39657:39659] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 + [1683799371.472159][39657:39659] CHIP:TOO: AddGroupResponse: { + [1683799371.472163][39657:39659] CHIP:TOO: status: 137 + [1683799371.472166][39657:39659] CHIP:TOO: groupID: 13 + [1683799371.472170][39657:39659] CHIP:TOO: } disabled: true - label: @@ -445,38 +679,94 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1674546676.645814][20037:20039] CHIP:DMG: } - [1674546676.646502][20037:20039] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1241587622 - [1674546676.646599][20037:20039] CHIP:TOO: GroupTable: 4 entries - [1674546676.646644][20037:20039] CHIP:TOO: [1]: { - [1674546676.646666][20037:20039] CHIP:TOO: GroupId: 1 - [1674546676.646682][20037:20039] CHIP:TOO: Endpoints: 1 entries - [1674546676.646698][20037:20039] CHIP:TOO: [1]: 0 - [1674546676.646710][20037:20039] CHIP:TOO: GroupName: grp1 - [1674546676.646722][20037:20039] CHIP:TOO: FabricIndex: 1 - [1674546676.646733][20037:20039] CHIP:TOO: } - [1674546676.646755][20037:20039] CHIP:TOO: [2]: { - [1674546676.646764][20037:20039] CHIP:TOO: GroupId: 2 - [1674546676.646776][20037:20039] CHIP:TOO: Endpoints: 1 entries - [1674546676.646789][20037:20039] CHIP:TOO: [1]: 0 - [1674546676.646799][20037:20039] CHIP:TOO: GroupName: grp2 - [1674546676.646809][20037:20039] CHIP:TOO: FabricIndex: 1 - [1674546676.646819][20037:20039] CHIP:TOO: } - [1674546676.646839][20037:20039] CHIP:TOO: [3]: { - [1674546676.646849][20037:20039] CHIP:TOO: GroupId: 3 - [1674546676.646860][20037:20039] CHIP:TOO: Endpoints: 1 entries - [1674546676.646873][20037:20039] CHIP:TOO: [1]: 0 - [1674546676.646884][20037:20039] CHIP:TOO: GroupName: grp3 - [1674546676.646894][20037:20039] CHIP:TOO: FabricIndex: 1 - [1674546676.646903][20037:20039] CHIP:TOO: } - [1674546676.646922][20037:20039] CHIP:TOO: [4]: { - [1674546676.646932][20037:20039] CHIP:TOO: GroupId: 4 - [1674546676.646944][20037:20039] CHIP:TOO: Endpoints: 1 entries - [1674546676.646956][20037:20039] CHIP:TOO: [1]: 0 - [1674546676.646967][20037:20039] CHIP:TOO: GroupName: grp4 - [1674546676.646976][20037:20039] CHIP:TOO: FabricIndex: 1 - [1674546676.646985][20037:20039] CHIP:TOO: } + Verify the GroupTable does not include an entry for GroupId (maxgroups+1) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683799439.271618][39702:39704] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 + [1683799439.271671][39702:39704] CHIP:TOO: GroupTable: 12 entries + [1683799439.271688][39702:39704] CHIP:TOO: [1]: { + [1683799439.271692][39702:39704] CHIP:TOO: GroupId: 1 + [1683799439.271698][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271704][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271709][39702:39704] CHIP:TOO: GroupName: grp1 + [1683799439.271714][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271718][39702:39704] CHIP:TOO: } + [1683799439.271727][39702:39704] CHIP:TOO: [2]: { + [1683799439.271732][39702:39704] CHIP:TOO: GroupId: 2 + [1683799439.271737][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271742][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271746][39702:39704] CHIP:TOO: GroupName: grp2 + [1683799439.271750][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271754][39702:39704] CHIP:TOO: } + [1683799439.271762][39702:39704] CHIP:TOO: [3]: { + [1683799439.271765][39702:39704] CHIP:TOO: GroupId: 3 + [1683799439.271770][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271775][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271779][39702:39704] CHIP:TOO: GroupName: grp3 + [1683799439.271782][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271786][39702:39704] CHIP:TOO: } + [1683799439.271794][39702:39704] CHIP:TOO: [4]: { + [1683799439.271798][39702:39704] CHIP:TOO: GroupId: 4 + [1683799439.271803][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271808][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271812][39702:39704] CHIP:TOO: GroupName: grp4 + [1683799439.271816][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271820][39702:39704] CHIP:TOO: } + [1683799439.271827][39702:39704] CHIP:TOO: [5]: { + [1683799439.271831][39702:39704] CHIP:TOO: GroupId: 5 + [1683799439.271836][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271841][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271845][39702:39704] CHIP:TOO: GroupName: grp5 + [1683799439.271849][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271853][39702:39704] CHIP:TOO: } + [1683799439.271861][39702:39704] CHIP:TOO: [6]: { + [1683799439.271865][39702:39704] CHIP:TOO: GroupId: 6 + [1683799439.271870][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271874][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271878][39702:39704] CHIP:TOO: GroupName: grp6 + [1683799439.271882][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271886][39702:39704] CHIP:TOO: } + [1683799439.271893][39702:39704] CHIP:TOO: [7]: { + [1683799439.271897][39702:39704] CHIP:TOO: GroupId: 7 + [1683799439.271902][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271907][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271911][39702:39704] CHIP:TOO: GroupName: grp7 + [1683799439.271915][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271919][39702:39704] CHIP:TOO: } + [1683799439.271927][39702:39704] CHIP:TOO: [8]: { + [1683799439.271930][39702:39704] CHIP:TOO: GroupId: 8 + [1683799439.271935][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271940][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271945][39702:39704] CHIP:TOO: GroupName: grp8 + [1683799439.271949][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271952][39702:39704] CHIP:TOO: } + [1683799439.271960][39702:39704] CHIP:TOO: [9]: { + [1683799439.271964][39702:39704] CHIP:TOO: GroupId: 9 + [1683799439.271969][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.271974][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.271978][39702:39704] CHIP:TOO: GroupName: grp9 + [1683799439.271982][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.271985][39702:39704] CHIP:TOO: } + [1683799439.271993][39702:39704] CHIP:TOO: [10]: { + [1683799439.271997][39702:39704] CHIP:TOO: GroupId: 10 + [1683799439.272002][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.272007][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.272011][39702:39704] CHIP:TOO: GroupName: grp10 + [1683799439.272016][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.272019][39702:39704] CHIP:TOO: } + [1683799439.272026][39702:39704] CHIP:TOO: [11]: { + [1683799439.272030][39702:39704] CHIP:TOO: GroupId: 11 + [1683799439.272035][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.272040][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.272044][39702:39704] CHIP:TOO: GroupName: grp11 + [1683799439.272048][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.272051][39702:39704] CHIP:TOO: } + [1683799439.272059][39702:39704] CHIP:TOO: [12]: { + [1683799439.272063][39702:39704] CHIP:TOO: GroupId: 12 + [1683799439.272067][39702:39704] CHIP:TOO: Endpoints: 1 entries + [1683799439.272072][39702:39704] CHIP:TOO: [1]: 0 + [1683799439.272076][39702:39704] CHIP:TOO: GroupName: grp12 + [1683799439.272080][39702:39704] CHIP:TOO: FabricIndex: 1 + [1683799439.272083][39702:39704] CHIP:TOO: } disabled: true - label: @@ -585,32 +875,88 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log below is the sample log provided for the raspi platform: - - [1674550642.445157][20620:20622] CHIP:DMG: } - [1674550642.445302][20620:20622] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 2738113270 - [1674550642.445326][20620:20622] CHIP:TOO: GroupTable: 3 entries - [1674550642.445342][20620:20622] CHIP:TOO: [1]: { - [1674550642.445348][20620:20622] CHIP:TOO: GroupId: 2 - [1674550642.445352][20620:20622] CHIP:TOO: Endpoints: 1 entries - [1674550642.445356][20620:20622] CHIP:TOO: [1]: 0 - [1674550642.445360][20620:20622] CHIP:TOO: GroupName: grp2 - [1674550642.445363][20620:20622] CHIP:TOO: FabricIndex: 1 - [1674550642.445366][20620:20622] CHIP:TOO: } - [1674550642.445371][20620:20622] CHIP:TOO: [2]: { - [1674550642.445374][20620:20622] CHIP:TOO: GroupId: 3 - [1674550642.445377][20620:20622] CHIP:TOO: Endpoints: 1 entries - [1674550642.445380][20620:20622] CHIP:TOO: [1]: 0 - [1674550642.445382][20620:20622] CHIP:TOO: GroupName: grp3 - [1674550642.445385][20620:20622] CHIP:TOO: FabricIndex: 1 - [1674550642.445387][20620:20622] CHIP:TOO: } - [1674550642.445393][20620:20622] CHIP:TOO: [3]: { - [1674550642.445395][20620:20622] CHIP:TOO: GroupId: 4 - [1674550642.445398][20620:20622] CHIP:TOO: Endpoints: 1 entries - [1674550642.445401][20620:20622] CHIP:TOO: [1]: 0 - [1674550642.445404][20620:20622] CHIP:TOO: GroupName: grp4 - [1674550642.445407][20620:20622] CHIP:TOO: FabricIndex: 1 - [1674550642.445409][20620:20622] CHIP:TOO: } + Verify that Grouptable not contains GroupId 0X0001 entry on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683800704.469297][40300:40302] CHIP:DMG: } + [1683800704.469495][40300:40302] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 + [1683800704.469940][40300:40302] CHIP:TOO: GroupTable: 11 entries + [1683800704.469966][40300:40302] CHIP:TOO: [1]: { + [1683800704.469973][40300:40302] CHIP:TOO: GroupId: 2 + [1683800704.469977][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.469986][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.469993][40300:40302] CHIP:TOO: GroupName: grp2 + [1683800704.469996][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.469998][40300:40302] CHIP:TOO: } + [1683800704.470004][40300:40302] CHIP:TOO: [2]: { + [1683800704.470007][40300:40302] CHIP:TOO: GroupId: 3 + [1683800704.470010][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470013][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470016][40300:40302] CHIP:TOO: GroupName: grp3 + [1683800704.470018][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470021][40300:40302] CHIP:TOO: } + [1683800704.470026][40300:40302] CHIP:TOO: [3]: { + [1683800704.470028][40300:40302] CHIP:TOO: GroupId: 4 + [1683800704.470031][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470035][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470038][40300:40302] CHIP:TOO: GroupName: grp4 + [1683800704.470040][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470042][40300:40302] CHIP:TOO: } + [1683800704.470047][40300:40302] CHIP:TOO: [4]: { + [1683800704.470050][40300:40302] CHIP:TOO: GroupId: 5 + [1683800704.470052][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470056][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470058][40300:40302] CHIP:TOO: GroupName: grp5 + [1683800704.470061][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470064][40300:40302] CHIP:TOO: } + [1683800704.470069][40300:40302] CHIP:TOO: [5]: { + [1683800704.470071][40300:40302] CHIP:TOO: GroupId: 6 + [1683800704.470075][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470078][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470081][40300:40302] CHIP:TOO: GroupName: grp6 + [1683800704.470083][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470085][40300:40302] CHIP:TOO: } + [1683800704.470091][40300:40302] CHIP:TOO: [6]: { + [1683800704.470094][40300:40302] CHIP:TOO: GroupId: 7 + [1683800704.470097][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470100][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470103][40300:40302] CHIP:TOO: GroupName: grp7 + [1683800704.470106][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470108][40300:40302] CHIP:TOO: } + [1683800704.470112][40300:40302] CHIP:TOO: [7]: { + [1683800704.470115][40300:40302] CHIP:TOO: GroupId: 8 + [1683800704.470117][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470121][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470123][40300:40302] CHIP:TOO: GroupName: grp8 + [1683800704.470126][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470128][40300:40302] CHIP:TOO: } + [1683800704.470134][40300:40302] CHIP:TOO: [8]: { + [1683800704.470136][40300:40302] CHIP:TOO: GroupId: 9 + [1683800704.470139][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470142][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470145][40300:40302] CHIP:TOO: GroupName: grp9 + [1683800704.470148][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470150][40300:40302] CHIP:TOO: } + [1683800704.470155][40300:40302] CHIP:TOO: [9]: { + [1683800704.470157][40300:40302] CHIP:TOO: GroupId: 10 + [1683800704.470161][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470164][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470168][40300:40302] CHIP:TOO: GroupName: grp10 + [1683800704.470170][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470172][40300:40302] CHIP:TOO: } + [1683800704.470177][40300:40302] CHIP:TOO: [10]: { + [1683800704.470180][40300:40302] CHIP:TOO: GroupId: 11 + [1683800704.470183][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470187][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470189][40300:40302] CHIP:TOO: GroupName: grp11 + [1683800704.470192][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470195][40300:40302] CHIP:TOO: } + [1683800704.470200][40300:40302] CHIP:TOO: [11]: { + [1683800704.470203][40300:40302] CHIP:TOO: GroupId: 12 + [1683800704.470206][40300:40302] CHIP:TOO: Endpoints: 1 entries + [1683800704.470210][40300:40302] CHIP:TOO: [1]: 0 + [1683800704.470212][40300:40302] CHIP:TOO: GroupName: grp12 + [1683800704.470214][40300:40302] CHIP:TOO: FabricIndex: 1 + [1683800704.470217][40300:40302] CHIP:TOO: } disabled: true - label: @@ -651,33 +997,88 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - - 1674550693.202331][20637:20639] CHIP:DMG: } - [1674550693.202481][20637:20639] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 2738113270 - [1674550693.202503][20637:20639] CHIP:TOO: GroupTable: 3 entries - [1674550693.202517][20637:20639] CHIP:TOO: [1]: { - [1674550693.202525][20637:20639] CHIP:TOO: GroupId: 2 - [1674550693.202530][20637:20639] CHIP:TOO: Endpoints: 1 entries - [1674550693.202536][20637:20639] CHIP:TOO: [1]: 0 - [1674550693.202541][20637:20639] CHIP:TOO: GroupName: grp2 - [1674550693.202544][20637:20639] CHIP:TOO: FabricIndex: 1 - [1674550693.202547][20637:20639] CHIP:TOO: } - [1674550693.202554][20637:20639] CHIP:TOO: [2]: { - [1674550693.202558][20637:20639] CHIP:TOO: GroupId: 3 - [1674550693.202562][20637:20639] CHIP:TOO: Endpoints: 1 entries - [1674550693.202567][20637:20639] CHIP:TOO: [1]: 0 - [1674550693.202570][20637:20639] CHIP:TOO: GroupName: grp3 - [1674550693.202572][20637:20639] CHIP:TOO: FabricIndex: 1 - [1674550693.202574][20637:20639] CHIP:TOO: } - [1674550693.202580][20637:20639] CHIP:TOO: [3]: { - [1674550693.202582][20637:20639] CHIP:TOO: GroupId: 4 - [1674550693.202586][20637:20639] CHIP:TOO: Endpoints: 1 entries - [1674550693.202591][20637:20639] CHIP:TOO: [1]: 0 - [1674550693.202595][20637:20639] CHIP:TOO: GroupName: grp4 - [1674550693.202599][20637:20639] CHIP:TOO: FabricIndex: 1 - [1674550693.202602][20637:20639] CHIP:TOO: } + Verify that Grouptable not contains GroupId 0X0001 entry on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683800854.535383][40352:40354] CHIP:DMG: } + [1683800854.535580][40352:40354] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 + [1683800854.535627][40352:40354] CHIP:TOO: GroupTable: 11 entries + [1683800854.535654][40352:40354] CHIP:TOO: [1]: { + [1683800854.535662][40352:40354] CHIP:TOO: GroupId: 2 + [1683800854.535667][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535671][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535676][40352:40354] CHIP:TOO: GroupName: grp2 + [1683800854.535679][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535682][40352:40354] CHIP:TOO: } + [1683800854.535688][40352:40354] CHIP:TOO: [2]: { + [1683800854.535693][40352:40354] CHIP:TOO: GroupId: 3 + [1683800854.535695][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535698][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535701][40352:40354] CHIP:TOO: GroupName: grp3 + [1683800854.535704][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535706][40352:40354] CHIP:TOO: } + [1683800854.535711][40352:40354] CHIP:TOO: [3]: { + [1683800854.535714][40352:40354] CHIP:TOO: GroupId: 4 + [1683800854.535717][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535720][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535723][40352:40354] CHIP:TOO: GroupName: grp4 + [1683800854.535727][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535728][40352:40354] CHIP:TOO: } + [1683800854.535733][40352:40354] CHIP:TOO: [4]: { + [1683800854.535735][40352:40354] CHIP:TOO: GroupId: 5 + [1683800854.535738][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535741][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535744][40352:40354] CHIP:TOO: GroupName: grp5 + [1683800854.535747][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535750][40352:40354] CHIP:TOO: } + [1683800854.535755][40352:40354] CHIP:TOO: [5]: { + [1683800854.535757][40352:40354] CHIP:TOO: GroupId: 6 + [1683800854.535760][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535763][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535765][40352:40354] CHIP:TOO: GroupName: grp6 + [1683800854.535768][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535770][40352:40354] CHIP:TOO: } + [1683800854.535775][40352:40354] CHIP:TOO: [6]: { + [1683800854.535778][40352:40354] CHIP:TOO: GroupId: 7 + [1683800854.535781][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535785][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535788][40352:40354] CHIP:TOO: GroupName: grp7 + [1683800854.535790][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535793][40352:40354] CHIP:TOO: } + [1683800854.535798][40352:40354] CHIP:TOO: [7]: { + [1683800854.535801][40352:40354] CHIP:TOO: GroupId: 8 + [1683800854.535804][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535807][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535809][40352:40354] CHIP:TOO: GroupName: grp8 + [1683800854.535812][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535814][40352:40354] CHIP:TOO: } + [1683800854.535819][40352:40354] CHIP:TOO: [8]: { + [1683800854.535822][40352:40354] CHIP:TOO: GroupId: 9 + [1683800854.535825][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535828][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535831][40352:40354] CHIP:TOO: GroupName: grp9 + [1683800854.535834][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535835][40352:40354] CHIP:TOO: } + [1683800854.535841][40352:40354] CHIP:TOO: [9]: { + [1683800854.535843][40352:40354] CHIP:TOO: GroupId: 10 + [1683800854.535847][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535850][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535854][40352:40354] CHIP:TOO: GroupName: grp10 + [1683800854.535857][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535859][40352:40354] CHIP:TOO: } + [1683800854.535864][40352:40354] CHIP:TOO: [10]: { + [1683800854.535866][40352:40354] CHIP:TOO: GroupId: 11 + [1683800854.535870][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535873][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535876][40352:40354] CHIP:TOO: GroupName: grp11 + [1683800854.535879][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535881][40352:40354] CHIP:TOO: } + [1683800854.535886][40352:40354] CHIP:TOO: [11]: { + [1683800854.535889][40352:40354] CHIP:TOO: GroupId: 12 + [1683800854.535893][40352:40354] CHIP:TOO: Endpoints: 1 entries + [1683800854.535896][40352:40354] CHIP:TOO: [1]: 0 + [1683800854.535899][40352:40354] CHIP:TOO: GroupName: grp12 + [1683800854.535901][40352:40354] CHIP:TOO: FabricIndex: 1 + [1683800854.535903][40352:40354] CHIP:TOO: } disabled: true - label: "TH sends RemoveAllGroups command to DUT as unicast method" @@ -719,7 +1120,6 @@ tests: Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1656332191.739327][27032:27037] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3761602970 [1656332191.739391][27032:27037] CHIP:TOO: GroupTable: 0 entries disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml index 5d28c8daa6eb8d..1c33ac64ae7b4c 100644 --- a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml @@ -39,10 +39,9 @@ tests: Verify the "MaxGroupsPerFabric value" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1674550919.106409][20702:20704] CHIP:DMG: } - [1674550919.106442][20702:20704] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 1314349257 - [1674550919.106455][20702:20704] CHIP:TOO: MaxGroupsPerFabric: 4 + [1683802556.948465][41067:41069] CHIP:DMG: } + [1683802556.948507][41067:41069] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 1698601848 + [1683802556.948520][41067:41069] CHIP:TOO: MaxGroupsPerFabric: 12 disabled: true - label: | @@ -74,28 +73,26 @@ tests: GroupKeyMap attribute list on GroupKeyManagement cluster with the values provided in the above steps verification: | - Execute the following command in TH to generate the pre-condition to execute this test case: - + Execute the following command in TH to generate the pre-condition step : ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, - "groupKeySecurityPolicy": 0, "epochKey0": + "groupKeySecurityPolicy": 1, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 - Verify the "status is success" on the TH(Chip-tool) Log: + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = [1658316948.574561][4039:4044] CHIP:DMG: { [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), [1658316948.574632][4039:4044] CHIP:DMG: }, - Before adding the Groups (0x0002,0x0003) execute this command + Before adding the Groups by AddGroup execute below command ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 - - Verify the status is success on the TH Log: + Verify the "status is success" on the TH Log and below is the sample log provided for the raspi platform: [1662655615.539611][229172:229177] CHIP:DMG: AttributeStatusIB = [1662655615.539623][229172:229177] CHIP:DMG: { @@ -129,75 +126,246 @@ tests: [1662655615.539904][229172:229177] CHIP:DMG: status = 0x00 (SUCCESS), [1662655615.539910][229172:229177] CHIP:DMG: }, + Before adding the Groups(0x0006 to Maxgroup) by AddGroupIfIdentifying command execute this command - Before adding the Groups (0x0006,0x0007) execute this command - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1,"fabricIndex": 1}]' 1 0 - - - Verify the "status is success" on the TH(Chip-tool) Log: - - [1663071815.843582][23720:23725] CHIP:DMG: WriteClient moving to [ResponseRe] - [1663071815.843667][23720:23725] CHIP:DMG: WriteResponseMessage = - [1663071815.843695][23720:23725] CHIP:DMG: { - [1663071815.843718][23720:23725] CHIP:DMG: AttributeStatusIBs = - [1663071815.843750][23720:23725] CHIP:DMG: [ - [1663071815.843775][23720:23725] CHIP:DMG: AttributeStatusIB = - [1663071815.843809][23720:23725] CHIP:DMG: { - [1663071815.843838][23720:23725] CHIP:DMG: AttributePathIB = - [1663071815.843874][23720:23725] CHIP:DMG: { - [1663071815.843909][23720:23725] CHIP:DMG: Endpoint = 0x0, - [1663071815.843947][23720:23725] CHIP:DMG: Cluster = 0x3f, - [1663071815.843985][23720:23725] CHIP:DMG: Attribute = 0x0000_0000, - [1663071815.844018][23720:23725] CHIP:DMG: } - [1663071815.844058][23720:23725] CHIP:DMG: - [1663071815.844089][23720:23725] CHIP:DMG: StatusIB = - [1663071815.844125][23720:23725] CHIP:DMG: { - [1663071815.844159][23720:23725] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071815.844192][23720:23725] CHIP:DMG: }, - [1663071815.844227][23720:23725] CHIP:DMG: - [1663071815.844257][23720:23725] CHIP:DMG: }, - [1663071815.844295][23720:23725] CHIP:DMG: - [1663071815.844322][23720:23725] CHIP:DMG: AttributeStatusIB = - [1663071815.844352][23720:23725] CHIP:DMG: { - [1663071815.844380][23720:23725] CHIP:DMG: AttributePathIB = - [1663071815.844412][23720:23725] CHIP:DMG: { - [1663071815.844445][23720:23725] CHIP:DMG: Endpoint = 0x0, - [1663071815.844482][23720:23725] CHIP:DMG: Cluster = 0x3f, - [1663071815.844518][23720:23725] CHIP:DMG: Attribute = 0x0000_0000, - [1663071815.844555][23720:23725] CHIP:DMG: ListIndex = Null, - [1663071815.844587][23720:23725] CHIP:DMG: } - [1663071815.844623][23720:23725] CHIP:DMG: - [1663071815.844657][23720:23725] CHIP:DMG: StatusIB = - [1663071815.844691][23720:23725] CHIP:DMG: { - [1663071815.844724][23720:23725] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071815.844760][23720:23725] CHIP:DMG: }, - [1663071815.844793][23720:23725] CHIP:DMG: - [1663071815.844824][23720:23725] CHIP:DMG: }, - [1663071815.844866][23720:23725] CHIP:DMG: - [1663071815.844893][23720:23725] CHIP:DMG: AttributeStatusIB = - [1663071815.844922][23720:23725] CHIP:DMG: { - [1663071815.844952][23720:23725] CHIP:DMG: AttributePathIB = - [1663071815.844986][23720:23725] CHIP:DMG: { - [1663071815.845021][23720:23725] CHIP:DMG: Endpoint = 0x0, - [1663071815.845058][23720:23725] CHIP:DMG: Cluster = 0x3f, - [1663071815.845097][23720:23725] CHIP:DMG: Attribute = 0x0000_0000, - [1663071815.845131][23720:23725] CHIP:DMG: ListIndex = Null, - [1663071815.845165][23720:23725] CHIP:DMG: } - [1663071815.845202][23720:23725] CHIP:DMG: - [1663071815.845236][23720:23725] CHIP:DMG: StatusIB = - [1663071815.845269][23720:23725] CHIP:DMG: { - [1663071815.845304][23720:23725] CHIP:DMG: status = 0x00 (SUCCESS), - [1663071815.845337][23720:23725] CHIP:DMG: }, - - - Before adding the Groups (0x0008,0x0009) execute this command - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 9, "groupKeySetID": 1,"fabricIndex": 1}]' 1 0 - + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 9, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":10, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 11, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":12, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":13, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 14, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":15, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 16, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":17, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + [1683882354.197161][7723:7725] CHIP:DMG: WriteResponseMessage = + [1683882354.197166][7723:7725] CHIP:DMG: { + [1683882354.197168][7723:7725] CHIP:DMG: AttributeStatusIBs = + [1683882354.197176][7723:7725] CHIP:DMG: [ + [1683882354.197180][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197188][7723:7725] CHIP:DMG: { + [1683882354.197193][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197198][7723:7725] CHIP:DMG: { + [1683882354.197203][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197208][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197213][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197217][7723:7725] CHIP:DMG: } + [1683882354.197224][7723:7725] CHIP:DMG: + [1683882354.197228][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197233][7723:7725] CHIP:DMG: { + [1683882354.197237][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197242][7723:7725] CHIP:DMG: }, + [1683882354.197247][7723:7725] CHIP:DMG: + [1683882354.197250][7723:7725] CHIP:DMG: }, + [1683882354.197259][7723:7725] CHIP:DMG: + [1683882354.197263][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197268][7723:7725] CHIP:DMG: { + [1683882354.197271][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197276][7723:7725] CHIP:DMG: { + [1683882354.197280][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197285][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197290][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197295][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197299][7723:7725] CHIP:DMG: } + [1683882354.197306][7723:7725] CHIP:DMG: + [1683882354.197310][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197315][7723:7725] CHIP:DMG: { + [1683882354.197319][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197324][7723:7725] CHIP:DMG: }, + [1683882354.197328][7723:7725] CHIP:DMG: + [1683882354.197332][7723:7725] CHIP:DMG: }, + [1683882354.197343][7723:7725] CHIP:DMG: + [1683882354.197347][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197351][7723:7725] CHIP:DMG: { + [1683882354.197353][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197356][7723:7725] CHIP:DMG: { + [1683882354.197358][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197361][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197364][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197366][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197368][7723:7725] CHIP:DMG: } + [1683882354.197372][7723:7725] CHIP:DMG: + [1683882354.197374][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197377][7723:7725] CHIP:DMG: { + [1683882354.197379][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197381][7723:7725] CHIP:DMG: }, + [1683882354.197384][7723:7725] CHIP:DMG: + [1683882354.197385][7723:7725] CHIP:DMG: }, + [1683882354.197391][7723:7725] CHIP:DMG: + [1683882354.197393][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197395][7723:7725] CHIP:DMG: { + [1683882354.197398][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197403][7723:7725] CHIP:DMG: { + [1683882354.197408][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197413][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197417][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197421][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197426][7723:7725] CHIP:DMG: } + [1683882354.197432][7723:7725] CHIP:DMG: + [1683882354.197437][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197441][7723:7725] CHIP:DMG: { + [1683882354.197445][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197450][7723:7725] CHIP:DMG: }, + [1683882354.197454][7723:7725] CHIP:DMG: + [1683882354.197458][7723:7725] CHIP:DMG: }, + [1683882354.197467][7723:7725] CHIP:DMG: + [1683882354.197471][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197475][7723:7725] CHIP:DMG: { + [1683882354.197479][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197483][7723:7725] CHIP:DMG: { + [1683882354.197488][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197493][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197497][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197502][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197506][7723:7725] CHIP:DMG: } + [1683882354.197512][7723:7725] CHIP:DMG: + [1683882354.197516][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197521][7723:7725] CHIP:DMG: { + [1683882354.197525][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197529][7723:7725] CHIP:DMG: }, + [1683882354.197534][7723:7725] CHIP:DMG: + [1683882354.197538][7723:7725] CHIP:DMG: }, + [1683882354.197547][7723:7725] CHIP:DMG: + [1683882354.197551][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197555][7723:7725] CHIP:DMG: { + [1683882354.197559][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197563][7723:7725] CHIP:DMG: { + [1683882354.197568][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197573][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197578][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197582][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197586][7723:7725] CHIP:DMG: } + [1683882354.197593][7723:7725] CHIP:DMG: + [1683882354.197597][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197602][7723:7725] CHIP:DMG: { + [1683882354.197606][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197610][7723:7725] CHIP:DMG: }, + [1683882354.197615][7723:7725] CHIP:DMG: + [1683882354.197618][7723:7725] CHIP:DMG: }, + [1683882354.197627][7723:7725] CHIP:DMG: + [1683882354.197631][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197635][7723:7725] CHIP:DMG: { + [1683882354.197640][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197644][7723:7725] CHIP:DMG: { + [1683882354.197649][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197653][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197658][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197663][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197667][7723:7725] CHIP:DMG: } + [1683882354.197673][7723:7725] CHIP:DMG: + [1683882354.197677][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197682][7723:7725] CHIP:DMG: { + [1683882354.197687][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197690][7723:7725] CHIP:DMG: }, + [1683882354.197695][7723:7725] CHIP:DMG: + [1683882354.197699][7723:7725] CHIP:DMG: }, + [1683882354.197708][7723:7725] CHIP:DMG: + [1683882354.197712][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197716][7723:7725] CHIP:DMG: { + [1683882354.197720][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197724][7723:7725] CHIP:DMG: { + [1683882354.197729][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197733][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197738][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197743][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197747][7723:7725] CHIP:DMG: } + [1683882354.197753][7723:7725] CHIP:DMG: + [1683882354.197757][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197762][7723:7725] CHIP:DMG: { + [1683882354.197767][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197771][7723:7725] CHIP:DMG: }, + [1683882354.197776][7723:7725] CHIP:DMG: + [1683882354.197779][7723:7725] CHIP:DMG: }, + [1683882354.197789][7723:7725] CHIP:DMG: + [1683882354.197792][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197797][7723:7725] CHIP:DMG: { + [1683882354.197800][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197805][7723:7725] CHIP:DMG: { + [1683882354.197809][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197814][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197819][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197824][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197828][7723:7725] CHIP:DMG: } + [1683882354.197835][7723:7725] CHIP:DMG: + [1683882354.197839][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197843][7723:7725] CHIP:DMG: { + [1683882354.197848][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197852][7723:7725] CHIP:DMG: }, + [1683882354.197857][7723:7725] CHIP:DMG: + [1683882354.197861][7723:7725] CHIP:DMG: }, + [1683882354.197870][7723:7725] CHIP:DMG: + [1683882354.197874][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197878][7723:7725] CHIP:DMG: { + [1683882354.197882][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197886][7723:7725] CHIP:DMG: { + [1683882354.197891][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197896][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197900][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197905][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197909][7723:7725] CHIP:DMG: } + [1683882354.197917][7723:7725] CHIP:DMG: + [1683882354.197921][7723:7725] CHIP:DMG: StatusIB = + [1683882354.197925][7723:7725] CHIP:DMG: { + [1683882354.197930][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.197934][7723:7725] CHIP:DMG: }, + [1683882354.197939][7723:7725] CHIP:DMG: + [1683882354.197943][7723:7725] CHIP:DMG: }, + [1683882354.197952][7723:7725] CHIP:DMG: + [1683882354.197956][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.197960][7723:7725] CHIP:DMG: { + [1683882354.197963][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.197968][7723:7725] CHIP:DMG: { + [1683882354.197972][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.197976][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.197981][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.197984][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.197989][7723:7725] CHIP:DMG: } + [1683882354.197995][7723:7725] CHIP:DMG: + [1683882354.197998][7723:7725] CHIP:DMG: StatusIB = + [1683882354.198002][7723:7725] CHIP:DMG: { + [1683882354.198007][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.198011][7723:7725] CHIP:DMG: }, + [1683882354.198015][7723:7725] CHIP:DMG: + [1683882354.198019][7723:7725] CHIP:DMG: }, + [1683882354.198028][7723:7725] CHIP:DMG: + [1683882354.198032][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.198036][7723:7725] CHIP:DMG: { + [1683882354.198040][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.198044][7723:7725] CHIP:DMG: { + [1683882354.198049][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.198053][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.198058][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.198063][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.198067][7723:7725] CHIP:DMG: } + [1683882354.198073][7723:7725] CHIP:DMG: + [1683882354.198077][7723:7725] CHIP:DMG: StatusIB = + [1683882354.198081][7723:7725] CHIP:DMG: { + [1683882354.198086][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.198090][7723:7725] CHIP:DMG: }, + [1683882354.198094][7723:7725] CHIP:DMG: + [1683882354.198098][7723:7725] CHIP:DMG: }, + [1683882354.198107][7723:7725] CHIP:DMG: + [1683882354.198111][7723:7725] CHIP:DMG: AttributeStatusIB = + [1683882354.198115][7723:7725] CHIP:DMG: { + [1683882354.198119][7723:7725] CHIP:DMG: AttributePathIB = + [1683882354.198123][7723:7725] CHIP:DMG: { + [1683882354.198128][7723:7725] CHIP:DMG: Endpoint = 0x0, + [1683882354.198132][7723:7725] CHIP:DMG: Cluster = 0x3f, + [1683882354.198137][7723:7725] CHIP:DMG: Attribute = 0x0000_0000, + [1683882354.198142][7723:7725] CHIP:DMG: ListIndex = Null, + [1683882354.198146][7723:7725] CHIP:DMG: } + [1683882354.198152][7723:7725] CHIP:DMG: + [1683882354.198156][7723:7725] CHIP:DMG: StatusIB = + [1683882354.198160][7723:7725] CHIP:DMG: { + [1683882354.198165][7723:7725] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882354.198169][7723:7725] CHIP:DMG: }, + [1683882354.198174][7723:7725] CHIP:DMG: + [1683882354.198178][7723:7725] CHIP:DMG: }, + [1683882354.198184][7723:7725] CHIP:DMG: + [1683882354.198187][7723:7725] CHIP:DMG: ], + [1683882354.198223][7723:7725] CHIP:DMG: + [1683882354.198227][7723:7725] CHIP:DMG: InteractionModelRevision = 1 + [1683882354.198230][7723:7725] CHIP:DMG: } + + Before adding the Groups (Maxgroup+1) by AddGroupIfIdentifying execute below command which is used to check the Resource_Exhausted Condition + + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":18, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":19, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1674551849.075921][20994:20996] CHIP:DMG: WriteResponseMessage = [1674551849.075924][20994:20996] CHIP:DMG: { @@ -257,25 +425,6 @@ tests: [1674551849.076102][20994:20996] CHIP:DMG: [1674551849.076105][20994:20996] CHIP:DMG: InteractionModelRevision = 1 [1674551849.076108][20994:20996] CHIP:DMG: } - - - - Before adding the Group0x0005 execute this command which is used to check the Resource_Exhausted Condition - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 5, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 - - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - - [1658319969.849079][4777:4782] CHIP:DMG: StatusIB = - [1658319969.849119][4777:4782] CHIP:DMG: { - [1658319969.849158][4777:4782] CHIP:DMG: status = 0x00 (SUCCESS), - [1658319969.849194][4777:4782] CHIP:DMG: }, - [1658319969.849704][4777:4782] CHIP:DMG: StatusIB = - [1658319969.849739][4777:4782] CHIP:DMG: { - [1658319969.849774][4777:4782] CHIP:DMG: status = 0x00 (SUCCESS), - [1658319969.849814][4777:4782] CHIP:DMG: }, disabled: true - label: "DUT supports Identify cluster" @@ -390,7 +539,6 @@ tests: verification: | ./chip-tool groups get-group-membership [0002] 1 0 - Verify the "grouplist" entry has one item 0x0002 and Capacity is in the inclusive range of 0 to 254 or null on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: @@ -555,7 +703,6 @@ tests: [1653552667.307881][2571:2576] CHIP:DMG: status = 0x00 (SUCCESS), [1653552667.307922][2571:2576] CHIP:DMG: }, - ./chip-tool groups add-group-if-identifying 0x0009 gp9 1 0 Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: @@ -564,6 +711,92 @@ tests: [1674551849.597995][21000:21002] CHIP:DMG: { [1674551849.597998][21000:21002] CHIP:DMG: status = 0x00 (SUCCESS), [1674551849.598001][21000:21002] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000a gp10 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882426.604685][7756:7758] CHIP:DMG: StatusIB = + [1683882426.604688][7756:7758] CHIP:DMG: { + [1683882426.604691][7756:7758] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882426.604701][7756:7758] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000b gp11 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882432.529527][7760:7762] CHIP:DMG: StatusIB = + [1683882432.529532][7760:7762] CHIP:DMG: { + [1683882432.529535][7760:7762] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882432.529538][7760:7762] CHIP:DMG: }, + [1683882432.529543][7760:7762] CHIP:DMG: + + ./chip-tool groups add-group-if-identifying 0x000c gp12 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882437.464914][7763:7765] CHIP:DMG: StatusIB = + [1683882437.464927][7763:7765] CHIP:DMG: { + [1683882437.464940][7763:7765] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882437.464951][7763:7765] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000d gp13 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882442.334908][7766:7768] CHIP:DMG: StatusIB = + [1683882442.334911][7766:7768] CHIP:DMG: { + [1683882442.334915][7766:7768] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882442.334918][7766:7768] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000e gp14 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + 1683882448.814358][7769:7771] CHIP:DMG: + [1683882448.814361][7769:7771] CHIP:DMG: StatusIB = + [1683882448.814367][7769:7771] CHIP:DMG: { + [1683882448.814371][7769:7771] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882448.814374][7769:7771] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000e gp15 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882454.216005][7772:7774] CHIP:DMG: + [1683882454.216016][7772:7774] CHIP:DMG: StatusIB = + [1683882454.216029][7772:7774] CHIP:DMG: { + [1683882454.216045][7772:7774] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882454.216057][7772:7774] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x000f gp15 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882460.656727][7775:7777] CHIP:DMG: StatusIB = + [1683882460.656730][7775:7777] CHIP:DMG: { + [1683882460.656733][7775:7777] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882460.656737][7775:7777] CHIP:DMG: }, + [1683882460.656740][7775:7777] CHIP:DMG: + + ./chip-tool groups add-group-if-identifying 0x0010 gp16 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882470.921771][7779:7781] CHIP:DMG: StatusIB = + [1683882470.921775][7779:7781] CHIP:DMG: { + [1683882470.921779][7779:7781] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882470.921783][7779:7781] CHIP:DMG: }, + [1683882470.921787][7779:7781] CHIP:DMG: + + ./chip-tool groups add-group-if-identifying 0x0011 gp17 1 0 + + Verify the "status is SUCCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882478.955105][7783:7785] CHIP:DMG: StatusIB = + [1683882478.955124][7783:7785] CHIP:DMG: { + [1683882478.955143][7783:7785] CHIP:DMG: status = 0x00 (SUCCESS), + [1683882478.955160][7783:7785] CHIP:DMG: }, disabled: true - label: @@ -571,8 +804,7 @@ tests: (maxgroups+2) times as unicast method with different GroupID" PICS: G.S.C05.Rsp verification: | - ./chip-tool groups add-group-if-identifying 0x0005 gp5 1 0 - + ./chip-tool groups add-group-if-identifying 0x0012 gp18 1 0 Verify the "status is RESOURCE_EXHAUSTED" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: @@ -580,6 +812,16 @@ tests: [1658317372.589363][4296:4301] CHIP:DMG: { [1658317372.589399][4296:4301] CHIP:DMG: status = 0x89 (RESOURCE_EXHAUSTED), [1658317372.589432][4296:4301] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x0013 gp19 1 0 + + Verify the "status is RESOURCE_EXHAUSTED" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683882594.518675][7824:7826] CHIP:DMG: StatusIB = + [1683882594.518680][7824:7826] CHIP:DMG: { + [1683882594.518685][7824:7826] CHIP:DMG: status = 0x89 (RESOURCE_EXHAUSTED), + [1683882594.518690][7824:7826] CHIP:DMG: }, + [1683882594.518695][7824:7826] CHIP:DMG: disabled: true - label: @@ -589,39 +831,95 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable" does not have GroupName gp5 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1674552384.204664][21058:21060] CHIP:DMG: } - [1674552384.204841][21058:21060] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1314349292 - [1674552384.204867][21058:21060] CHIP:TOO: GroupTable: 4 entries - [1674552384.204879][21058:21060] CHIP:TOO: [1]: { - [1674552384.204886][21058:21060] CHIP:TOO: GroupId: 6 - [1674552384.204890][21058:21060] CHIP:TOO: Endpoints: 1 entries - [1674552384.204894][21058:21060] CHIP:TOO: [1]: 0 - [1674552384.204898][21058:21060] CHIP:TOO: GroupName: gp6 - [1674552384.204901][21058:21060] CHIP:TOO: FabricIndex: 1 - [1674552384.204904][21058:21060] CHIP:TOO: } - [1674552384.204910][21058:21060] CHIP:TOO: [2]: { - [1674552384.204912][21058:21060] CHIP:TOO: GroupId: 7 - [1674552384.204915][21058:21060] CHIP:TOO: Endpoints: 1 entries - [1674552384.204918][21058:21060] CHIP:TOO: [1]: 0 - [1674552384.204921][21058:21060] CHIP:TOO: GroupName: gp7 - [1674552384.204923][21058:21060] CHIP:TOO: FabricIndex: 1 - [1674552384.204926][21058:21060] CHIP:TOO: } - [1674552384.204931][21058:21060] CHIP:TOO: [3]: { - [1674552384.204933][21058:21060] CHIP:TOO: GroupId: 8 - [1674552384.204936][21058:21060] CHIP:TOO: Endpoints: 1 entries - [1674552384.204939][21058:21060] CHIP:TOO: [1]: 0 - [1674552384.204941][21058:21060] CHIP:TOO: GroupName: gp8 - [1674552384.204944][21058:21060] CHIP:TOO: FabricIndex: 1 - [1674552384.204946][21058:21060] CHIP:TOO: } - [1674552384.204951][21058:21060] CHIP:TOO: [4]: { - [1674552384.204953][21058:21060] CHIP:TOO: GroupId: 9 - [1674552384.204956][21058:21060] CHIP:TOO: Endpoints: 1 entries - [1674552384.204959][21058:21060] CHIP:TOO: [1]: 0 - [1674552384.204962][21058:21060] CHIP:TOO: GroupName: gp9 - [1674552384.204964][21058:21060] CHIP:TOO: FabricIndex: 1 - [1674552384.204967][21058:21060] CHIP:TOO: } + Verify the "grouptable" does not have GroupName gp5 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + 1683882614.150283][7830:7832] CHIP:DMG: } + [1683882614.150492][7830:7832] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 223017989 + [1683882614.150539][7830:7832] CHIP:TOO: GroupTable: 12 entries + [1683882614.150552][7830:7832] CHIP:TOO: [1]: { + [1683882614.150555][7830:7832] CHIP:TOO: GroupId: 6 + [1683882614.150559][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150565][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150571][7830:7832] CHIP:TOO: GroupName: gp6 + [1683882614.150575][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150579][7830:7832] CHIP:TOO: } + [1683882614.150587][7830:7832] CHIP:TOO: [2]: { + [1683882614.150590][7830:7832] CHIP:TOO: GroupId: 7 + [1683882614.150595][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150600][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150604][7830:7832] CHIP:TOO: GroupName: gp7 + [1683882614.150607][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150610][7830:7832] CHIP:TOO: } + [1683882614.150618][7830:7832] CHIP:TOO: [3]: { + [1683882614.150621][7830:7832] CHIP:TOO: GroupId: 8 + [1683882614.150626][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150630][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150634][7830:7832] CHIP:TOO: GroupName: gp8 + [1683882614.150638][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150641][7830:7832] CHIP:TOO: } + [1683882614.150647][7830:7832] CHIP:TOO: [4]: { + [1683882614.150651][7830:7832] CHIP:TOO: GroupId: 9 + [1683882614.150654][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150658][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150662][7830:7832] CHIP:TOO: GroupName: gp9 + [1683882614.150665][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150668][7830:7832] CHIP:TOO: } + [1683882614.150675][7830:7832] CHIP:TOO: [5]: { + [1683882614.150678][7830:7832] CHIP:TOO: GroupId: 10 + [1683882614.150681][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150684][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150687][7830:7832] CHIP:TOO: GroupName: gp10 + [1683882614.150691][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150694][7830:7832] CHIP:TOO: } + [1683882614.150701][7830:7832] CHIP:TOO: [6]: { + [1683882614.150703][7830:7832] CHIP:TOO: GroupId: 11 + [1683882614.150706][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150710][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150712][7830:7832] CHIP:TOO: GroupName: gp11 + [1683882614.150715][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150717][7830:7832] CHIP:TOO: } + [1683882614.150722][7830:7832] CHIP:TOO: [7]: { + [1683882614.150725][7830:7832] CHIP:TOO: GroupId: 12 + [1683882614.150728][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150731][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150734][7830:7832] CHIP:TOO: GroupName: gp12 + [1683882614.150736][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150739][7830:7832] CHIP:TOO: } + [1683882614.150744][7830:7832] CHIP:TOO: [8]: { + [1683882614.150746][7830:7832] CHIP:TOO: GroupId: 13 + [1683882614.150749][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150752][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150755][7830:7832] CHIP:TOO: GroupName: gp13 + [1683882614.150759][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150762][7830:7832] CHIP:TOO: } + [1683882614.150767][7830:7832] CHIP:TOO: [9]: { + [1683882614.150770][7830:7832] CHIP:TOO: GroupId: 14 + [1683882614.150773][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150776][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150779][7830:7832] CHIP:TOO: GroupName: gp15 + [1683882614.150781][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150784][7830:7832] CHIP:TOO: } + [1683882614.150789][7830:7832] CHIP:TOO: [10]: { + [1683882614.150791][7830:7832] CHIP:TOO: GroupId: 15 + [1683882614.150795][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150798][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150801][7830:7832] CHIP:TOO: GroupName: gp15 + [1683882614.150803][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150806][7830:7832] CHIP:TOO: } + [1683882614.150811][7830:7832] CHIP:TOO: [11]: { + [1683882614.150813][7830:7832] CHIP:TOO: GroupId: 16 + [1683882614.150816][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150820][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150822][7830:7832] CHIP:TOO: GroupName: gp16 + [1683882614.150825][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150827][7830:7832] CHIP:TOO: } + [1683882614.150832][7830:7832] CHIP:TOO: [12]: { + [1683882614.150835][7830:7832] CHIP:TOO: GroupId: 17 + [1683882614.150838][7830:7832] CHIP:TOO: Endpoints: 1 entries + [1683882614.150841][7830:7832] CHIP:TOO: [1]: 0 + [1683882614.150844][7830:7832] CHIP:TOO: GroupName: gp17 + [1683882614.150847][7830:7832] CHIP:TOO: FabricIndex: 1 + [1683882614.150850][7830:7832] CHIP:TOO: } disabled: true - label: "TH sends RemoveAllGroups command to DUT as unicast method" @@ -645,7 +943,6 @@ tests: verification: | ./chip-tool groups add-group-if-identifying 0x0000 gp45 1 0 - Verify the "status is CONSTRAINT_ERROR" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1658307266.719438][3251:3256] CHIP:DMG: StatusIB = @@ -659,7 +956,7 @@ tests: the following fields: GroupId as 0x0046 GroupName as Gp46" PICS: G.S.C05.Rsp verification: | - ./chip-tool groups add-group-if-identifying 0x0045 gp46 1 0 + ./chip-tool groups add-group-if-identifying 0x0046 gp46 1 0 Verify the "status is UNSUPPORTED_ACCESS" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: @@ -691,7 +988,6 @@ tests: Verify the "identify time" attribute value is 0x0000 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1658307393.820520][3274:3279] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3871913767 [1658307393.820575][3274:3279] CHIP:TOO: identify time: 0 disabled: true @@ -705,7 +1001,6 @@ tests: Verify the "status is SUCCESS" , GroupId is 0x0004 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1651224746.146005][3038:3043] CHIP:DMG: StatusIB = [1651224746.146038][3038:3043] CHIP:DMG: { [1651224746.146073][3038:3043] CHIP:DMG: status = 0x00 (SUCCESS), @@ -719,7 +1014,6 @@ tests: Verify the "grouptable entries is 0" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1658317914.656772][4650:4655] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3844079664 [1658317914.656843][4650:4655] CHIP:TOO: GroupTable: 0 entries disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_G_3_2.yaml b/src/app/tests/suites/certification/Test_TC_G_3_2.yaml index 6279015e7118ee..51c53ad057bf3d 100644 --- a/src/app/tests/suites/certification/Test_TC_G_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_3_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 125.3.2. [TC-G-3.2] Commands [DUT-Client] +name: 125.3.2. [TC-G-3.2] Groups Cluster Commands [DUT-Client] PICS: - G.C @@ -48,7 +48,7 @@ tests: Execute the following command in TH to generate the pre-condition step : ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, - "groupKeySecurityPolicy": 0, "epochKey0": + "groupKeySecurityPolicy": 1, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 @@ -86,9 +86,9 @@ tests: [1666939337.681047][8101:8101] CHIP:DMG: }, - Before adding the Group 0x0002,0x0003 execute this command in DUT + Before adding the Group 0x0002,0x0003, 0x0004 execute this command in DUT - ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1},{"groupId": 4, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 Verify the command response in TH (all-Clusters-app) log @@ -186,8 +186,6 @@ tests: [1666939418.383416][8101:8101] CHIP:DMG: [1666939418.383418][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - - ./chip-tool groups add-group 0x0003 gp3 1 1 Verify the command response in TH (all-Clusters-app) log @@ -221,56 +219,6 @@ tests: [1666939441.007825][8101:8101] CHIP:DMG: [1666939441.007827][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - - - Execute the below command before adding the Group0x0004 execute this command in step-4. - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 4, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 - - Verify the command response in TH (all-Clusters-app) log - - [1666939476.749560][8101:8101] CHIP:DMG: - [1666939476.749567][8101:8101] CHIP:DMG: WriteResponseMessage = - [1666939476.749569][8101:8101] CHIP:DMG: { - [1666939476.749572][8101:8101] CHIP:DMG: AttributeStatusIBs = - [1666939476.749575][8101:8101] CHIP:DMG: [ - [1666939476.749577][8101:8101] CHIP:DMG: AttributeStatusIB = - [1666939476.749579][8101:8101] CHIP:DMG: { - [1666939476.749581][8101:8101] CHIP:DMG: AttributePathIB = - [1666939476.749583][8101:8101] CHIP:DMG: { - [1666939476.749585][8101:8101] CHIP:DMG: Endpoint = 0x0, - [1666939476.749587][8101:8101] CHIP:DMG: Cluster = 0x3f, - [1666939476.749589][8101:8101] CHIP:DMG: Attribute = 0x0000_0000, - [1666939476.749591][8101:8101] CHIP:DMG: } - [1666939476.749594][8101:8101] CHIP:DMG: - [1666939476.749596][8101:8101] CHIP:DMG: StatusIB = - [1666939476.749599][8101:8101] CHIP:DMG: { - [1666939476.749601][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666939476.749603][8101:8101] CHIP:DMG: }, - [1666939476.749605][8101:8101] CHIP:DMG: - [1666939476.749607][8101:8101] CHIP:DMG: }, - [1666939476.749610][8101:8101] CHIP:DMG: - [1666939476.749612][8101:8101] CHIP:DMG: AttributeStatusIB = - [1666939476.749614][8101:8101] CHIP:DMG: { - [1666939476.749616][8101:8101] CHIP:DMG: AttributePathIB = - [1666939476.749618][8101:8101] CHIP:DMG: { - [1666939476.749620][8101:8101] CHIP:DMG: Endpoint = 0x0, - [1666939476.749622][8101:8101] CHIP:DMG: Cluster = 0x3f, - [1666939476.749624][8101:8101] CHIP:DMG: Attribute = 0x0000_0000, - [1666939476.749626][8101:8101] CHIP:DMG: ListIndex = Null, - [1666939476.749628][8101:8101] CHIP:DMG: } - [1666939476.749631][8101:8101] CHIP:DMG: - [1666939476.749633][8101:8101] CHIP:DMG: StatusIB = - [1666939476.749635][8101:8101] CHIP:DMG: { - [1666939476.749637][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666939476.749639][8101:8101] CHIP:DMG: }, - [1666939476.749641][8101:8101] CHIP:DMG: - [1666939476.749643][8101:8101] CHIP:DMG: }, - [1666939476.749645][8101:8101] CHIP:DMG: - [1666939476.749647][8101:8101] CHIP:DMG: ], - [1666939476.749651][8101:8101] CHIP:DMG: - [1666939476.749653][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - ./chip-tool groups add-group 0x0004 gp4 1 1 Verify the command response in TH (all-Clusters-app) log @@ -358,6 +306,7 @@ tests: ./chip-tool groups remove-group 0x0002 1 1 Verify the "RemoveGroup command response" on the TH(Allcluster-app) Log: + 1666940385.829986][8101:8101] CHIP:DMG: InvokeResponseMessage = [1666940385.829988][8101:8101] CHIP:DMG: { [1666940385.829990][8101:8101] CHIP:DMG: suppressResponse = false, @@ -394,6 +343,7 @@ tests: ./chip-tool groups remove-all-groups 1 1 Verify the "RemoveAllGroups command response" on the TH(Allcluster-app) Log: + [1666940426.392765][8101:8101] CHIP:DMG: InvokeResponseMessage = [1666940426.392768][8101:8101] CHIP:DMG: { [1666940426.392770][8101:8101] CHIP:DMG: suppressResponse = false, diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml index ee617bce301186..a4b845438d9dd1 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml @@ -160,22 +160,20 @@ tests: verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - [1655721447.462511][10909:10909] CHIP:EM: Handling via exchange: 28866r, Delegate: 0xaaaac37ce418 - [1655721447.462589][10909:10909] CHIP:IM: Received Read request - [1655721447.462717][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655721447.462770][10909:10909] CHIP:DMG: { - [1655721447.462817][10909:10909] CHIP:DMG: AttributePathIBs = - [1655721447.462908][10909:10909] CHIP:DMG: [ - [1655721447.462961][10909:10909] CHIP:DMG: AttributePathIB = - [1655721447.463014][10909:10909] CHIP:DMG: { - [1655721447.463066][10909:10909] CHIP:DMG: } - [1655721447.463121][10909:10909] CHIP:DMG: - [1655721447.463173][10909:10909] CHIP:DMG: ], - [1655721447.463228][10909:10909] CHIP:DMG: - [1655721447.463282][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655721447.463334][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655721447.463382][10909:10909] CHIP:DMG: }, - [1655721447.463503][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] + [1684327544.654910][138835:138837] CHIP:DMG: ReportDataMessage = + [1684327544.654915][138835:138837] CHIP:DMG: { + [1684327544.654920][138835:138837] CHIP:DMG: AttributeReportIBs = + [1684327544.654926][138835:138837] CHIP:DMG: [ + [1684327544.654929][138835:138837] CHIP:DMG: AttributeReportIB = + [1684327544.654940][138835:138837] CHIP:DMG: { + [1684327544.654949][138835:138837] CHIP:DMG: AttributeDataIB = + [1684327544.654956][138835:138837] CHIP:DMG: { + [1684327544.654964][138835:138837] CHIP:DMG: DataVersion = 0x91861588, + [1684327544.654970][138835:138837] CHIP:DMG: AttributePathIB = + [1684327544.654978][138835:138837] CHIP:DMG: { + [1684327544.654995][138835:138837] CHIP:DMG: Attribute = 0x0000_FFFD, + [1684327544.655002][138835:138837] CHIP:DMG: } + If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml index 5a94e9cdba86e5..6bbe2d79f40fe7 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml @@ -38,27 +38,27 @@ tests: execute the below mentioned command to put DUT into a commissionable state, Pls use equivalent command on the respective DUT ./chip-all-clusters-app - Once DUT reach the commissionable state pls send below mentioned command on RD"s respectively. Pls use equivalent command on the respective DUT + Once DUT reach the commissionable state pls send below mentioned command on RD's respectively. Pls use equivalent command on the respective DUT *Provision the device using chip tool on first controller(RD1) - ./chip-tool pairing onnetwork 1 20202021 + ./chip-tool pairing onnetwork 1 20202021 ./chip-tool pairing open-commissioning-window 1 1 400 2000 3840 *Provision the device using chip tool on 2nd controller(RD2) - ./chip-tool pairing code 2 36453420312(mannualcode) --commissioner-name beta + ./chip-tool pairing code 2 36453420312(mannualcode) --commissioner-name beta ./chip-tool pairing open-commissioning-window 2 1 400 2000 3840 --commissioner-name beta *Provision the device using chip tool on 3rd controller(RD3) - ./chip-tool pairing code 3 35603352859(mannualcode) --commissioner-name 4 - ./chip-tool pairing open-commissioning-window 3 1 400 2000 3840 --commissioner-name 4 + ./chip-tool pairing code 3 35603352859(mannualcode) --commissioner-name gamma + ./chip-tool pairing open-commissioning-window 3 1 400 2000 3840 --commissioner-name gamma *Provision the device using chip tool on 4th controller(RD4) - ./chip-tool pairing code 4 36375333175(mannualcode) --commissioner-name 5 - ./chip-tool pairing open-commissioning-window 4 1 400 2000 3840 --commissioner-name 5 + ./chip-tool pairing code 4 36375333175(mannualcode) --commissioner-name 4 + ./chip-tool pairing open-commissioning-window 4 1 400 2000 3840 --commissioner-name 4 *Provision the device using chip tool on 5th controller(RD5) - ./chip-tool pairing code 5 35358158796(mannualcode) --commissioner-name 6 + ./chip-tool pairing code 5 35358158796(mannualcode) --commissioner-name 5 disabled: true - label: @@ -69,1034 +69,434 @@ tests: the attributes that have been subscribed or trigger an action on the DUT to generate an event." verification: | - Please run this test in chip tool interactive mode ./chip-tool interactive start - - Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) - - Send 3 Subscriptionrequest messages from each Reference Device(Eg. RD1...) to DUT and verify all the subscription requests are success and change the value of - all the attributes by sending a write command, after sending a write command verify on each of these Reference Devices that the appropriate attribute - value has been received. - - - - on the first reference device send 3 Subscribe Request Messages to DUT - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 - [1660652952.537644][58131:58136] CHIP:EM: Removed CHIP MessageCounter:11153878 from RetransTable on exchange 57366i - [1660652952.537721][58131:58136] CHIP:DMG: ReportDataMessage = - [1660652952.537759][58131:58136] CHIP:DMG: { - [1660652952.537794][58131:58136] CHIP:DMG: SubscriptionId = 0x50d4243c, - [1660652952.537829][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660652952.537873][58131:58136] CHIP:DMG: [ - [1660652952.537907][58131:58136] CHIP:DMG: AttributeReportIB = - [1660652952.537964][58131:58136] CHIP:DMG: { - [1660652952.538008][58131:58136] CHIP:DMG: AttributeDataIB = - [1660652952.538055][58131:58136] CHIP:DMG: { - [1660652952.538106][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660652952.538152][58131:58136] CHIP:DMG: AttributePathIB = - [1660652952.538205][58131:58136] CHIP:DMG: { - [1660652952.538254][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660652952.538308][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660652952.538358][58131:58136] CHIP:DMG: Attribute = 0x0000_0005, - [1660652952.538409][58131:58136] CHIP:DMG: } - [1660652952.538465][58131:58136] CHIP:DMG: - [1660652952.538517][58131:58136] CHIP:DMG: Data = "" (0 chars), - [1660652952.538562][58131:58136] CHIP:DMG: }, - [1660652952.538615][58131:58136] CHIP:DMG: - [1660652952.538654][58131:58136] CHIP:DMG: }, - [1660652952.538700][58131:58136] CHIP:DMG: - [1660652952.538734][58131:58136] CHIP:DMG: ], - [1660652952.538777][58131:58136] CHIP:DMG: - [1660652952.538811][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660652952.538844][58131:58136] CHIP:DMG: } - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 1 0 --keepSubscriptions 1 - [1660653005.341371][58131:58136] CHIP:DMG: ReportDataMessage = - [1660653005.341441][58131:58136] CHIP:DMG: { - [1660653005.341503][58131:58136] CHIP:DMG: SubscriptionId = 0xea4facb0, - [1660653005.341568][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653005.341648][58131:58136] CHIP:DMG: [ - [1660653005.341711][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653005.341808][58131:58136] CHIP:DMG: { - [1660653005.341881][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653005.341972][58131:58136] CHIP:DMG: { - [1660653005.342065][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653005.342148][58131:58136] CHIP:DMG: AttributePathIB = - [1660653005.342244][58131:58136] CHIP:DMG: { - [1660653005.342340][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653005.342436][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653005.342528][58131:58136] CHIP:DMG: Attribute = 0x0000_0006, - [1660653005.342616][58131:58136] CHIP:DMG: } - [1660653005.342708][58131:58136] CHIP:DMG: - [1660653005.342801][58131:58136] CHIP:DMG: Data = "XX" (2 chars), - [1660653005.342883][58131:58136] CHIP:DMG: }, - [1660653005.342972][58131:58136] CHIP:DMG: - [1660653005.343045][58131:58136] CHIP:DMG: }, - [1660653005.343129][58131:58136] CHIP:DMG: - [1660653005.343191][58131:58136] CHIP:DMG: ], - [1660653005.343270][58131:58136] CHIP:DMG: - [1660653005.343331][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653005.343392][58131:58136] CHIP:DMG: } - [1660653005.343616][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653005.343884][58131:58136] CHIP:TOO: Location: XX - [1660653005.343983][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa00129b0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 1 0 --keepSubscriptions 1 - [1660653043.575397][58131:58136] CHIP:DMG: ReportDataMessage = - [1660653043.575423][58131:58136] CHIP:DMG: { - [1660653043.575445][58131:58136] CHIP:DMG: SubscriptionId = 0x1ff9dbc5, - [1660653043.575467][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653043.575504][58131:58136] CHIP:DMG: [ - [1660653043.575526][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653043.575556][58131:58136] CHIP:DMG: { - [1660653043.575579][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653043.575605][58131:58136] CHIP:DMG: { - [1660653043.575633][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653043.575658][58131:58136] CHIP:DMG: AttributePathIB = - [1660653043.575686][58131:58136] CHIP:DMG: { - [1660653043.575713][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653043.575743][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653043.575806][58131:58136] CHIP:DMG: Attribute = 0x0000_0010, - [1660653043.575833][58131:58136] CHIP:DMG: } - [1660653043.575863][58131:58136] CHIP:DMG: - [1660653043.575892][58131:58136] CHIP:DMG: Data = false, - [1660653043.575917][58131:58136] CHIP:DMG: }, - [1660653043.575944][58131:58136] CHIP:DMG: - [1660653043.575966][58131:58136] CHIP:DMG: }, - [1660653043.575993][58131:58136] CHIP:DMG: - [1660653043.576013][58131:58136] CHIP:DMG: ], - [1660653043.576041][58131:58136] CHIP:DMG: - [1660653043.576063][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653043.576084][58131:58136] CHIP:DMG: } - [1660653043.576169][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653043.576207][58131:58136] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653043.576240][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0012b40]: Moving to [AwaitingSu] - - - - on the 2nd reference device send 3 Subscribe Request Messages to DUT - - basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653125.592310][58143:58148] CHIP:DMG: { - [1660653125.592348][58143:58148] CHIP:DMG: SubscriptionId = 0xc15110c4, - [1660653125.592387][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653125.592435][58143:58148] CHIP:DMG: [ - [1660653125.592472][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653125.592527][58143:58148] CHIP:DMG: { - [1660653125.592568][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653125.592618][58143:58148] CHIP:DMG: { - [1660653125.592675][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653125.592726][58143:58148] CHIP:DMG: AttributePathIB = - [1660653125.592785][58143:58148] CHIP:DMG: { - [1660653125.592839][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653125.592896][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653125.592946][58143:58148] CHIP:DMG: Attribute = 0x0000_0005, - [1660653125.592997][58143:58148] CHIP:DMG: } - [1660653125.593051][58143:58148] CHIP:DMG: - [1660653125.593109][58143:58148] CHIP:DMG: Data = "" (0 chars), - [1660653125.593158][58143:58148] CHIP:DMG: }, - [1660653125.593212][58143:58148] CHIP:DMG: - [1660653125.593255][58143:58148] CHIP:DMG: }, - [1660653125.593305][58143:58148] CHIP:DMG: - [1660653125.593342][58143:58148] CHIP:DMG: ], - [1660653125.593390][58143:58148] CHIP:DMG: - [1660653125.593428][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653125.593464][58143:58148] CHIP:DMG: } - [1660653125.593640][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653125.593706][58143:58148] CHIP:TOO: NodeLabel: - [1660653125.593776][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff6800df30]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653198.460359][58143:58148] CHIP:DMG: { - [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, - [1660653198.460487][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653198.460567][58143:58148] CHIP:DMG: [ - [1660653198.460630][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653198.460718][58143:58148] CHIP:DMG: { - [1660653198.460786][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653198.460871][58143:58148] CHIP:DMG: { - [1660653198.460966][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653198.461058][58143:58148] CHIP:DMG: AttributePathIB = - [1660653198.461147][58143:58148] CHIP:DMG: { - [1660653198.461244][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653198.461335][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653198.461427][58143:58148] CHIP:DMG: Attribute = 0x0000_0006, - [1660653198.461513][58143:58148] CHIP:DMG: } - [1660653198.461604][58143:58148] CHIP:DMG: - [1660653198.461699][58143:58148] CHIP:DMG: Data = "XX" (2 chars), - [1660653198.461782][58143:58148] CHIP:DMG: }, - [1660653198.461880][58143:58148] CHIP:DMG: - [1660653198.461952][58143:58148] CHIP:DMG: }, - [1660653198.462037][58143:58148] CHIP:DMG: - [1660653198.462099][58143:58148] CHIP:DMG: ], - [1660653198.462176][58143:58148] CHIP:DMG: - [1660653198.462241][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653198.462303][58143:58148] CHIP:DMG: } - [1660653198.462524][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653198.462606][58143:58148] CHIP:TOO: Location: XX - [1660653198.462695][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68010fa0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653260.633215][58143:58148] CHIP:EM: Removed CHIP MessageCounter:178377836 from RetransTable on exchange 25360i - [1660653260.633327][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653260.633387][58143:58148] CHIP:DMG: { - [1660653260.633442][58143:58148] CHIP:DMG: SubscriptionId = 0x60feee4d, - [1660653260.633493][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653260.633560][58143:58148] CHIP:DMG: [ - [1660653260.633615][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653260.633691][58143:58148] CHIP:DMG: { - [1660653260.633755][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653260.633820][58143:58148] CHIP:DMG: { - [1660653260.633891][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653260.633964][58143:58148] CHIP:DMG: AttributePathIB = - [1660653260.634046][58143:58148] CHIP:DMG: { - [1660653260.634130][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653260.634212][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653260.634292][58143:58148] CHIP:DMG: Attribute = 0x0000_0010, - [1660653260.634366][58143:58148] CHIP:DMG: } - [1660653260.634445][58143:58148] CHIP:DMG: - [1660653260.634523][58143:58148] CHIP:DMG: Data = false, - [1660653260.634600][58143:58148] CHIP:DMG: }, - [1660653260.634674][58143:58148] CHIP:DMG: - [1660653260.634736][58143:58148] CHIP:DMG: }, - [1660653260.634802][58143:58148] CHIP:DMG: - [1660653260.634855][58143:58148] CHIP:DMG: ], - [1660653260.635066][58143:58148] CHIP:DMG: - [1660653260.635128][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653260.635181][58143:58148] CHIP:DMG: } - [1660653260.635371][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653260.635446][58143:58148] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653260.635523][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68011170]: Moving to [AwaitingSu] - - - - - on the 3rd reference device send 3 Subscribe Request Messages to DUT - basicinformation subscribe node-label 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653438.741061][58149:58154] CHIP:EM: Removed CHIP MessageCounter:141916359 from RetransTable on exchange 34400i - [1660653438.741116][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653438.741143][58149:58154] CHIP:DMG: { - [1660653438.741236][58149:58154] CHIP:DMG: SubscriptionId = 0xff93c648, - [1660653438.741262][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653438.741294][58149:58154] CHIP:DMG: [ - [1660653438.741318][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653438.741352][58149:58154] CHIP:DMG: { - [1660653438.741380][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653438.741415][58149:58154] CHIP:DMG: { - [1660653438.741448][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653438.741479][58149:58154] CHIP:DMG: AttributePathIB = - [1660653438.741517][58149:58154] CHIP:DMG: { - [1660653438.741553][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653438.741592][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653438.741627][58149:58154] CHIP:DMG: Attribute = 0x0000_0005, - [1660653438.741660][58149:58154] CHIP:DMG: } - [1660653438.741695][58149:58154] CHIP:DMG: - [1660653438.741732][58149:58154] CHIP:DMG: Data = "" (0 chars), - [1660653438.741764][58149:58154] CHIP:DMG: }, - [1660653438.741800][58149:58154] CHIP:DMG: - [1660653438.741828][58149:58154] CHIP:DMG: }, - [1660653438.741859][58149:58154] CHIP:DMG: - [1660653438.741883][58149:58154] CHIP:DMG: ], - [1660653438.741913][58149:58154] CHIP:DMG: - [1660653438.741938][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653438.741961][58149:58154] CHIP:DMG: } - [1660653438.742081][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653438.742125][58149:58154] CHIP:TOO: NodeLabel: - [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653500.501007][58149:58154] CHIP:DMG: { - [1660653500.501077][58149:58154] CHIP:DMG: SubscriptionId = 0xb129bd8c, - [1660653500.501126][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653500.501204][58149:58154] CHIP:DMG: [ - [1660653500.501253][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653500.501323][58149:58154] CHIP:DMG: { - [1660653500.501397][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653500.501466][58149:58154] CHIP:DMG: { - [1660653500.501550][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653500.501615][58149:58154] CHIP:DMG: AttributePathIB = - [1660653500.501698][58149:58154] CHIP:DMG: { - [1660653500.501765][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653500.501835][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653500.501905][58149:58154] CHIP:DMG: Attribute = 0x0000_0006, - [1660653500.501971][58149:58154] CHIP:DMG: } - [1660653500.502041][58149:58154] CHIP:DMG: - [1660653500.502111][58149:58154] CHIP:DMG: Data = "XX" (2 chars), - [1660653500.502176][58149:58154] CHIP:DMG: }, - [1660653500.502249][58149:58154] CHIP:DMG: - [1660653500.502303][58149:58154] CHIP:DMG: }, - [1660653500.502367][58149:58154] CHIP:DMG: - [1660653500.502414][58149:58154] CHIP:DMG: ], - [1660653500.502473][58149:58154] CHIP:DMG: - [1660653500.502520][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653500.502567][58149:58154] CHIP:DMG: } - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653545.650817][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653545.650842][58149:58154] CHIP:DMG: { - [1660653545.650864][58149:58154] CHIP:DMG: SubscriptionId = 0x5310d542, - [1660653545.650901][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653545.650929][58149:58154] CHIP:DMG: [ - [1660653545.650950][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653545.650999][58149:58154] CHIP:DMG: { - [1660653545.651032][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653545.651060][58149:58154] CHIP:DMG: { - [1660653545.651088][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653545.651123][58149:58154] CHIP:DMG: AttributePathIB = - [1660653545.651151][58149:58154] CHIP:DMG: { - [1660653545.651179][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653545.651209][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653545.651238][58149:58154] CHIP:DMG: Attribute = 0x0000_0010, - [1660653545.651265][58149:58154] CHIP:DMG: } - [1660653545.651294][58149:58154] CHIP:DMG: - [1660653545.651323][58149:58154] CHIP:DMG: Data = false, - [1660653545.651349][58149:58154] CHIP:DMG: }, - [1660653545.651377][58149:58154] CHIP:DMG: - [1660653545.651399][58149:58154] CHIP:DMG: }, - [1660653545.651425][58149:58154] CHIP:DMG: - [1660653545.651446][58149:58154] CHIP:DMG: ], - [1660653545.651473][58149:58154] CHIP:DMG: - [1660653545.651494][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653545.651514][58149:58154] CHIP:DMG: } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 4th reference device send 3 Subscribe Request Messages to DUT - - basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 5th reference device send 3 Subscribe Request Messages to DUT - - basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] + Send 3 Subscriptionrequest messages from each Reference Device(Eg. RD1...) to DUT and verify all the subscription requests are success and change the value of all the attributes by sending a write command, after sending a write command verify on each of these Reference Devices that the appropriate attribute value has been received. + + + #1. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true + [1684320859.182506][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320859.182528][136393:136395] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320859.182560][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320859.182569][136393:136395] CHIP:TOO: Location: XX + [1684320859.182595][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320859.182601][136393:136395] CHIP:TOO: NodeLabel: + [1684320859.182621][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb5100169f0]: Moving to [AwaitingSu] + [1684320859.182662][136393:136395] CHIP:EM: <<< [E:41656i S:42488 M:180349702 (Ack:108041995)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684320859.182673][136393:136395] CHIP:IN: (S) Sending msg 180349702 on secure session with LSID: 42488 + [1684320859.182973][136393:136395] CHIP:EM: >>> [E:41656i S:42488 M:108041996 (Ack:180349702)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684320859.182985][136393:136395] CHIP:EM: Found matching exchange: 41656i, Delegate: 0x7fb510016a00 + [1684320859.182996][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349702 from Retrans Table on exchange 41656i + [1684320859.183007][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684320859.183019][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684320859.183025][136393:136395] CHIP:DMG: { + [1684320859.183031][136393:136395] CHIP:DMG: SubscriptionId = 0x791da1c4, + [1684320859.183038][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684320859.183044][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684320859.183049][136393:136395] CHIP:DMG: } + [1684320859.183057][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0x791da1c4 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + + + + #2. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true + [1684320880.234954][136396:136398] CHIP:DMG: } + [1684320880.235018][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320880.235029][136396:136398] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320880.235048][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320880.235053][136396:136398] CHIP:TOO: Location: XX + [1684320880.235068][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320880.235072][136396:136398] CHIP:TOO: NodeLabel: + [1684320880.235083][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a00018ac0]: Moving to [AwaitingSu] + [1684320880.235100][136396:136398] CHIP:EM: <<< [E:35582i S:50848 M:252532041 (Ack:201846712)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684320880.235106][136396:136398] CHIP:IN: (S) Sending msg 252532041 on secure session with LSID: 50848 + [1684320880.235224][136396:136398] CHIP:EM: >>> [E:35582i S:50848 M:201846713 (Ack:252532041)] (S) Msg RX from 2:0000000000000002 [8559] --- Type 0001:04 (IM:SubscribeResponse) + [1684320880.235229][136396:136398] CHIP:EM: Found matching exchange: 35582i, Delegate: 0x7f6a00018ad0 + [1684320880.235233][136396:136398] CHIP:EM: Rxd Ack; Removing MessageCounter:252532041 from Retrans Table on exchange 35582i + [1684320880.235237][136396:136398] CHIP:DMG: SubscribeResponse is received + [1684320880.235243][136396:136398] CHIP:DMG: SubscribeResponseMessage = + [1684320880.235245][136396:136398] CHIP:DMG: { + [1684320880.235248][136396:136398] CHIP:DMG: SubscriptionId = 0x53b4c6f8, + [1684320880.235251][136396:136398] CHIP:DMG: MaxInterval = 0x3e8, + [1684320880.235254][136396:136398] CHIP:DMG: InteractionModelRevision = 1 + [1684320880.235256][136396:136398] CHIP:DMG: } + [1684320880.235260][136396:136398] CHIP:DMG: Subscription established with SubscriptionID = 0x53b4c6f8 MinInterval = 100s MaxInterval = 1000s Peer = 02:0000000000000002 + + + #3. on the 3rd reference device(RD3) send a Subscribe Request Messages to DUT..(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 3 '0,0,0' --commissioner-name gamma --keepSubscriptions true + [1684320897.144854][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320897.144874][136409:136411] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320897.144902][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320897.144910][136409:136411] CHIP:TOO: Location: XX + [1684320897.144930][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320897.144936][136409:136411] CHIP:TOO: NodeLabel: + [1684320897.144950][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc017580]: Moving to [AwaitingSu] + [1684320897.144985][136409:136411] CHIP:EM: <<< [E:42344i S:52489 M:199100307 (Ack:174085421)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684320897.144994][136409:136411] CHIP:IN: (S) Sending msg 199100307 on secure session with LSID: 52489 + [1684320897.145246][136409:136411] CHIP:EM: >>> [E:42344i S:52489 M:174085422 (Ack:199100307)] (S) Msg RX from 3:0000000000000003 [5371] --- Type 0001:04 (IM:SubscribeResponse) + [1684320897.145257][136409:136411] CHIP:EM: Found matching exchange: 42344i, Delegate: 0x7f53dc017590 + [1684320897.145267][136409:136411] CHIP:EM: Rxd Ack; Removing MessageCounter:199100307 from Retrans Table on exchange 42344i + [1684320897.145276][136409:136411] CHIP:DMG: SubscribeResponse is received + [1684320897.145286][136409:136411] CHIP:DMG: SubscribeResponseMessage = + [1684320897.145291][136409:136411] CHIP:DMG: { + [1684320897.145297][136409:136411] CHIP:DMG: SubscriptionId = 0x39430ad, + [1684320897.145302][136409:136411] CHIP:DMG: MaxInterval = 0x3e8, + [1684320897.145307][136409:136411] CHIP:DMG: InteractionModelRevision = 1 + [1684320897.145311][136409:136411] CHIP:DMG: } + [1684320897.145318][136409:136411] CHIP:DMG: Subscription established with SubscriptionID = 0x039430ad MinInterval = 100s MaxInterval = 1000s Peer = 03:0000000000000003 + + #4. on the 4th reference device(RD4) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 4 '0,0,0' --commissioner-name 4 --keepSubscriptions true + [1684320914.059978][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320914.060000][136403:136405] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320914.060033][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320914.060043][136403:136405] CHIP:TOO: Location: XX + [1684320914.060069][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320914.060076][136403:136405] CHIP:TOO: NodeLabel: + [1684320914.060096][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc00adb0]: Moving to [AwaitingSu] + [1684320914.060153][136403:136405] CHIP:EM: <<< [E:28542i S:21311 M:202084349 (Ack:249111933)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684320914.060168][136403:136405] CHIP:IN: (S) Sending msg 202084349 on secure session with LSID: 21311 + [1684320914.060565][136403:136405] CHIP:EM: >>> [E:28542i S:21311 M:249111934 (Ack:202084349)] (S) Msg RX from 4:0000000000000004 [8451] --- Type 0001:04 (IM:SubscribeResponse) + [1684320914.060573][136403:136405] CHIP:EM: Found matching exchange: 28542i, Delegate: 0x7ff4cc00adc0 + [1684320914.060581][136403:136405] CHIP:EM: Rxd Ack; Removing MessageCounter:202084349 from Retrans Table on exchange 28542i + [1684320914.060589][136403:136405] CHIP:DMG: SubscribeResponse is received + [1684320914.060598][136403:136405] CHIP:DMG: SubscribeResponseMessage = + [1684320914.060602][136403:136405] CHIP:DMG: { + [1684320914.060606][136403:136405] CHIP:DMG: SubscriptionId = 0x66c37454, + [1684320914.060611][136403:136405] CHIP:DMG: MaxInterval = 0x3e8, + [1684320914.060616][136403:136405] CHIP:DMG: InteractionModelRevision = 1 + [1684320914.060620][136403:136405] CHIP:DMG: } + [1684320914.060625][136403:136405] CHIP:DMG: Subscription established with SubscriptionID = 0x66c37454 MinInterval = 100s MaxInterval = 1000s Peer = 04:0000000000000004 + + #5. on the 5th reference device(RD5) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 5 '0,0,0' --commissioner-name 5 --keepSubscriptions true + [1684320928.187912][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588722 + [1684320928.187937][136414:136416] CHIP:TOO: LocalConfigDisabled: FALSE + [1684320928.187968][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588722 + [1684320928.187977][136414:136416] CHIP:TOO: Location: XX + [1684320928.188002][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588722 + [1684320928.188009][136414:136416] CHIP:TOO: NodeLabel: + [1684320928.188029][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4013ed0]: Moving to [AwaitingSu] + [1684320928.188078][136414:136416] CHIP:EM: <<< [E:5169i S:40695 M:166660998 (Ack:81061545)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684320928.188091][136414:136416] CHIP:IN: (S) Sending msg 166660998 on secure session with LSID: 40695 + [1684320928.188415][136414:136416] CHIP:EM: >>> [E:5169i S:40695 M:81061546 (Ack:166660998)] (S) Msg RX from 5:0000000000000005 [D311] --- Type 0001:04 (IM:SubscribeResponse) + [1684320928.188427][136414:136416] CHIP:EM: Found matching exchange: 5169i, Delegate: 0x7f58a4013ee0 + [1684320928.188437][136414:136416] CHIP:EM: Rxd Ack; Removing MessageCounter:166660998 from Retrans Table on exchange 5169i + [1684320928.188447][136414:136416] CHIP:DMG: SubscribeResponse is received + [1684320928.188459][136414:136416] CHIP:DMG: SubscribeResponseMessage = + [1684320928.188465][136414:136416] CHIP:DMG: { + [1684320928.188471][136414:136416] CHIP:DMG: SubscriptionId = 0x652585ee, + [1684320928.188478][136414:136416] CHIP:DMG: MaxInterval = 0x3e8, + [1684320928.188484][136414:136416] CHIP:DMG: InteractionModelRevision = 1 + [1684320928.188489][136414:136416] CHIP:DMG: } + [1684320928.188497][136414:136416] CHIP:DMG: Subscription established with SubscriptionID = 0x652585ee MinInterval = 100s MaxInterval = 1000s Peer = 05:0000000000000005 once all the subscription is active, on the first reference device enter below mentioned commands to change the attribute values in RD1 basicinformation write node-label '"newnode"' 1 0 - ReportDataMessage = - [1660653595.180285][58131:58136] CHIP:DMG: { - [1660653595.180335][58131:58136] CHIP:DMG: SubscriptionId = 0x50d4243c, - [1660653595.180388][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653595.180456][58131:58136] CHIP:DMG: [ - [1660653595.180508][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653595.180579][58131:58136] CHIP:DMG: { - [1660653595.180640][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653595.180707][58131:58136] CHIP:DMG: { - [1660653595.180794][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f7, - [1660653595.180874][58131:58136] CHIP:DMG: AttributePathIB = - [1660653595.180958][58131:58136] CHIP:DMG: { - [1660653595.181042][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653595.181131][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653595.181214][58131:58136] CHIP:DMG: Attribute = 0x0000_0005, - [1660653595.181281][58131:58136] CHIP:DMG: } - [1660653595.181353][58131:58136] CHIP:DMG: - [1660653595.181426][58131:58136] CHIP:DMG: Data = ""newnode"" (9 chars), - [1660653595.181491][58131:58136] CHIP:DMG: }, - [1660653595.181564][58131:58136] CHIP:DMG: - [1660653595.181638][58131:58136] CHIP:DMG: }, - [1660653595.181706][58131:58136] CHIP:DMG: - [1660653595.181772][58131:58136] CHIP:DMG: ], - [1660653595.181858][58131:58136] CHIP:DMG: - [1660653595.181924][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653595.181987][58131:58136] CHIP:DMG: } - [1660653595.182209][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190839 - [1660653595.182295][58131:58136] CHIP:TOO: NodeLabel: "newnode" - [1660653595.182400][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x50d4243c Peer = 01:0000000000000001 - - basicinformation write location in 1 0 - ReportDataMessage = - [1660653646.567396][58131:58136] CHIP:DMG: { - [1660653646.567414][58131:58136] CHIP:DMG: SubscriptionId = 0xea4facb0, - [1660653646.567432][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653646.567455][58131:58136] CHIP:DMG: [ - [1660653646.567472][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653646.567497][58131:58136] CHIP:DMG: { - [1660653646.567515][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653646.567537][58131:58136] CHIP:DMG: { - [1660653646.567560][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f8, - [1660653646.567581][58131:58136] CHIP:DMG: AttributePathIB = - [1660653646.567604][58131:58136] CHIP:DMG: { - [1660653646.567627][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653646.567651][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653646.567676][58131:58136] CHIP:DMG: Attribute = 0x0000_0006, - [1660653646.567699][58131:58136] CHIP:DMG: } - [1660653646.567723][58131:58136] CHIP:DMG: - [1660653646.567749][58131:58136] CHIP:DMG: Data = "in" (2 chars), - [1660653646.567852][58131:58136] CHIP:DMG: }, - [1660653646.567880][58131:58136] CHIP:DMG: - [1660653646.567904][58131:58136] CHIP:DMG: }, - [1660653646.567931][58131:58136] CHIP:DMG: - [1660653646.567952][58131:58136] CHIP:DMG: ], - [1660653646.567980][58131:58136] CHIP:DMG: - [1660653646.568002][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653646.568023][58131:58136] CHIP:DMG: } - [1660653646.568112][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.568151][58131:58136] CHIP:TOO: Location: in - [1660653646.568191][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xea4facb0 Peer = 01:0000000000000001 - - - - basicinformation write local-config-disabled 1 1 0 - ReportDataMessage = - [1660653666.029792][58131:58136] CHIP:DMG: { - [1660653666.029813][58131:58136] CHIP:DMG: SubscriptionId = 0x1ff9dbc5, - [1660653666.029835][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653666.029862][58131:58136] CHIP:DMG: [ - [1660653666.029883][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653666.029921][58131:58136] CHIP:DMG: { - [1660653666.029947][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653666.029980][58131:58136] CHIP:DMG: { - [1660653666.030013][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f9, - [1660653666.030045][58131:58136] CHIP:DMG: AttributePathIB = - [1660653666.030071][58131:58136] CHIP:DMG: { - [1660653666.030107][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653666.030137][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653666.030161][58131:58136] CHIP:DMG: Attribute = 0x0000_0010, - [1660653666.030184][58131:58136] CHIP:DMG: } - [1660653666.030209][58131:58136] CHIP:DMG: - [1660653666.030234][58131:58136] CHIP:DMG: Data = true, - [1660653666.030255][58131:58136] CHIP:DMG: }, - [1660653666.030278][58131:58136] CHIP:DMG: - [1660653666.030297][58131:58136] CHIP:DMG: }, - [1660653666.030320][58131:58136] CHIP:DMG: - [1660653666.030337][58131:58136] CHIP:DMG: ], - [1660653666.030361][58131:58136] CHIP:DMG: - [1660653666.030378][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653666.030395][58131:58136] CHIP:DMG: } - [1660653666.030472][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190841 - [1660653666.030502][58131:58136] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.030535][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x1ff9dbc5 Peer = 01:00000 + [1684320946.180177][136393:136395] CHIP:DMG: WriteResponseMessage = + [1684320946.180180][136393:136395] CHIP:DMG: { + [1684320946.180183][136393:136395] CHIP:DMG: AttributeStatusIBs = + [1684320946.180189][136393:136395] CHIP:DMG: [ + [1684320946.180191][136393:136395] CHIP:DMG: AttributeStatusIB = + [1684320946.180196][136393:136395] CHIP:DMG: { + [1684320946.180199][136393:136395] CHIP:DMG: AttributePathIB = + [1684320946.180202][136393:136395] CHIP:DMG: { + [1684320946.180206][136393:136395] CHIP:DMG: Endpoint = 0x0, + [1684320946.180210][136393:136395] CHIP:DMG: Cluster = 0x28, + [1684320946.180213][136393:136395] CHIP:DMG: Attribute = 0x0000_0005, + [1684320946.180216][136393:136395] CHIP:DMG: } + [1684320946.180220][136393:136395] CHIP:DMG: + [1684320946.180223][136393:136395] CHIP:DMG: StatusIB = + [1684320946.180227][136393:136395] CHIP:DMG: { + [1684320946.180230][136393:136395] CHIP:DMG: status = 0x00 (SUCCESS), + [1684320946.180232][136393:136395] CHIP:DMG: }, + [1684320946.180235][136393:136395] CHIP:DMG: + [1684320946.180238][136393:136395] CHIP:DMG: }, + [1684320946.180242][136393:136395] CHIP:DMG: + [1684320946.180244][136393:136395] CHIP:DMG: ], + [1684320946.180248][136393:136395] CHIP:DMG: + [1684320946.180250][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684320946.180253][136393:136395] CHIP:DMG: } + [1684320946.180267][136393:136395] CHIP:DMG: WriteClient moving to [AwaitingDe] + + basicinformation write location in 1 0 + [1684320950.120156][136393:136395] CHIP:DMG: WriteResponseMessage = + [1684320950.120159][136393:136395] CHIP:DMG: { + [1684320950.120162][136393:136395] CHIP:DMG: AttributeStatusIBs = + [1684320950.120168][136393:136395] CHIP:DMG: [ + [1684320950.120171][136393:136395] CHIP:DMG: AttributeStatusIB = + [1684320950.120174][136393:136395] CHIP:DMG: { + [1684320950.120177][136393:136395] CHIP:DMG: AttributePathIB = + [1684320950.120181][136393:136395] CHIP:DMG: { + [1684320950.120185][136393:136395] CHIP:DMG: Endpoint = 0x0, + [1684320950.120188][136393:136395] CHIP:DMG: Cluster = 0x28, + [1684320950.120192][136393:136395] CHIP:DMG: Attribute = 0x0000_0006, + [1684320950.120196][136393:136395] CHIP:DMG: } + [1684320950.120201][136393:136395] CHIP:DMG: + [1684320950.120204][136393:136395] CHIP:DMG: StatusIB = + [1684320950.120208][136393:136395] CHIP:DMG: { + [1684320950.120212][136393:136395] CHIP:DMG: status = 0x00 (SUCCESS), + [1684320950.120215][136393:136395] CHIP:DMG: }, + [1684320950.120218][136393:136395] CHIP:DMG: + [1684320950.120221][136393:136395] CHIP:DMG: }, + [1684320950.120225][136393:136395] CHIP:DMG: + [1684320950.120228][136393:136395] CHIP:DMG: ], + [1684320950.120233][136393:136395] CHIP:DMG: + [1684320950.120236][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684320950.120238][136393:136395] CHIP:DMG: } + [1684320950.120257][136393:136395] CHIP:DMG: WriteClient moving to [AwaitingDe] + + + basicinformation write local-config-disabled 1 1 0 + [1684320954.914458][136393:136395] CHIP:DMG: WriteResponseMessage = + [1684320954.914463][136393:136395] CHIP:DMG: { + [1684320954.914466][136393:136395] CHIP:DMG: AttributeStatusIBs = + [1684320954.914472][136393:136395] CHIP:DMG: [ + [1684320954.914475][136393:136395] CHIP:DMG: AttributeStatusIB = + [1684320954.914484][136393:136395] CHIP:DMG: { + [1684320954.914490][136393:136395] CHIP:DMG: AttributePathIB = + [1684320954.914498][136393:136395] CHIP:DMG: { + [1684320954.914502][136393:136395] CHIP:DMG: Endpoint = 0x0, + [1684320954.914507][136393:136395] CHIP:DMG: Cluster = 0x28, + [1684320954.914512][136393:136395] CHIP:DMG: Attribute = 0x0000_0010, + [1684320954.914514][136393:136395] CHIP:DMG: } + [1684320954.914519][136393:136395] CHIP:DMG: + [1684320954.914524][136393:136395] CHIP:DMG: StatusIB = + [1684320954.914530][136393:136395] CHIP:DMG: { + [1684320954.914533][136393:136395] CHIP:DMG: status = 0x00 (SUCCESS), + [1684320954.914538][136393:136395] CHIP:DMG: }, + [1684320954.914542][136393:136395] CHIP:DMG: + [1684320954.914545][136393:136395] CHIP:DMG: }, + [1684320954.914549][136393:136395] CHIP:DMG: + [1684320954.914555][136393:136395] CHIP:DMG: ], + [1684320954.914561][136393:136395] CHIP:DMG: + [1684320954.914564][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684320954.914569][136393:136395] CHIP:DMG: } + + [1684320959.188576][136393:136395] CHIP:DMG: } + [1684320959.188649][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684320959.188666][136393:136395] CHIP:TOO: LocalConfigDisabled: TRUE + [1684320959.188698][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684320959.188709][136393:136395] CHIP:TOO: Location: in + [1684320959.188740][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684320959.188748][136393:136395] CHIP:TOO: NodeLabel: "newnode" + [1684320959.188779][136393:136395] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x791da1c4 Peer = 01:0000000000000001 + [1684320959.188854][136393:136395] CHIP:EM: <<< [E:39644r S:42488 M:180349710 (Ack:108042000)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684320959.188871][136393:136395] CHIP:IN: (S) Sending msg 180349710 on secure session with LSID: 42488 + Once RD1 change the attibute values by sending above command, verify that all the RD*(RD2/3/4/5) should be notified with a subscription report - on the 2nd reference device verify the ReportDataMessage with the attribute value change - [1660653595.177882][58143:58148] CHIP:EM: Handling via exchange: 9001r, Delegate: 0xaaaaea1cd718 - [1660653595.178151][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653595.178219][58143:58148] CHIP:DMG: { - [1660653595.178272][58143:58148] CHIP:DMG: SubscriptionId = 0xc15110c4, - [1660653595.178325][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653595.178396][58143:58148] CHIP:DMG: [ - [1660653595.178449][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653595.178522][58143:58148] CHIP:DMG: { - [1660653595.178580][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653595.178647][58143:58148] CHIP:DMG: { - [1660653595.178717][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f7, - [1660653595.178804][58143:58148] CHIP:DMG: AttributePathIB = - [1660653595.178874][58143:58148] CHIP:DMG: { - [1660653595.178942][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653595.179014][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653595.179086][58143:58148] CHIP:DMG: Attribute = 0x0000_0005, - [1660653595.179153][58143:58148] CHIP:DMG: } - [1660653595.179225][58143:58148] CHIP:DMG: - [1660653595.179300][58143:58148] CHIP:DMG: Data = ""newnode"" (9 chars), - [1660653595.179363][58143:58148] CHIP:DMG: }, - [1660653595.179438][58143:58148] CHIP:DMG: - [1660653595.179499][58143:58148] CHIP:DMG: }, - [1660653595.179587][58143:58148] CHIP:DMG: - [1660653595.179639][58143:58148] CHIP:DMG: ], - [1660653595.179705][58143:58148] CHIP:DMG: - [1660653595.179894][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653595.179952][58143:58148] CHIP:DMG: } - [1660653595.180163][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190839 - [1660653595.180235][58143:58148] CHIP:TOO: NodeLabel: "newnode" - [1660653595.180511][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xc15110c4 Peer = 02:0000000000000002 - - - [1660653646.567549][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653646.567570][58143:58148] CHIP:DMG: { - [1660653646.567587][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, - [1660653646.567605][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653646.567628][58143:58148] CHIP:DMG: [ - [1660653646.567646][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653646.567670][58143:58148] CHIP:DMG: { - [1660653646.567689][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653646.567709][58143:58148] CHIP:DMG: { - [1660653646.567731][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f8, - [1660653646.567780][58143:58148] CHIP:DMG: AttributePathIB = - [1660653646.567806][58143:58148] CHIP:DMG: { - [1660653646.567829][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653646.567854][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653646.568334][58143:58148] CHIP:DMG: Attribute = 0x0000_0006, - [1660653646.568364][58143:58148] CHIP:DMG: } - [1660653646.568726][58143:58148] CHIP:DMG: - [1660653646.568769][58143:58148] CHIP:DMG: Data = "in" (2 chars), - [1660653646.569119][58143:58148] CHIP:DMG: }, - [1660653646.569313][58143:58148] CHIP:DMG: - [1660653646.569337][58143:58148] CHIP:DMG: }, - [1660653646.569518][58143:58148] CHIP:DMG: - [1660653646.569538][58143:58148] CHIP:DMG: ], - [1660653646.569566][58143:58148] CHIP:DMG: - [1660653646.569588][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653646.569610][58143:58148] CHIP:DMG: } - [1660653646.569682][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.569713][58143:58148] CHIP:TOO: Location: in - [1660653646.569762][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xfed77bda Peer = 02:0000000000000002 - - - [1660653666.030382][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653666.030401][58143:58148] CHIP:DMG: { - [1660653666.030419][58143:58148] CHIP:DMG: SubscriptionId = 0x60feee4d, - [1660653666.030438][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653666.030461][58143:58148] CHIP:DMG: [ - [1660653666.030478][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653666.030502][58143:58148] CHIP:DMG: { - [1660653666.030521][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653666.030542][58143:58148] CHIP:DMG: { - [1660653666.030564][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f9, - [1660653666.030586][58143:58148] CHIP:DMG: AttributePathIB = - [1660653666.030609][58143:58148] CHIP:DMG: { - [1660653666.030647][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653666.030672][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653666.030696][58143:58148] CHIP:DMG: Attribute = 0x0000_0010, - [1660653666.030718][58143:58148] CHIP:DMG: } - [1660653666.030742][58143:58148] CHIP:DMG: - [1660653666.030778][58143:58148] CHIP:DMG: Data = true, - [1660653666.030803][58143:58148] CHIP:DMG: }, - [1660653666.030827][58143:58148] CHIP:DMG: - [1660653666.030846][58143:58148] CHIP:DMG: }, - [1660653666.030868][58143:58148] CHIP:DMG: - [1660653666.030885][58143:58148] CHIP:DMG: ], - [1660653666.030908][58143:58148] CHIP:DMG: - [1660653666.030926][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653666.030944][58143:58148] CHIP:DMG: } - [1660653666.031027][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190841 - [1660653666.031058][58143:58148] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.031092][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x60feee4d Peer = 02:0000000000000002 - - - on the 3rd reference device verify the ReportDataMessage with the attribute value change - onic time: 000000000199A0AE msec - [1660653545.654422][58149:58154] CHIP:EM: Flushed pending ack for MessageCounter:144882910 on exchange 34402i - [1660653595.178474][58149:58154] CHIP:EM: Received message of type 0x5 with protocolId (0, 1) and MessageCounter:144882911 on exchange 9002r - [1660653595.178564][58149:58154] CHIP:EM: Handling via exchange: 9002r, Delegate: 0xaaaade55d718 - [1660653595.178743][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653595.178805][58149:58154] CHIP:DMG: { - [1660653595.178858][58149:58154] CHIP:DMG: SubscriptionId = 0xff93c648, - [1660653595.178912][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653595.178980][58149:58154] CHIP:DMG: [ - [1660653595.179033][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653595.179106][58149:58154] CHIP:DMG: { - [1660653595.179163][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653595.179225][58149:58154] CHIP:DMG: { - [1660653595.179291][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f7, - [1660653595.179355][58149:58154] CHIP:DMG: AttributePathIB = - [1660653595.179422][58149:58154] CHIP:DMG: { - [1660653595.179498][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653595.179640][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653595.179718][58149:58154] CHIP:DMG: Attribute = 0x0000_0005, - [1660653595.179864][58149:58154] CHIP:DMG: } - [1660653595.179939][58149:58154] CHIP:DMG: - [1660653595.180012][58149:58154] CHIP:DMG: Data = ""newnode"" (9 chars), - [1660653595.180077][58149:58154] CHIP:DMG: }, - [1660653595.180148][58149:58154] CHIP:DMG: - [1660653595.180204][58149:58154] CHIP:DMG: }, - [1660653595.180276][58149:58154] CHIP:DMG: - [1660653595.180328][58149:58154] CHIP:DMG: ], - [1660653595.180395][58149:58154] CHIP:DMG: - [1660653595.180462][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653595.180513][58149:58154] CHIP:DMG: } - [1660653595.180721][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190839 - [1660653595.180792][58149:58154] CHIP:TOO: NodeLabel: "newnode" - [1660653595.180894][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = - - - [1660653646.568849][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653646.568878][58149:58154] CHIP:DMG: { - [1660653646.568903][58149:58154] CHIP:DMG: SubscriptionId = 0xb129bd8c, - [1660653646.568926][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653646.568955][58149:58154] CHIP:DMG: [ - [1660653646.568974][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653646.569004][58149:58154] CHIP:DMG: { - [1660653646.569027][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653646.569054][58149:58154] CHIP:DMG: { - [1660653646.569082][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f8, - [1660653646.569109][58149:58154] CHIP:DMG: AttributePathIB = - [1660653646.569138][58149:58154] CHIP:DMG: { - [1660653646.569165][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653646.569194][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653646.569225][58149:58154] CHIP:DMG: Attribute = 0x0000_0006, - [1660653646.569253][58149:58154] CHIP:DMG: } - [1660653646.569282][58149:58154] CHIP:DMG: - [1660653646.569313][58149:58154] CHIP:DMG: Data = "in" (2 chars), - [1660653646.569339][58149:58154] CHIP:DMG: }, - [1660653646.569368][58149:58154] CHIP:DMG: - [1660653646.569392][58149:58154] CHIP:DMG: }, - [1660653646.569419][58149:58154] CHIP:DMG: - [1660653646.569441][58149:58154] CHIP:DMG: ], - [1660653646.569469][58149:58154] CHIP:DMG: - [1660653646.569492][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653646.569510][58149:58154] CHIP:DMG: } - [1660653646.569596][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.569638][58149:58154] CHIP:TOO: Location: in - [1660653646.569738][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xb129bd8c Peer = 03:0000000000000003 - - MessageCounter:144882915 on exchange 9008r - [1660653666.030877][58149:58154] CHIP:EM: Handling via exchange: 9008r, Delegate: 0xaaaade55d718 - [1660653666.030942][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653666.030968][58149:58154] CHIP:DMG: { - [1660653666.030986][58149:58154] CHIP:DMG: SubscriptionId = 0x5310d542, - [1660653666.031004][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653666.031028][58149:58154] CHIP:DMG: [ - [1660653666.031045][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653666.031069][58149:58154] CHIP:DMG: { - [1660653666.031089][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653666.031111][58149:58154] CHIP:DMG: { - [1660653666.031133][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f9, - [1660653666.031155][58149:58154] CHIP:DMG: AttributePathIB = - [1660653666.031178][58149:58154] CHIP:DMG: { - [1660653666.031202][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653666.031226][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653666.031251][58149:58154] CHIP:DMG: Attribute = 0x0000_0010, - [1660653666.031274][58149:58154] CHIP:DMG: } - [1660653666.031308][58149:58154] CHIP:DMG: - [1660653666.031334][58149:58154] CHIP:DMG: Data = true, - [1660653666.031355][58149:58154] CHIP:DMG: }, - [1660653666.031379][58149:58154] CHIP:DMG: - [1660653666.031398][58149:58154] CHIP:DMG: }, - [1660653666.031421][58149:58154] CHIP:DMG: - [1660653666.031438][58149:58154] CHIP:DMG: ], - [1660653666.031462][58149:58154] CHIP:DMG: - [1660653666.031480][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653666.031503][58149:58154] CHIP:DMG: } - [1660653666.031584][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190841 - [1660653666.031617][58149:58154] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.031655][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x5310d542 Peer = 03:0000000000 - - - - on the 4th reference device verify the ReportDataMessage with the attribute value change - - [1660653595.182209][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 378219084 - [1660653595.182295][58131:58136] CHIP:TOO: NodeLabel: "newnode" - [1660653595.182400][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x50d4249f Peer = 01:0000000000000001 - - [1660653646.569682][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.569713][58143:58148] CHIP:TOO: Location: in - [1660653646.569762][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xfed77bda Peer = 02:0000000000000002 - - - [1660653666.031584][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 37821909841 - [1660653666.031617][58149:58154] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.031655][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x5310d57o2 Peer = 03:0000000000 - - - - - - - on the 5th reference device verify the ReportDataMessage with the attribute value change - - [1660653595.182209][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 378218970 - [1660653595.182295][58131:58136] CHIP:TOO: NodeLabel: "newnode" - [1660653595.182400][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x50d42ftc Peer = 01:0000000000000001 - - - [1660653646.569682][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190840 - [1660653646.569713][58143:58148] CHIP:TOO: Location: in - [1660653646.569762][58143:58148] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xfed77bda Peer = 02:0000000000000002 - - - [1660653666.031584][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190981 - [1660653666.031617][58149:58154] CHIP:TOO: LocalConfigDisabled: TRUE - [1660653666.031655][58149:58154] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0x5310d5l0 Peer = 03:0000000000 + + #1. on the 2nd reference device verify the ReportDataMessage with the attribute value change + [1684320980.257823][136396:136398] CHIP:DMG: } + [1684320980.257880][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684320980.257894][136396:136398] CHIP:TOO: LocalConfigDisabled: TRUE + [1684320980.257921][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684320980.257930][136396:136398] CHIP:TOO: Location: in + [1684320980.257956][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684320980.257963][136396:136398] CHIP:TOO: NodeLabel: "newnode" + [1684320980.257994][136396:136398] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x53b4c6f8 Peer = 02:0000000000000002 + [1684320980.258041][136396:136398] CHIP:EM: <<< [E:39645r S:50848 M:252532043 (Ack:201846714)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684320980.258055][136396:136398] CHIP:IN: (S) Sending msg 252532043 on secure session with LSID: 50848 + + + #2. on the 3rd reference device verify the ReportDataMessage with the attribute value change + + + [1684320997.161989][136409:136411] CHIP:DMG: } + [1684320997.162051][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684320997.162065][136409:136411] CHIP:TOO: LocalConfigDisabled: TRUE + [1684320997.162092][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684320997.162102][136409:136411] CHIP:TOO: Location: in + [1684320997.162128][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684320997.162136][136409:136411] CHIP:TOO: NodeLabel: "newnode" + [1684320997.162175][136409:136411] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x039430ad Peer = 03:0000000000000003 + [1684320997.162223][136409:136411] CHIP:EM: <<< [E:39646r S:52489 M:199100309 (Ack:174085423)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684320997.162236][136409:136411] CHIP:IN: (S) Sending msg 199100309 on secure session with LSID: 52489 + + #3. on the 4th reference device verify the ReportDataMessage with the attribute value change + [1684321014.078519][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321014.078535][136403:136405] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321014.078568][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321014.078578][136403:136405] CHIP:TOO: Location: in + [1684321014.078608][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321014.078616][136403:136405] CHIP:TOO: NodeLabel: "newnode" + [1684321014.078648][136403:136405] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x66c37454 Peer = 04:0000000000000004 + [1684321014.078701][136403:136405] CHIP:EM: <<< [E:39647r S:21311 M:202084351 (Ack:249111935)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684321014.078716][136403:136405] CHIP:IN: (S) Sending msg 202084351 on secure session with LSID: 21311 + + #4. on the 5th reference device verify the ReportDataMessage with the attribute value change + [1684321028.194445][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321028.194465][136414:136416] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321028.194505][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321028.194518][136414:136416] CHIP:TOO: Location: in + [1684321028.194554][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321028.194565][136414:136416] CHIP:TOO: NodeLabel: "newnode" + [1684321028.194602][136414:136416] CHIP:DMG: Refresh LivenessCheckTime for 1004224 milliseconds with SubscriptionId = 0x652585ee Peer = 05:0000000000000005 + [1684321028.194659][136414:136416] CHIP:EM: <<< [E:39648r S:40695 M:166661000 (Ack:81061547)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684321028.194678][136414:136416] CHIP:IN: (S) Sending msg 166661000 on secure session with LSID: 40695 disabled: true - label: "RD1, RD2, RD3, RD4, RD5 send 3 Subscribe Request Messages to DUT.(Total - 15 active subscriptions) Each subscribe requests should contain 3 different paths. The subscription request from RD1 should - contain 4 paths." + contain 4 paths. +" verification: | After provisioning again the values are been set to default values such as node label= " ". so in VS mentioned as node-label="", location=XX and local-config-disabled=FALSE but if your going to verify 3 steps contentiously you will get the attribute value as node-label="newlabel", location=in and local-config-disabled=TRUE. - Please run this test in chip tool interactive mode ./chip-tool interactive start - - Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) - - Send 3 Subscriptionrequest message from each Reference Device(Eg. RD1...) to DUT - and verify all the subscription requests are succes. and in The subscription request from RD1 should contain 4 paths, Verify that the subscriptions from RD2, RD3, RD4 and RD5 are not affected. - - on the first reference device(RD1) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 - [1660652952.537644][58131:58136] CHIP:EM: Removed CHIP MessageCounter:11153878 from RetransTable on exchange 57366i - [1660652952.537721][58131:58136] CHIP:DMG: ReportDataMessage = - [1660652952.537759][58131:58136] CHIP:DMG: { - [1660652952.537794][58131:58136] CHIP:DMG: SubscriptionId = 0x50d4243c, - [1660652952.537829][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660652952.537873][58131:58136] CHIP:DMG: [ - [1660652952.537907][58131:58136] CHIP:DMG: AttributeReportIB = - [1660652952.537964][58131:58136] CHIP:DMG: { - [1660652952.538008][58131:58136] CHIP:DMG: AttributeDataIB = - [1660652952.538055][58131:58136] CHIP:DMG: { - [1660652952.538106][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660652952.538152][58131:58136] CHIP:DMG: AttributePathIB = - [1660652952.538205][58131:58136] CHIP:DMG: { - [1660652952.538254][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660652952.538308][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660652952.538358][58131:58136] CHIP:DMG: Attribute = 0x0000_0005, - [1660652952.538409][58131:58136] CHIP:DMG: } - [1660652952.538465][58131:58136] CHIP:DMG: - [1660652952.538517][58131:58136] CHIP:DMG: Data = "" (0 chars), - [1660652952.538562][58131:58136] CHIP:DMG: }, - [1660652952.538615][58131:58136] CHIP:DMG: - [1660652952.538654][58131:58136] CHIP:DMG: }, - [1660652952.538700][58131:58136] CHIP:DMG: - [1660652952.538734][58131:58136] CHIP:DMG: ], - [1660652952.538777][58131:58136] CHIP:DMG: - [1660652952.538811][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660652952.538844][58131:58136] CHIP:DMG: } - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 1 0 --keepSubscriptions 1 - [1660653005.341371][58131:58136] CHIP:DMG: ReportDataMessage = - [1660653005.341441][58131:58136] CHIP:DMG: { - [1660653005.341503][58131:58136] CHIP:DMG: SubscriptionId = 0xea4facb0, - [1660653005.341568][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653005.341648][58131:58136] CHIP:DMG: [ - [1660653005.341711][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653005.341808][58131:58136] CHIP:DMG: { - [1660653005.341881][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653005.341972][58131:58136] CHIP:DMG: { - [1660653005.342065][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653005.342148][58131:58136] CHIP:DMG: AttributePathIB = - [1660653005.342244][58131:58136] CHIP:DMG: { - [1660653005.342340][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653005.342436][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653005.342528][58131:58136] CHIP:DMG: Attribute = 0x0000_0006, - [1660653005.342616][58131:58136] CHIP:DMG: } - [1660653005.342708][58131:58136] CHIP:DMG: - [1660653005.342801][58131:58136] CHIP:DMG: Data = "XX" (2 chars), - [1660653005.342883][58131:58136] CHIP:DMG: }, - [1660653005.342972][58131:58136] CHIP:DMG: - [1660653005.343045][58131:58136] CHIP:DMG: }, - [1660653005.343129][58131:58136] CHIP:DMG: - [1660653005.343191][58131:58136] CHIP:DMG: ], - [1660653005.343270][58131:58136] CHIP:DMG: - [1660653005.343331][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653005.343392][58131:58136] CHIP:DMG: } - [1660653005.343616][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653005.343884][58131:58136] CHIP:TOO: Location: XX - [1660653005.343983][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa00129b0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 1 0 --keepSubscriptions 1 - [1660653043.575397][58131:58136] CHIP:DMG: ReportDataMessage = - [1660653043.575423][58131:58136] CHIP:DMG: { - [1660653043.575445][58131:58136] CHIP:DMG: SubscriptionId = 0x1ff9dbc5, - [1660653043.575467][58131:58136] CHIP:DMG: AttributeReportIBs = - [1660653043.575504][58131:58136] CHIP:DMG: [ - [1660653043.575526][58131:58136] CHIP:DMG: AttributeReportIB = - [1660653043.575556][58131:58136] CHIP:DMG: { - [1660653043.575579][58131:58136] CHIP:DMG: AttributeDataIB = - [1660653043.575605][58131:58136] CHIP:DMG: { - [1660653043.575633][58131:58136] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653043.575658][58131:58136] CHIP:DMG: AttributePathIB = - [1660653043.575686][58131:58136] CHIP:DMG: { - [1660653043.575713][58131:58136] CHIP:DMG: Endpoint = 0x0, - [1660653043.575743][58131:58136] CHIP:DMG: Cluster = 0x28, - [1660653043.575806][58131:58136] CHIP:DMG: Attribute = 0x0000_0010, - [1660653043.575833][58131:58136] CHIP:DMG: } - [1660653043.575863][58131:58136] CHIP:DMG: - [1660653043.575892][58131:58136] CHIP:DMG: Data = false, - [1660653043.575917][58131:58136] CHIP:DMG: }, - [1660653043.575944][58131:58136] CHIP:DMG: - [1660653043.575966][58131:58136] CHIP:DMG: }, - [1660653043.575993][58131:58136] CHIP:DMG: - [1660653043.576013][58131:58136] CHIP:DMG: ], - [1660653043.576041][58131:58136] CHIP:DMG: - [1660653043.576063][58131:58136] CHIP:DMG: InteractionModelRevision = 1 - [1660653043.576084][58131:58136] CHIP:DMG: } - [1660653043.576169][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653043.576207][58131:58136] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653043.576240][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0012b40]: Moving to [AwaitingSu] - - - - on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653125.592310][58143:58148] CHIP:DMG: { - [1660653125.592348][58143:58148] CHIP:DMG: SubscriptionId = 0xc15110c4, - [1660653125.592387][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653125.592435][58143:58148] CHIP:DMG: [ - [1660653125.592472][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653125.592527][58143:58148] CHIP:DMG: { - [1660653125.592568][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653125.592618][58143:58148] CHIP:DMG: { - [1660653125.592675][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653125.592726][58143:58148] CHIP:DMG: AttributePathIB = - [1660653125.592785][58143:58148] CHIP:DMG: { - [1660653125.592839][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653125.592896][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653125.592946][58143:58148] CHIP:DMG: Attribute = 0x0000_0005, - [1660653125.592997][58143:58148] CHIP:DMG: } - [1660653125.593051][58143:58148] CHIP:DMG: - [1660653125.593109][58143:58148] CHIP:DMG: Data = "" (0 chars), - [1660653125.593158][58143:58148] CHIP:DMG: }, - [1660653125.593212][58143:58148] CHIP:DMG: - [1660653125.593255][58143:58148] CHIP:DMG: }, - [1660653125.593305][58143:58148] CHIP:DMG: - [1660653125.593342][58143:58148] CHIP:DMG: ], - [1660653125.593390][58143:58148] CHIP:DMG: - [1660653125.593428][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653125.593464][58143:58148] CHIP:DMG: } - [1660653125.593640][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653125.593706][58143:58148] CHIP:TOO: NodeLabel: - [1660653125.593776][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff6800df30]: Moving to [AwaitingSu] - - - - - - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653198.460359][58143:58148] CHIP:DMG: { - [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, - [1660653198.460487][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653198.460567][58143:58148] CHIP:DMG: [ - [1660653198.460630][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653198.460718][58143:58148] CHIP:DMG: { - [1660653198.460786][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653198.460871][58143:58148] CHIP:DMG: { - [1660653198.460966][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653198.461058][58143:58148] CHIP:DMG: AttributePathIB = - [1660653198.461147][58143:58148] CHIP:DMG: { - [1660653198.461244][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653198.461335][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653198.461427][58143:58148] CHIP:DMG: Attribute = 0x0000_0006, - [1660653198.461513][58143:58148] CHIP:DMG: } - [1660653198.461604][58143:58148] CHIP:DMG: - [1660653198.461699][58143:58148] CHIP:DMG: Data = "XX" (2 chars), - [1660653198.461782][58143:58148] CHIP:DMG: }, - [1660653198.461880][58143:58148] CHIP:DMG: - [1660653198.461952][58143:58148] CHIP:DMG: }, - [1660653198.462037][58143:58148] CHIP:DMG: - [1660653198.462099][58143:58148] CHIP:DMG: ], - [1660653198.462176][58143:58148] CHIP:DMG: - [1660653198.462241][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653198.462303][58143:58148] CHIP:DMG: } - [1660653198.462524][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653198.462606][58143:58148] CHIP:TOO: Location: XX - [1660653198.462695][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68010fa0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653260.633215][58143:58148] CHIP:EM: Removed CHIP MessageCounter:178377836 from RetransTable on exchange 25360i - [1660653260.633327][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653260.633387][58143:58148] CHIP:DMG: { - [1660653260.633442][58143:58148] CHIP:DMG: SubscriptionId = 0x60feee4d, - [1660653260.633493][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653260.633560][58143:58148] CHIP:DMG: [ - [1660653260.633615][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653260.633691][58143:58148] CHIP:DMG: { - [1660653260.633755][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653260.633820][58143:58148] CHIP:DMG: { - [1660653260.633891][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653260.633964][58143:58148] CHIP:DMG: AttributePathIB = - [1660653260.634046][58143:58148] CHIP:DMG: { - [1660653260.634130][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653260.634212][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653260.634292][58143:58148] CHIP:DMG: Attribute = 0x0000_0010, - [1660653260.634366][58143:58148] CHIP:DMG: } - [1660653260.634445][58143:58148] CHIP:DMG: - [1660653260.634523][58143:58148] CHIP:DMG: Data = false, - [1660653260.634600][58143:58148] CHIP:DMG: }, - [1660653260.634674][58143:58148] CHIP:DMG: - [1660653260.634736][58143:58148] CHIP:DMG: }, - [1660653260.634802][58143:58148] CHIP:DMG: - [1660653260.634855][58143:58148] CHIP:DMG: ], - [1660653260.635066][58143:58148] CHIP:DMG: - [1660653260.635128][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653260.635181][58143:58148] CHIP:DMG: } - [1660653260.635371][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653260.635446][58143:58148] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653260.635523][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68011170]: Moving to [AwaitingSu] - - - - - on the 3rd reference device(RD3) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653438.741061][58149:58154] CHIP:EM: Removed CHIP MessageCounter:141916359 from RetransTable on exchange 34400i - [1660653438.741116][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653438.741143][58149:58154] CHIP:DMG: { - [1660653438.741236][58149:58154] CHIP:DMG: SubscriptionId = 0xff93c648, - [1660653438.741262][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653438.741294][58149:58154] CHIP:DMG: [ - [1660653438.741318][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653438.741352][58149:58154] CHIP:DMG: { - [1660653438.741380][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653438.741415][58149:58154] CHIP:DMG: { - [1660653438.741448][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653438.741479][58149:58154] CHIP:DMG: AttributePathIB = - [1660653438.741517][58149:58154] CHIP:DMG: { - [1660653438.741553][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653438.741592][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653438.741627][58149:58154] CHIP:DMG: Attribute = 0x0000_0005, - [1660653438.741660][58149:58154] CHIP:DMG: } - [1660653438.741695][58149:58154] CHIP:DMG: - [1660653438.741732][58149:58154] CHIP:DMG: Data = "" (0 chars), - [1660653438.741764][58149:58154] CHIP:DMG: }, - [1660653438.741800][58149:58154] CHIP:DMG: - [1660653438.741828][58149:58154] CHIP:DMG: }, - [1660653438.741859][58149:58154] CHIP:DMG: - [1660653438.741883][58149:58154] CHIP:DMG: ], - [1660653438.741913][58149:58154] CHIP:DMG: - [1660653438.741938][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653438.741961][58149:58154] CHIP:DMG: } - [1660653438.742081][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653438.742125][58149:58154] CHIP:TOO: NodeLabel: - [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 4th reference device(RD4) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - + #1. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true + [1684321430.691985][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321430.691998][136393:136395] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321430.692025][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321430.692034][136393:136395] CHIP:TOO: Location: in + [1684321430.692062][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321430.692069][136393:136395] CHIP:TOO: NodeLabel: "newnode" + [1684321430.692091][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb510017ca0]: Moving to [AwaitingSu] + [1684321430.692138][136393:136395] CHIP:EM: <<< [E:41660i S:42488 M:180349712 (Ack:108042002)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684321430.692153][136393:136395] CHIP:IN: (S) Sending msg 180349712 on secure session with LSID: 42488 + [1684321430.692466][136393:136395] CHIP:EM: >>> [E:41660i S:42488 M:108042003 (Ack:180349712)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684321430.692478][136393:136395] CHIP:EM: Found matching exchange: 41660i, Delegate: 0x7fb510017cb0 + [1684321430.692492][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349712 from Retrans Table on exchange 41660i + [1684321430.692504][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684321430.692519][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684321430.692526][136393:136395] CHIP:DMG: { + [1684321430.692534][136393:136395] CHIP:DMG: SubscriptionId = 0x46bedde0, + [1684321430.692542][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684321430.692547][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684321430.692552][136393:136395] CHIP:DMG: } + [1684321430.692564][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0x46bedde0 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + [1684321430.692575][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb510017ca0]: Moving to [Subscripti] + + #2. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true + [1684321446.066373][136396:136398] CHIP:DMG: } + [1684321446.066395][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321446.066400][136396:136398] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321446.066409][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321446.066412][136396:136398] CHIP:TOO: Location: in + [1684321446.066420][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321446.066423][136396:136398] CHIP:TOO: NodeLabel: "newnode" + [1684321446.066429][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0000aa80]: Moving to [AwaitingSu] + [1684321446.066443][136396:136398] CHIP:EM: <<< [E:35583i S:50848 M:252532045 (Ack:201846716)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684321446.066447][136396:136398] CHIP:IN: (S) Sending msg 252532045 on secure session with LSID: 50848 + [1684321446.066549][136396:136398] CHIP:EM: >>> [E:35583i S:50848 M:201846717 (Ack:252532045)] (S) Msg RX from 2:0000000000000002 [8559] --- Type 0001:04 (IM:SubscribeResponse) + [1684321446.066553][136396:136398] CHIP:EM: Found matching exchange: 35583i, Delegate: 0x7f6a0000aa90 + [1684321446.066556][136396:136398] CHIP:EM: Rxd Ack; Removing MessageCounter:252532045 from Retrans Table on exchange 35583i + [1684321446.066559][136396:136398] CHIP:DMG: SubscribeResponse is received + [1684321446.066563][136396:136398] CHIP:DMG: SubscribeResponseMessage = + [1684321446.066565][136396:136398] CHIP:DMG: { + [1684321446.066567][136396:136398] CHIP:DMG: SubscriptionId = 0x9d9e9791, + [1684321446.066569][136396:136398] CHIP:DMG: MaxInterval = 0x3e8, + [1684321446.066571][136396:136398] CHIP:DMG: InteractionModelRevision = 1 + [1684321446.066573][136396:136398] CHIP:DMG: } + [1684321446.066576][136396:136398] CHIP:DMG: Subscription established with SubscriptionID = 0x9d9e9791 MinInterval = 100s MaxInterval = 1000s Peer = 02:0000000000000002 + [1684321446.066579][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0000aa80]: Moving to [Subscripti] + + #3. on the 3rd reference device(RD3) send a Subscribe Request Messages to DUT..(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 3 '0,0,0' --commissioner-name gamma --keepSubscriptions true + 1684321460.706260][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321460.706265][136409:136411] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321460.706275][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321460.706279][136409:136411] CHIP:TOO: Location: in + [1684321460.706289][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321460.706292][136409:136411] CHIP:TOO: NodeLabel: "newnode" + [1684321460.706300][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc00f140]: Moving to [AwaitingSu] + [1684321460.706312][136409:136411] CHIP:EM: <<< [E:42345i S:52489 M:199100311 (Ack:174085425)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684321460.706317][136409:136411] CHIP:IN: (S) Sending msg 199100311 on secure session with LSID: 52489 + [1684321460.706424][136409:136411] CHIP:EM: >>> [E:42345i S:52489 M:174085426 (Ack:199100311)] (S) Msg RX from 3:0000000000000003 [5371] --- Type 0001:04 (IM:SubscribeResponse) + [1684321460.706428][136409:136411] CHIP:EM: Found matching exchange: 42345i, Delegate: 0x7f53dc00f150 + [1684321460.706432][136409:136411] CHIP:EM: Rxd Ack; Removing MessageCounter:199100311 from Retrans Table on exchange 42345i + [1684321460.706436][136409:136411] CHIP:DMG: SubscribeResponse is received + [1684321460.706441][136409:136411] CHIP:DMG: SubscribeResponseMessage = + [1684321460.706443][136409:136411] CHIP:DMG: { + [1684321460.706446][136409:136411] CHIP:DMG: SubscriptionId = 0x1387ade2, + [1684321460.706449][136409:136411] CHIP:DMG: MaxInterval = 0x3e8, + [1684321460.706452][136409:136411] CHIP:DMG: InteractionModelRevision = 1 + [1684321460.706455][136409:136411] CHIP:DMG: } + [1684321460.706458][136409:136411] CHIP:DMG: Subscription established with SubscriptionID = 0x1387ade2 MinInterval = 100s MaxInterval = 1000s Peer = 03:0000000000000003 + [1684321460.706462][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc00f140]: Moving to [Subscripti] + + + + #4. on the 4th reference device(RD4) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 4 '0,0,0' --commissioner-name 4 --keepSubscriptions true + [1684321487.408563][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321487.408572][136403:136405] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321487.408590][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321487.408595][136403:136405] CHIP:TOO: Location: in + [1684321487.408612][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321487.408616][136403:136405] CHIP:TOO: NodeLabel: "newnode" + [1684321487.408631][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc015b50]: Moving to [AwaitingSu] + [1684321487.408657][136403:136405] CHIP:EM: <<< [E:28543i S:21311 M:202084353 (Ack:249111937)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684321487.408665][136403:136405] CHIP:IN: (S) Sending msg 202084353 on secure session with LSID: 21311 + [1684321487.408861][136403:136405] CHIP:EM: >>> [E:28543i S:21311 M:249111938 (Ack:202084353)] (S) Msg RX from 4:0000000000000004 [8451] --- Type 0001:04 (IM:SubscribeResponse) + [1684321487.408868][136403:136405] CHIP:EM: Found matching exchange: 28543i, Delegate: 0x7ff4cc015b60 + [1684321487.408875][136403:136405] CHIP:EM: Rxd Ack; Removing MessageCounter:202084353 from Retrans Table on exchange 28543i + [1684321487.408881][136403:136405] CHIP:DMG: SubscribeResponse is received + [1684321487.408888][136403:136405] CHIP:DMG: SubscribeResponseMessage = + [1684321487.408891][136403:136405] CHIP:DMG: { + [1684321487.408895][136403:136405] CHIP:DMG: SubscriptionId = 0x54356760, + [1684321487.408899][136403:136405] CHIP:DMG: MaxInterval = 0x3e8, + [1684321487.408902][136403:136405] CHIP:DMG: InteractionModelRevision = 1 + [1684321487.408906][136403:136405] CHIP:DMG: } + [1684321487.408910][136403:136405] CHIP:DMG: Subscription established with SubscriptionID = 0x54356760 MinInterval = 100s MaxInterval = 1000s Peer = 04:0000000000000004 + [1684321487.408916][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc015b50]: Moving to [Subscripti] + + + + #5. on the 5th reference device(RD5) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 5 '0,0,0' --commissioner-name 5 --keepSubscriptions true + [1684321505.359231][136414:136416] CHIP:DMG: } + [1684321505.359291][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684321505.359298][136414:136416] CHIP:TOO: LocalConfigDisabled: TRUE + [1684321505.359312][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684321505.359316][136414:136416] CHIP:TOO: Location: in + [1684321505.359331][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684321505.359334][136414:136416] CHIP:TOO: NodeLabel: "newnode" + [1684321505.359345][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4009230]: Moving to [AwaitingSu] + [1684321505.359365][136414:136416] CHIP:EM: <<< [E:5170i S:40695 M:166661002 (Ack:81061549)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684321505.359370][136414:136416] CHIP:IN: (S) Sending msg 166661002 on secure session with LSID: 40695 + [1684321505.359510][136414:136416] CHIP:EM: >>> [E:5170i S:40695 M:81061550 (Ack:166661002)] (S) Msg RX from 5:0000000000000005 [D311] --- Type 0001:04 (IM:SubscribeResponse) + [1684321505.359515][136414:136416] CHIP:EM: Found matching exchange: 5170i, Delegate: 0x7f58a4009240 + [1684321505.359519][136414:136416] CHIP:EM: Rxd Ack; Removing MessageCounter:166661002 from Retrans Table on exchange 5170i + [1684321505.359524][136414:136416] CHIP:DMG: SubscribeResponse is received + [1684321505.359530][136414:136416] CHIP:DMG: SubscribeResponseMessage = + [1684321505.359533][136414:136416] CHIP:DMG: { + [1684321505.359536][136414:136416] CHIP:DMG: SubscriptionId = 0xd52f8dad, + [1684321505.359539][136414:136416] CHIP:DMG: MaxInterval = 0x3e8, + [1684321505.359542][136414:136416] CHIP:DMG: InteractionModelRevision = 1 + [1684321505.359545][136414:136416] CHIP:DMG: } + [1684321505.359548][136414:136416] CHIP:DMG: Subscription established with SubscriptionID = 0xd52f8dad MinInterval = 100s MaxInterval = 1000s Peer = 05:0000000000000005 + [1684321505.359553][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4009230]: Moving to [Subscripti] Once all 15 subscriptions are active send one more subscriptiopn command in RD1 and Verify that the subscriptions from RD2, RD3, RD4 and RD5 are not affected. - basicinformation subscribe product-id 100 1000 1 0 --keepSubscriptions 1 - [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 - [1660654945.477932][58149:58154] CHIP:TOO: ProductID: 32769 - [1660654945.478023][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740127c0]: Moving to [AwaitingSu] + On the 1st reference device(RD1) send a Subscribe Request Messages to DUT. + basicinformation subscribe product-id 100 1000 1 0 --keepSubscriptions true + [1684321545.164738][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3947588725 + [1684321545.164763][136393:136395] CHIP:TOO: ProductID: 32769 + [1684321545.164787][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb51001bcc0]: Moving to [AwaitingSu] + [1684321545.164851][136393:136395] CHIP:EM: <<< [E:41661i S:42488 M:180349715 (Ack:108042004)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684321545.164868][136393:136395] CHIP:IN: (S) Sending msg 180349715 on secure session with LSID: 42488 + [1684321545.165191][136393:136395] CHIP:EM: >>> [E:41661i S:42488 M:108042005 (Ack:180349715)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684321545.165201][136393:136395] CHIP:EM: Found matching exchange: 41661i, Delegate: 0x7fb51001bcd0 + [1684321545.165210][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349715 from Retrans Table on exchange 41661i + [1684321545.165218][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684321545.165229][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684321545.165234][136393:136395] CHIP:DMG: { + [1684321545.165238][136393:136395] CHIP:DMG: SubscriptionId = 0xe9abeae7, + [1684321545.165253][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684321545.165263][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684321545.165271][136393:136395] CHIP:DMG: } + [1684321545.165282][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0xe9abeae7 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + [1684321545.165295][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb51001bcc0]: Moving to [Subscripti] disabled: true - label: @@ -1106,296 +506,142 @@ tests: Requests are activated, RD1 sends 6 subscription request messages with each of them having 3 different paths." verification: | - After provisioning again the values are been set to default values such as node label= " ". so in VS mentioned as node-label="", location=XX and local-config-disabled=FALSE but if your going to verify 3 steps contentiously you will get the attribute value as node-label="newlabel", location=in and local-config-disabled=TRUE. - - Please run this test in chip tool interactive mode ./chip-tool interactive start - - Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) - - Send 3 Subscriptionrequest message from each Reference Device(Eg. RD1...) to DUT - and verify all the subscription requests are succes. and in The subscription request - from RD1 should contain 6 paths, Verify that the subscriptions from RD2, RD3, RD4 and - RD5 are not affected. - - on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653125.592310][58143:58148] CHIP:DMG: { - [1660653125.592348][58143:58148] CHIP:DMG: SubscriptionId = 0xc15110c4, - [1660653125.592387][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653125.592435][58143:58148] CHIP:DMG: [ - [1660653125.592472][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653125.592527][58143:58148] CHIP:DMG: { - [1660653125.592568][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653125.592618][58143:58148] CHIP:DMG: { - [1660653125.592675][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653125.592726][58143:58148] CHIP:DMG: AttributePathIB = - [1660653125.592785][58143:58148] CHIP:DMG: { - [1660653125.592839][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653125.592896][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653125.592946][58143:58148] CHIP:DMG: Attribute = 0x0000_0005, - [1660653125.592997][58143:58148] CHIP:DMG: } - [1660653125.593051][58143:58148] CHIP:DMG: - [1660653125.593109][58143:58148] CHIP:DMG: Data = "" (0 chars), - [1660653125.593158][58143:58148] CHIP:DMG: }, - [1660653125.593212][58143:58148] CHIP:DMG: - [1660653125.593255][58143:58148] CHIP:DMG: }, - [1660653125.593305][58143:58148] CHIP:DMG: - [1660653125.593342][58143:58148] CHIP:DMG: ], - [1660653125.593390][58143:58148] CHIP:DMG: - [1660653125.593428][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653125.593464][58143:58148] CHIP:DMG: } - [1660653125.593640][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653125.593706][58143:58148] CHIP:TOO: NodeLabel: - [1660653125.593776][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff6800df30]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653198.460359][58143:58148] CHIP:DMG: { - [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, - [1660653198.460487][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653198.460567][58143:58148] CHIP:DMG: [ - [1660653198.460630][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653198.460718][58143:58148] CHIP:DMG: { - [1660653198.460786][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653198.460871][58143:58148] CHIP:DMG: { - [1660653198.460966][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653198.461058][58143:58148] CHIP:DMG: AttributePathIB = - [1660653198.461147][58143:58148] CHIP:DMG: { - [1660653198.461244][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653198.461335][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653198.461427][58143:58148] CHIP:DMG: Attribute = 0x0000_0006, - [1660653198.461513][58143:58148] CHIP:DMG: } - [1660653198.461604][58143:58148] CHIP:DMG: - [1660653198.461699][58143:58148] CHIP:DMG: Data = "XX" (2 chars), - [1660653198.461782][58143:58148] CHIP:DMG: }, - [1660653198.461880][58143:58148] CHIP:DMG: - [1660653198.461952][58143:58148] CHIP:DMG: }, - [1660653198.462037][58143:58148] CHIP:DMG: - [1660653198.462099][58143:58148] CHIP:DMG: ], - [1660653198.462176][58143:58148] CHIP:DMG: - [1660653198.462241][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653198.462303][58143:58148] CHIP:DMG: } - [1660653198.462524][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653198.462606][58143:58148] CHIP:TOO: Location: XX - [1660653198.462695][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68010fa0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 - [1660653260.633215][58143:58148] CHIP:EM: Removed CHIP MessageCounter:178377836 from RetransTable on exchange 25360i - [1660653260.633327][58143:58148] CHIP:DMG: ReportDataMessage = - [1660653260.633387][58143:58148] CHIP:DMG: { - [1660653260.633442][58143:58148] CHIP:DMG: SubscriptionId = 0x60feee4d, - [1660653260.633493][58143:58148] CHIP:DMG: AttributeReportIBs = - [1660653260.633560][58143:58148] CHIP:DMG: [ - [1660653260.633615][58143:58148] CHIP:DMG: AttributeReportIB = - [1660653260.633691][58143:58148] CHIP:DMG: { - [1660653260.633755][58143:58148] CHIP:DMG: AttributeDataIB = - [1660653260.633820][58143:58148] CHIP:DMG: { - [1660653260.633891][58143:58148] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653260.633964][58143:58148] CHIP:DMG: AttributePathIB = - [1660653260.634046][58143:58148] CHIP:DMG: { - [1660653260.634130][58143:58148] CHIP:DMG: Endpoint = 0x0, - [1660653260.634212][58143:58148] CHIP:DMG: Cluster = 0x28, - [1660653260.634292][58143:58148] CHIP:DMG: Attribute = 0x0000_0010, - [1660653260.634366][58143:58148] CHIP:DMG: } - [1660653260.634445][58143:58148] CHIP:DMG: - [1660653260.634523][58143:58148] CHIP:DMG: Data = false, - [1660653260.634600][58143:58148] CHIP:DMG: }, - [1660653260.634674][58143:58148] CHIP:DMG: - [1660653260.634736][58143:58148] CHIP:DMG: }, - [1660653260.634802][58143:58148] CHIP:DMG: - [1660653260.634855][58143:58148] CHIP:DMG: ], - [1660653260.635066][58143:58148] CHIP:DMG: - [1660653260.635128][58143:58148] CHIP:DMG: InteractionModelRevision = 1 - [1660653260.635181][58143:58148] CHIP:DMG: } - [1660653260.635371][58143:58148] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653260.635446][58143:58148] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653260.635523][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff68011170]: Moving to [AwaitingSu] - - - - - on the 3nd reference device(RD3) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653438.741061][58149:58154] CHIP:EM: Removed CHIP MessageCounter:141916359 from RetransTable on exchange 34400i - [1660653438.741116][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653438.741143][58149:58154] CHIP:DMG: { - [1660653438.741236][58149:58154] CHIP:DMG: SubscriptionId = 0xff93c648, - [1660653438.741262][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653438.741294][58149:58154] CHIP:DMG: [ - [1660653438.741318][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653438.741352][58149:58154] CHIP:DMG: { - [1660653438.741380][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653438.741415][58149:58154] CHIP:DMG: { - [1660653438.741448][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653438.741479][58149:58154] CHIP:DMG: AttributePathIB = - [1660653438.741517][58149:58154] CHIP:DMG: { - [1660653438.741553][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653438.741592][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653438.741627][58149:58154] CHIP:DMG: Attribute = 0x0000_0005, - [1660653438.741660][58149:58154] CHIP:DMG: } - [1660653438.741695][58149:58154] CHIP:DMG: - [1660653438.741732][58149:58154] CHIP:DMG: Data = "" (0 chars), - [1660653438.741764][58149:58154] CHIP:DMG: }, - [1660653438.741800][58149:58154] CHIP:DMG: - [1660653438.741828][58149:58154] CHIP:DMG: }, - [1660653438.741859][58149:58154] CHIP:DMG: - [1660653438.741883][58149:58154] CHIP:DMG: ], - [1660653438.741913][58149:58154] CHIP:DMG: - [1660653438.741938][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653438.741961][58149:58154] CHIP:DMG: } - [1660653438.742081][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660653438.742125][58149:58154] CHIP:TOO: NodeLabel: - [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653500.501007][58149:58154] CHIP:DMG: { - [1660653500.501077][58149:58154] CHIP:DMG: SubscriptionId = 0xb129bd8c, - [1660653500.501126][58149:58154] CHIP:DMG: AttributeReportIBs = - [1660653500.501204][58149:58154] CHIP:DMG: [ - [1660653500.501253][58149:58154] CHIP:DMG: AttributeReportIB = - [1660653500.501323][58149:58154] CHIP:DMG: { - [1660653500.501397][58149:58154] CHIP:DMG: AttributeDataIB = - [1660653500.501466][58149:58154] CHIP:DMG: { - [1660653500.501550][58149:58154] CHIP:DMG: DataVersion = 0xe16fa6f6, - [1660653500.501615][58149:58154] CHIP:DMG: AttributePathIB = - [1660653500.501698][58149:58154] CHIP:DMG: { - [1660653500.501765][58149:58154] CHIP:DMG: Endpoint = 0x0, - [1660653500.501835][58149:58154] CHIP:DMG: Cluster = 0x28, - [1660653500.501905][58149:58154] CHIP:DMG: Attribute = 0x0000_0006, - [1660653500.501971][58149:58154] CHIP:DMG: } - [1660653500.502041][58149:58154] CHIP:DMG: - [1660653500.502111][58149:58154] CHIP:DMG: Data = "XX" (2 chars), - [1660653500.502176][58149:58154] CHIP:DMG: }, - [1660653500.502249][58149:58154] CHIP:DMG: - [1660653500.502303][58149:58154] CHIP:DMG: }, - [1660653500.502367][58149:58154] CHIP:DMG: - [1660653500.502414][58149:58154] CHIP:DMG: ], - [1660653500.502473][58149:58154] CHIP:DMG: - [1660653500.502520][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653500.502567][58149:58154] CHIP:DMG: } - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1660653545.650817][58149:58154] CHIP:DMG: ReportDataMessage = - [1660653545.650842][58149:58154] CHIP:DMG: { - [1660653545.650864][58149:58154] CHIP:DMG: SubscriptionId = 0x5310d542, - . - . - . - [1660653545.651494][58149:58154] CHIP:DMG: InteractionModelRevision = 1 - [1660653545.651514][58149:58154] CHIP:DMG: } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 4nd reference device(RD4) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - - on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - - [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653500.502801][58149:58154] CHIP:TOO: Location: XX - [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 - : } - [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] - - - on the 1st reference device(RD1) send 6 Subscribe Request Messages to DUT, and Verify that the Subscriptions from RD2, RD3, RD4, RD5 are not affected. - - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 - [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 - [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: - [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 1 0 --keepSubscriptions 1 - [1660653005.343616][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 - [1660653005.343884][58131:58136] CHIP:TOO: Location: XX - [1660653005.343983][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa00129b0]: Moving to [AwaitingSu] - - - - basicinformation subscribe local-config-disabled 100 1000 1 0 --keepSubscriptions 1 - [1660653043.576169][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 - [1660653043.576207][58131:58136] CHIP:TOO: LocalConfigDisabled: FALSE - [1660653043.576240][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0012b40]: Moving to [AwaitingSu] - - - - - basicinformation subscribe product-id 100 1000 1 0 --keepSubscriptions 1 - - [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 - [1660654945.477932][58149:58154] CHIP:TOO: ProductID: 32769 - [1660654945.478023][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740127c0]: Moving to [AwaitingSu] - - - basicinformation subscribe software-version 100 1000 1 0 --keepSubscriptions 1 - - [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 - [1660654945.477932][58149:58154] CHIP:TOO: software-version: - [1660654945.478023][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740127c0]: Moving to [AwaitingSu] + #1. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true + [1684322787.342206][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322787.342219][136396:136398] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322787.342246][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322787.342255][136396:136398] CHIP:TOO: Location: in + [1684322787.342282][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322787.342289][136396:136398] CHIP:TOO: NodeLabel: "newnode" + [1684322787.342308][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0001a460]: Moving to [AwaitingSu] + [1684322787.342351][136396:136398] CHIP:EM: <<< [E:35584i S:50848 M:252532050 (Ack:201846722)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684322787.342363][136396:136398] CHIP:IN: (S) Sending msg 252532050 on secure session with LSID: 50848 + [1684322787.342676][136396:136398] CHIP:EM: >>> [E:35584i S:50848 M:201846723 (Ack:252532050)] (S) Msg RX from 2:0000000000000002 [8559] --- Type 0001:04 (IM:SubscribeResponse) + [1684322787.342686][136396:136398] CHIP:EM: Found matching exchange: 35584i, Delegate: 0x7f6a0001a470 + [1684322787.342698][136396:136398] CHIP:EM: Rxd Ack; Removing MessageCounter:252532050 from Retrans Table on exchange 35584i + [1684322787.342708][136396:136398] CHIP:DMG: SubscribeResponse is received + [1684322787.342719][136396:136398] CHIP:DMG: SubscribeResponseMessage = + [1684322787.342725][136396:136398] CHIP:DMG: { + [1684322787.342732][136396:136398] CHIP:DMG: SubscriptionId = 0x5275cbaa, + [1684322787.342739][136396:136398] CHIP:DMG: MaxInterval = 0x3e8, + [1684322787.342745][136396:136398] CHIP:DMG: InteractionModelRevision = 1 + [1684322787.342751][136396:136398] CHIP:DMG: } + [1684322787.342759][136396:136398] CHIP:DMG: Subscription established with SubscriptionID = 0x5275cbaa MinInterval = 100s MaxInterval = 1000s Peer = 02:0000000000000002 + [1684322787.342769][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0001a460]: Moving to [Subscripti] + + + + + #2. on the 3rd reference device(RD3) send a Subscribe Request Messages to DUT..(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 3 '0,0,0' --commissioner-name gamma --keepSubscriptions true + [1684322803.467486][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322803.467490][136409:136411] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322803.467499][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322803.467502][136409:136411] CHIP:TOO: Location: in + [1684322803.467511][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322803.467513][136409:136411] CHIP:TOO: NodeLabel: "newnode" + [1684322803.467520][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc01bb90]: Moving to [AwaitingSu] + [1684322803.467531][136409:136411] CHIP:EM: <<< [E:42346i S:52489 M:199100316 (Ack:174085431)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684322803.467535][136409:136411] CHIP:IN: (S) Sending msg 199100316 on secure session with LSID: 52489 + [1684322803.467616][136409:136411] CHIP:EM: >>> [E:42346i S:52489 M:174085432 (Ack:199100316)] (S) Msg RX from 3:0000000000000003 [5371] --- Type 0001:04 (IM:SubscribeResponse) + [1684322803.467619][136409:136411] CHIP:EM: Found matching exchange: 42346i, Delegate: 0x7f53dc01bba0 + [1684322803.467622][136409:136411] CHIP:EM: Rxd Ack; Removing MessageCounter:199100316 from Retrans Table on exchange 42346i + [1684322803.467626][136409:136411] CHIP:DMG: SubscribeResponse is received + [1684322803.467630][136409:136411] CHIP:DMG: SubscribeResponseMessage = + [1684322803.467632][136409:136411] CHIP:DMG: { + [1684322803.467633][136409:136411] CHIP:DMG: SubscriptionId = 0x66b265e4, + [1684322803.467636][136409:136411] CHIP:DMG: MaxInterval = 0x3e8, + [1684322803.467638][136409:136411] CHIP:DMG: InteractionModelRevision = 1 + [1684322803.467639][136409:136411] CHIP:DMG: } + [1684322803.467642][136409:136411] CHIP:DMG: Subscription established with SubscriptionID = 0x66b265e4 MinInterval = 100s MaxInterval = 1000s Peer = 03:0000000000000003 + [1684322803.467645][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc01bb90]: Moving to [Subscripti] + + + + #3. on the 4th reference device(RD4) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 4 '0,0,0' --commissioner-name 4 --keepSubscriptions true + [1684322837.225922][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322837.225930][136403:136405] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322837.225940][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322837.225943][136403:136405] CHIP:TOO: Location: in + [1684322837.225952][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322837.225955][136403:136405] CHIP:TOO: NodeLabel: "newnode" + [1684322837.225961][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc019c70]: Moving to [AwaitingSu] + [1684322837.225980][136403:136405] CHIP:EM: <<< [E:28544i S:21311 M:202084358 (Ack:249111943)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684322837.225984][136403:136405] CHIP:IN: (S) Sending msg 202084358 on secure session with LSID: 21311 + [1684322837.226089][136403:136405] CHIP:EM: >>> [E:28544i S:21311 M:249111944 (Ack:202084358)] (S) Msg RX from 4:0000000000000004 [8451] --- Type 0001:04 (IM:SubscribeResponse) + [1684322837.226093][136403:136405] CHIP:EM: Found matching exchange: 28544i, Delegate: 0x7ff4cc019c80 + [1684322837.226096][136403:136405] CHIP:EM: Rxd Ack; Removing MessageCounter:202084358 from Retrans Table on exchange 28544i + [1684322837.226099][136403:136405] CHIP:DMG: SubscribeResponse is received + [1684322837.226103][136403:136405] CHIP:DMG: SubscribeResponseMessage = + [1684322837.226106][136403:136405] CHIP:DMG: { + [1684322837.226108][136403:136405] CHIP:DMG: SubscriptionId = 0x169a2c48, + [1684322837.226110][136403:136405] CHIP:DMG: MaxInterval = 0x3e8, + [1684322837.226112][136403:136405] CHIP:DMG: InteractionModelRevision = 1 + [1684322837.226114][136403:136405] CHIP:DMG: } + [1684322837.226117][136403:136405] CHIP:DMG: Subscription established with SubscriptionID = 0x169a2c48 MinInterval = 100s MaxInterval = 1000s Peer = 04:0000000000000004 + [1684322837.226120][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc019c70]: Moving to [Subscripti] + + + + #4. on the 5th reference device(RD5) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 5 '0,0,0' --commissioner-name 5 --keepSubscriptions true + [1684322852.957519][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322852.957525][136414:136416] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322852.957537][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322852.957541][136414:136416] CHIP:TOO: Location: in + [1684322852.957552][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322852.957556][136414:136416] CHIP:TOO: NodeLabel: "newnode" + [1684322852.957564][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a400e880]: Moving to [AwaitingSu] + [1684322852.957585][136414:136416] CHIP:EM: <<< [E:5171i S:40695 M:166661007 (Ack:81061555)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684322852.957590][136414:136416] CHIP:IN: (S) Sending msg 166661007 on secure session with LSID: 40695 + [1684322852.957730][136414:136416] CHIP:EM: >>> [E:5171i S:40695 M:81061556 (Ack:166661007)] (S) Msg RX from 5:0000000000000005 [D311] --- Type 0001:04 (IM:SubscribeResponse) + [1684322852.957734][136414:136416] CHIP:EM: Found matching exchange: 5171i, Delegate: 0x7f58a400e890 + [1684322852.957739][136414:136416] CHIP:EM: Rxd Ack; Removing MessageCounter:166661007 from Retrans Table on exchange 5171i + [1684322852.957744][136414:136416] CHIP:DMG: SubscribeResponse is received + [1684322852.957749][136414:136416] CHIP:DMG: SubscribeResponseMessage = + [1684322852.957752][136414:136416] CHIP:DMG: { + [1684322852.957755][136414:136416] CHIP:DMG: SubscriptionId = 0xddeeb045, + [1684322852.957758][136414:136416] CHIP:DMG: MaxInterval = 0x3e8, + [1684322852.957761][136414:136416] CHIP:DMG: InteractionModelRevision = 1 + [1684322852.957763][136414:136416] CHIP:DMG: } + [1684322852.957767][136414:136416] CHIP:DMG: Subscription established with SubscriptionID = 0xddeeb045 MinInterval = 100s MaxInterval = 1000s Peer = 05:0000000000000005 + [1684322852.957771][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a400e880]: Moving to [Subscripti] + Once all 15 subscriptions are active send one more subscriptiopn command in RD1 and Verify that the subscriptions from RD2, RD3, RD4 and RD5 are not affected. - basicinformation subscribe hardware-version 100 1000 1 0 --keepSubscriptions 1 - [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 - [1660654945.477932][58149:58154] CHIP:TOO: hardware-version: - [1660654945.478023][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740127c0]: Moving to [AwaitingSu] + #5. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028,0x0028,0x0028,0x0028' '5,6,16,1,2,3' 100 1000 1 '0,0,0,0,0,0' --keepSubscriptions true + [1684322869.703109][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0003 DataVersion: 3947588725 + [1684322869.703124][136393:136395] CHIP:TOO: ProductName: TEST_PRODUCT + [1684322869.703160][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0002 DataVersion: 3947588725 + [1684322869.703506][136393:136395] CHIP:TOO: VendorID: 65521 + [1684322869.703534][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0001 DataVersion: 3947588725 + [1684322869.703541][136393:136395] CHIP:TOO: VendorName: TEST_VENDOR + [1684322869.703567][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684322869.703577][136393:136395] CHIP:TOO: LocalConfigDisabled: TRUE + [1684322869.703602][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684322869.703609][136393:136395] CHIP:TOO: Location: in + [1684322869.703634][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684322869.703641][136393:136395] CHIP:TOO: NodeLabel: "newnode" + [1684322869.703668][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb5100236a0]: Moving to [AwaitingSu] + [1684322869.703716][136393:136395] CHIP:EM: <<< [E:41662i S:42488 M:180349721 (Ack:108042012)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684322869.703728][136393:136395] CHIP:IN: (S) Sending msg 180349721 on secure session with LSID: 42488 + [1684322869.704068][136393:136395] CHIP:EM: >>> [E:41662i S:42488 M:108042013 (Ack:180349721)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684322869.704072][136393:136395] CHIP:EM: Found matching exchange: 41662i, Delegate: 0x7fb5100236b0 + [1684322869.704077][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349721 from Retrans Table on exchange 41662i + [1684322869.704081][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684322869.704087][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684322869.704089][136393:136395] CHIP:DMG: { + [1684322869.704092][136393:136395] CHIP:DMG: SubscriptionId = 0x3e46ea65, + [1684322869.704095][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684322869.704098][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684322869.704101][136393:136395] CHIP:DMG: } + [1684322869.704105][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0x3e46ea65 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + [1684322869.704109][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb5100236a0]: Moving to [Subscripti] disabled: true - label: @@ -1405,289 +651,142 @@ tests: Subscription Requests are activated, send a Subscribe request messages having 3 different paths from RD1A to the DUT." verification: | - After provisioning again the values are been set to default values such as node label= " ". so in VS mentioned as node-label="", location=XX and local-config-disabled=FALSE but if your going to verify 3 steps contentiously you will get the attribute value as node-label="newlabel", location=in and local-config-disabled=TRUE. - - - Please run this test in chip tool interactive mode ./chip-tool interactive start - - Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) - - Send 3 Subscriptionrequest message from each Reference Device(RD1, RD2, RD3, RD4, RD5) to DUT - and Verify that the subscription request messages from RD1, RD2, RD3, RD4 and RD5 succeed, Once all the Subscription Requests are activated, send a Subscribe request messages having 3 different paths from RD1A to the DUT, Verify that the Subscription from RD1A gets INVALID_ACTION and the previous subscriptions from RD2, RD3, RD4 and RD5 are not affected. - - - #1. on the 1st reference device(RD1) send 3 Subscribe Request Messages to DUT. - basicinformation subscribe node-label 10 100 1 0 --keepSubscriptions 1 - [1683023740.651692][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 - [1683023740.651797][20746:20748] CHIP:TOO: NodeLabel: - [1683023740.651955][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa00113f0]: Moving to [AwaitingSu] - - [1683023740.730917][20746:20748] CHIP:DMG: SubscribeResponse is received - [1683023740.730997][20746:20748] CHIP:DMG: SubscribeResponseMessage = - [1683023740.731053][20746:20748] CHIP:DMG: { - [1683023740.731108][20746:20748] CHIP:DMG: SubscriptionId = 0x17668ae8, - [1683023740.731168][20746:20748] CHIP:DMG: MaxInterval = 0x64, - [1683023740.731228][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683023740.731336][20746:20748] CHIP:DMG: } - [1683023740.731398][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0x17668ae8 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 - [1683023740.731462][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa00113f0]: Moving to [Subscripti] - - basicinformation subscribe location 10 100 1 0 --keepSubscriptions 1 - [1683023745.401394][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023745.401451][20746:20748] CHIP:TOO: Location: XX - [1683023745.401510][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa0012410]: Moving to [AwaitingSu] - - [1683023745.406163][20746:20748] CHIP:DMG: SubscribeResponse is received - [1683023745.406218][20746:20748] CHIP:DMG: SubscribeResponseMessage = - [1683023745.406255][20746:20748] CHIP:DMG: { - [1683023745.406291][20746:20748] CHIP:DMG: SubscriptionId = 0xf8319a9f, - [1683023745.406332][20746:20748] CHIP:DMG: MaxInterval = 0x64, - [1683023745.406371][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683023745.406408][20746:20748] CHIP:DMG: } - [1683023745.406448][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0xf8319a9f MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 - - basicinformation subscribe local-config-disabled 10 100 1 0 --keepSubscriptions 1 - [1683023751.447899][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023751.447962][20746:20748] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023751.448022][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa000ec00]: Moving to [AwaitingSu] - - [1683023751.775533][20746:20748] CHIP:DMG: SubscribeResponse is received - [1683023751.775617][20746:20748] CHIP:DMG: SubscribeResponseMessage = - [1683023751.775673][20746:20748] CHIP:DMG: { - [1683023751.775728][20746:20748] CHIP:DMG: SubscriptionId = 0xa2ce2aa3, - [1683023751.775789][20746:20748] CHIP:DMG: MaxInterval = 0x64, - [1683023751.775848][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683023751.775903][20746:20748] CHIP:DMG: } - [1683023751.775965][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0xa2ce2aa3 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 - - - #2. on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 - [1683019368.769185][16375:16377] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 416649077 - [1683019368.769287][16375:16377] CHIP:TOO: NodeLabel: - [1683019368.769397][16375:16377] CHIP:DMG: MoveToState ReadClient[0xffff78015930]: Moving to [AwaitingSu] - - [1683019368.774602][16375:16377] CHIP:EM: Found matching exchange: 19856i, Delegate: 0xffff78015940 - - [1683019368.774748][16375:16377] CHIP:DMG: SubscribeResponse is received - [1683019368.774826][16375:16377] CHIP:DMG: SubscribeResponseMessage = - [1683019368.774883][16375:16377] CHIP:DMG: { - [1683019368.774962][16375:16377] CHIP:DMG: SubscriptionId = 0xb7a1a85e, - [1683019368.775024][16375:16377] CHIP:DMG: MaxInterval = 0x3e8, - [1683019368.775084][16375:16377] CHIP:DMG: InteractionModelRevision = 1 - [1683019368.775163][16375:16377] CHIP:DMG: } - [1683019368.775223][16375:16377] CHIP:DMG: Subscription established with SubscriptionID = 0xb7a1a85e MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 - - basicinformation subscribe location 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 - [1683023771.051381][16546:16548] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023771.051459][16546:16548] CHIP:TOO: Location: XX - [1683023771.051545][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff78015c80]: Moving to [AwaitingSu] - - [1683023771.083290][16546:16548] CHIP:DMG: SubscribeResponse is received - [1683023771.083352][16546:16548] CHIP:DMG: SubscribeResponseMessage = - [1683023771.083394][16546:16548] CHIP:DMG: { - [1683023771.083436][16546:16548] CHIP:DMG: SubscriptionId = 0xa5ff48a4, - [1683023771.083481][16546:16548] CHIP:DMG: MaxInterval = 0x64, - [1683023771.083526][16546:16548] CHIP:DMG: InteractionModelRevision = 1 - [1683023771.083568][16546:16548] CHIP:DMG: } - [1683023771.083613][16546:16548] CHIP:DMG: Subscription established with SubscriptionID = 0xa5ff48a4 MinInterval = 10s MaxInterval = 100s Peer = 04:0000000000000002 - [1683023771.083661][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff78015c80]: Moving to [Subscripti] - - - basicinformation subscribe local-config-disabled 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 - [1683023801.394622][16546:16548] CHIP:DMG: } - [1683023801.394810][16546:16548] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023801.394881][16546:16548] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023801.394955][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff7800ab00]: Moving to [AwaitingSu] - - [1683023801.610439][16546:16548] CHIP:DMG: SubscribeResponse is received - [1683023801.610523][16546:16548] CHIP:DMG: SubscribeResponseMessage = - [1683023801.610580][16546:16548] CHIP:DMG: { - [1683023801.610635][16546:16548] CHIP:DMG: SubscriptionId = 0xbbbba6b2, - [1683023801.610695][16546:16548] CHIP:DMG: MaxInterval = 0x64, - [1683023801.610754][16546:16548] CHIP:DMG: InteractionModelRevision = 1 - [1683023801.610809][16546:16548] CHIP:DMG: } - [1683023801.610877][16546:16548] CHIP:DMG: Subscription established with SubscriptionID = 0xbbbba6b2 MinInterval = 10s MaxInterval = 100s Peer = 04:0000000000000002 - [1683023801.610941][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff7800ab00]: Moving to [Subscripti] - - - - #3. on the 3rd reference device(RD3) send 3 Subscribe Request Messages to DUT. - subscribe node-label 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 - - basicinformation [1683023811.287511][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 - [1683023811.287610][16549:16551] CHIP:TOO: NodeLabel: - [1683023811.287717][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c00dbe0]: Moving to [AwaitingSu] - - [1683023811.322041][16549:16551] CHIP:DMG: SubscribeResponse is received - [1683023811.322102][16549:16551] CHIP:DMG: SubscribeResponseMessage = - [1683023811.322145][16549:16551] CHIP:DMG: { - [1683023811.322187][16549:16551] CHIP:DMG: SubscriptionId = 0x72bdea7c, - [1683023811.322242][16549:16551] CHIP:DMG: MaxInterval = 0x64, - [1683023811.322287][16549:16551] CHIP:DMG: InteractionModelRevision = 1 - [1683023811.322328][16549:16551] CHIP:DMG: } - [1683023811.322379][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0x72bdea7c MinInterval = 10s MaxInterval = 100s Peer = 05:0000000000000003 - [1683023811.322428][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c00dbe0]: Moving to [Subscripti] - - basicinformation subscribe location 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1683023815.007685][16549:16551] CHIP:DMG: } - [1683023815.007910][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023815.007988][16549:16551] CHIP:TOO: Location: XX - [1683023815.008073][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c009820]: Moving to [AwaitingSu] - - [1683023815.113033][16549:16551] CHIP:DMG: SubscribeResponse is received - [1683023815.113104][16549:16551] CHIP:DMG: SubscribeResponseMessage = - [1683023815.113154][16549:16551] CHIP:DMG: { - [1683023815.113201][16549:16551] CHIP:DMG: SubscriptionId = 0xab3d91df, - [1683023815.113263][16549:16551] CHIP:DMG: MaxInterval = 0x64, - [1683023815.113315][16549:16551] CHIP:DMG: InteractionModelRevision = 1 - [1683023815.113363][16549:16551] CHIP:DMG: } - [1683023815.113414][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0xab3d91df - - basicinformation subscribe local-config-disabled 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 - [1683023821.155994][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023821.156071][16549:16551] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023821.156156][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c0065e0]: Moving to [AwaitingSu] - - [1683023821.513855][16549:16551] CHIP:DMG: SubscribeResponse is received - [1683023821.513938][16549:16551] CHIP:DMG: SubscribeResponseMessage = - [1683023821.513997][16549:16551] CHIP:DMG: { - [1683023821.514051][16549:16551] CHIP:DMG: SubscriptionId = 0xed6b320a, - [1683023821.514112][16549:16551] CHIP:DMG: MaxInterval = 0x64, - [1683023821.514171][16549:16551] CHIP:DMG: InteractionModelRevision = 1 - [1683023821.514226][16549:16551] CHIP:DMG: } - [1683023821.514286][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0xed6b320a MinInterval = 10s MaxInterval = 100s Peer = 05:0000000000000003 - [1683023821.514350][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c0065e0]: Moving to [Subscripti] - - - - - #4. on the 4th reference device(RD4) send 3 Subscribe Request Messages to DUT. - basicinformation subscribe node-label 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 - [1683023829.174556][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 - [1683023829.174623][16552:16554] CHIP:TOO: NodeLabel: - [1683023829.174695][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00ea60]: Moving to [AwaitingSu] - - [1683023829.240342][16552:16554] CHIP:DMG: SubscribeResponse is received - [1683023829.240425][16552:16554] CHIP:DMG: SubscribeResponseMessage = - [1683023829.240482][16552:16554] CHIP:DMG: { - [1683023829.240536][16552:16554] CHIP:DMG: SubscriptionId = 0x315f789, - [1683023829.240602][16552:16554] CHIP:DMG: MaxInterval = 0x64, - [1683023829.240699][16552:16554] CHIP:DMG: InteractionModelRevision = 1 - [1683023829.240759][16552:16554] CHIP:DMG: } - [1683023829.240821][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x0315f789 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 - [1683023829.240884][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00ea60]: Moving to [Subscripti] - - basicinformation subscribe location 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 - [1683023833.561934][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023833.562012][16552:16554] CHIP:TOO: Location: XX - [1683023833.562099][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00f7a0]: Moving to [AwaitingSu] - - [1683023833.594233][16552:16554] CHIP:DMG: SubscribeResponse is received - [1683023833.594312][16552:16554] CHIP:DMG: SubscribeResponseMessage = - [1683023833.594368][16552:16554] CHIP:DMG: { - [1683023833.594423][16552:16554] CHIP:DMG: SubscriptionId = 0x309d8fe3, - [1683023833.594483][16552:16554] CHIP:DMG: MaxInterval = 0x64, - [1683023833.594542][16552:16554] CHIP:DMG: InteractionModelRevision = 1 - [1683023833.594598][16552:16554] CHIP:DMG: } - [1683023833.594657][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x309d8fe3 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 - [1683023833.594721][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00f7a0]: Moving to [Subscripti] - - basicinformation subscribe local-config-disabled 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 - [1683023839.311550][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023839.311601][16552:16554] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023839.311658][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00d980]: Moving to [AwaitingSu] - - [1683023839.630453][16552:16554] CHIP:DMG: SubscribeResponse is received - [1683023839.630535][16552:16554] CHIP:DMG: SubscribeResponseMessage = - [1683023839.630591][16552:16554] CHIP:DMG: { - [1683023839.630646][16552:16554] CHIP:DMG: SubscriptionId = 0x4e972da5, - [1683023839.630706][16552:16554] CHIP:DMG: MaxInterval = 0x64, - [1683023839.630765][16552:16554] CHIP:DMG: InteractionModelRevision = 1 - [1683023839.630820][16552:16554] CHIP:DMG: } - [1683023839.630880][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x4e972da5 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 - [1683023839.630943][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00d980]: Moving to [Subscripti] - - - - #5. on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. - - basicinformation subscribe node-label 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 - [1683023847.548455][16555:16557] CHIP:DMG: } - [1683023847.548609][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 - [1683023847.548680][16555:16557] CHIP:TOO: NodeLabel: - [1683023847.548807][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0018c20]: Moving to [AwaitingSu] - - [1683023847.560487][16555:16557] CHIP:DMG: SubscribeResponse is received - [1683023847.560529][16555:16557] CHIP:DMG: SubscribeResponseMessage = - [1683023847.560556][16555:16557] CHIP:DMG: { - [1683023847.560582][16555:16557] CHIP:DMG: SubscriptionId = 0x734b2439, - [1683023847.560612][16555:16557] CHIP:DMG: MaxInterval = 0x64, - [1683023847.560640][16555:16557] CHIP:DMG: InteractionModelRevision = 1 - [1683023847.560727][16555:16557] CHIP:DMG: } - - - basicinformation subscribe location 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 - [1683023853.665414][16555:16557] CHIP:DMG: } - [1683023853.665640][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 - [1683023853.665716][16555:16557] CHIP:TOO: Location: XX - [1683023853.665801][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa000dbe0]: Moving to [AwaitingSu] - - [1683023854.271536][16555:16557] CHIP:DMG: SubscribeResponse is received - [1683023854.271621][16555:16557] CHIP:DMG: SubscribeResponseMessage = - [1683023854.271677][16555:16557] CHIP:DMG: { - [1683023854.271733][16555:16557] CHIP:DMG: SubscriptionId = 0x9538a40, - [1683023854.271795][16555:16557] CHIP:DMG: MaxInterval = 0x64, - [1683023854.271854][16555:16557] CHIP:DMG: InteractionModelRevision = 1 - [1683023854.271909][16555:16557] CHIP:DMG: } - [1683023854.271970][16555:16557] CHIP:DMG: Subscription established with SubscriptionID = 0x09538a40 MinInterval = 10s MaxInterval = 100s Peer = 07:0000000000000005 - [1683023854.272035][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa000dbe0]: Moving to [Subscripti] - - - basicinformation subscribe local-config-disabled 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 - [1683023862.573994][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 - [1683023862.574047][16555:16557] CHIP:TOO: LocalConfigDisabled: FALSE - [1683023862.574104][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0014cc0]: Moving to [AwaitingSu] - - [1683023862.758142][16555:16557] CHIP:DMG: SubscribeResponse is received - [1683023862.758224][16555:16557] CHIP:DMG: SubscribeResponseMessage = - [1683023862.758280][16555:16557] CHIP:DMG: { - [1683023862.758334][16555:16557] CHIP:DMG: SubscriptionId = 0xe04a3425, - [1683023862.758395][16555:16557] CHIP:DMG: MaxInterval = 0x64, - [1683023862.758453][16555:16557] CHIP:DMG: InteractionModelRevision = 1 - [1683023862.758508][16555:16557] CHIP:DMG: } - [1683023862.758568][16555:16557] CHIP:DMG: Subscription established with SubscriptionID = 0xe04a3425 MinInterval = 10s MaxInterval = 100s Peer = 07:0000000000000005 - [1683023862.758631][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0014cc0]: Moving to [Subscripti] + #1. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true + [1684323009.937251][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323009.937257][136393:136395] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323009.937274][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323009.937279][136393:136395] CHIP:TOO: Location: in + [1684323009.937293][136393:136395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323009.937298][136393:136395] CHIP:TOO: NodeLabel: "newnode" + [1684323009.937308][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb510002110]: Moving to [AwaitingSu] + [1684323009.937334][136393:136395] CHIP:EM: <<< [E:41663i S:42488 M:180349725 (Ack:108042016)] (S) Msg TX to 1:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684323009.937339][136393:136395] CHIP:IN: (S) Sending msg 180349725 on secure session with LSID: 42488 + [1684323009.937486][136393:136395] CHIP:EM: >>> [E:41663i S:42488 M:108042017 (Ack:180349725)] (S) Msg RX from 1:0000000000000001 [E777] --- Type 0001:04 (IM:SubscribeResponse) + [1684323009.937491][136393:136395] CHIP:EM: Found matching exchange: 41663i, Delegate: 0x7fb510002120 + [1684323009.937496][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:180349725 from Retrans Table on exchange 41663i + [1684323009.937501][136393:136395] CHIP:DMG: SubscribeResponse is received + [1684323009.937506][136393:136395] CHIP:DMG: SubscribeResponseMessage = + [1684323009.937509][136393:136395] CHIP:DMG: { + [1684323009.937511][136393:136395] CHIP:DMG: SubscriptionId = 0x11c7cc15, + [1684323009.937514][136393:136395] CHIP:DMG: MaxInterval = 0x3e8, + [1684323009.937517][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684323009.937519][136393:136395] CHIP:DMG: } + [1684323009.937523][136393:136395] CHIP:DMG: Subscription established with SubscriptionID = 0x11c7cc15 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + [1684323009.937527][136393:136395] CHIP:DMG: MoveToState ReadClient[0x7fb510002110]: Moving to [Subscripti] + + + #2. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true + [1684323023.679481][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323023.679488][136396:136398] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323023.679503][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323023.679508][136396:136398] CHIP:TOO: Location: in + [1684323023.679521][136396:136398] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323023.679525][136396:136398] CHIP:TOO: NodeLabel: "newnode" + [1684323023.679535][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0000a890]: Moving to [AwaitingSu] + [1684323023.679556][136396:136398] CHIP:EM: <<< [E:35585i S:50848 M:252532054 (Ack:201846726)] (S) Msg TX to 2:0000000000000002 [8559] --- Type 0001:01 (IM:StatusResponse) + [1684323023.679563][136396:136398] CHIP:IN: (S) Sending msg 252532054 on secure session with LSID: 50848 + [1684323023.679719][136396:136398] CHIP:EM: >>> [E:35585i S:50848 M:201846727 (Ack:252532054)] (S) Msg RX from 2:0000000000000002 [8559] --- Type 0001:04 (IM:SubscribeResponse) + [1684323023.679724][136396:136398] CHIP:EM: Found matching exchange: 35585i, Delegate: 0x7f6a0000a8a0 + [1684323023.679728][136396:136398] CHIP:EM: Rxd Ack; Removing MessageCounter:252532054 from Retrans Table on exchange 35585i + [1684323023.679733][136396:136398] CHIP:DMG: SubscribeResponse is received + [1684323023.679737][136396:136398] CHIP:DMG: SubscribeResponseMessage = + [1684323023.679740][136396:136398] CHIP:DMG: { + [1684323023.679742][136396:136398] CHIP:DMG: SubscriptionId = 0x9aba1995, + [1684323023.679745][136396:136398] CHIP:DMG: MaxInterval = 0x3e8, + [1684323023.679747][136396:136398] CHIP:DMG: InteractionModelRevision = 1 + [1684323023.679749][136396:136398] CHIP:DMG: } + [1684323023.679752][136396:136398] CHIP:DMG: Subscription established with SubscriptionID = 0x9aba1995 MinInterval = 100s MaxInterval = 1000s Peer = 02:0000000000000002 + [1684323023.679756][136396:136398] CHIP:DMG: MoveToState ReadClient[0x7f6a0000a890]: Moving to [Subscripti] + + + + #3. on the 3rd reference device(RD3) send a Subscribe Request Messages to DUT..(Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 3 '0,0,0' --commissioner-name gamma --keepSubscriptions true + [1684323039.115907][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323039.115916][136409:136411] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323039.115943][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323039.115949][136409:136411] CHIP:TOO: Location: in + [1684323039.115977][136409:136411] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323039.115981][136409:136411] CHIP:TOO: NodeLabel: "newnode" + [1684323039.116000][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc016c20]: Moving to [AwaitingSu] + [1684323039.116030][136409:136411] CHIP:EM: <<< [E:42347i S:52489 M:199100320 (Ack:174085435)] (S) Msg TX to 3:0000000000000003 [5371] --- Type 0001:01 (IM:StatusResponse) + [1684323039.116039][136409:136411] CHIP:IN: (S) Sending msg 199100320 on secure session with LSID: 52489 + [1684323039.116217][136409:136411] CHIP:EM: >>> [E:42347i S:52489 M:174085436 (Ack:199100320)] (S) Msg RX from 3:0000000000000003 [5371] --- Type 0001:04 (IM:SubscribeResponse) + [1684323039.116226][136409:136411] CHIP:EM: Found matching exchange: 42347i, Delegate: 0x7f53dc016c30 + [1684323039.116234][136409:136411] CHIP:EM: Rxd Ack; Removing MessageCounter:199100320 from Retrans Table on exchange 42347i + [1684323039.116242][136409:136411] CHIP:DMG: SubscribeResponse is received + [1684323039.116251][136409:136411] CHIP:DMG: SubscribeResponseMessage = + [1684323039.116257][136409:136411] CHIP:DMG: { + [1684323039.116262][136409:136411] CHIP:DMG: SubscriptionId = 0x4bceb4f4, + [1684323039.116268][136409:136411] CHIP:DMG: MaxInterval = 0x3e8, + [1684323039.116273][136409:136411] CHIP:DMG: InteractionModelRevision = 1 + [1684323039.116278][136409:136411] CHIP:DMG: } + [1684323039.116284][136409:136411] CHIP:DMG: Subscription established with SubscriptionID = 0x4bceb4f4 MinInterval = 100s MaxInterval = 1000s Peer = 03:0000000000000003 + [1684323039.116292][136409:136411] CHIP:DMG: MoveToState ReadClient[0x7f53dc016c20]: Moving to [Subscripti] + + + + #4. on the 4th reference device(RD4) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 4 '0,0,0' --commissioner-name 4 --keepSubscriptions true + [1684323055.304162][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323055.304177][136403:136405] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323055.304206][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323055.304216][136403:136405] CHIP:TOO: Location: in + [1684323055.304243][136403:136405] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323055.304250][136403:136405] CHIP:TOO: NodeLabel: "newnode" + [1684323055.304274][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc010a60]: Moving to [AwaitingSu] + [1684323055.304312][136403:136405] CHIP:EM: <<< [E:28545i S:21311 M:202084362 (Ack:249111947)] (S) Msg TX to 4:0000000000000004 [8451] --- Type 0001:01 (IM:StatusResponse) + [1684323055.304324][136403:136405] CHIP:IN: (S) Sending msg 202084362 on secure session with LSID: 21311 + [1684323055.304636][136403:136405] CHIP:EM: >>> [E:28545i S:21311 M:249111948 (Ack:202084362)] (S) Msg RX from 4:0000000000000004 [8451] --- Type 0001:04 (IM:SubscribeResponse) + [1684323055.304647][136403:136405] CHIP:EM: Found matching exchange: 28545i, Delegate: 0x7ff4cc010a70 + [1684323055.304660][136403:136405] CHIP:EM: Rxd Ack; Removing MessageCounter:202084362 from Retrans Table on exchange 28545i + [1684323055.304671][136403:136405] CHIP:DMG: SubscribeResponse is received + [1684323055.304685][136403:136405] CHIP:DMG: SubscribeResponseMessage = + [1684323055.304693][136403:136405] CHIP:DMG: { + [1684323055.304700][136403:136405] CHIP:DMG: SubscriptionId = 0xa0a990f4, + [1684323055.304709][136403:136405] CHIP:DMG: MaxInterval = 0x3e8, + [1684323055.304717][136403:136405] CHIP:DMG: InteractionModelRevision = 1 + [1684323055.304724][136403:136405] CHIP:DMG: } + [1684323055.304733][136403:136405] CHIP:DMG: Subscription established with SubscriptionID = 0xa0a990f4 MinInterval = 100s MaxInterval = 1000s Peer = 04:0000000000000004 + [1684323055.304744][136403:136405] CHIP:DMG: MoveToState ReadClient[0x7ff4cc010a60]: Moving to [Subscripti] + + #5. on the 5th reference device(RD5) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 5 '0,0,0' --commissioner-name 5 --keepSubscriptions true + [1684323072.765216][136414:136416] CHIP:DMG: } + [1684323072.765277][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3947588725 + [1684323072.765290][136414:136416] CHIP:TOO: LocalConfigDisabled: TRUE + [1684323072.765318][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3947588725 + [1684323072.765327][136414:136416] CHIP:TOO: Location: in + [1684323072.765352][136414:136416] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3947588725 + [1684323072.765359][136414:136416] CHIP:TOO: NodeLabel: "newnode" + [1684323072.765379][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4014ee0]: Moving to [AwaitingSu] + [1684323072.765426][136414:136416] CHIP:EM: <<< [E:5172i S:40695 M:166661011 (Ack:81061559)] (S) Msg TX to 5:0000000000000005 [D311] --- Type 0001:01 (IM:StatusResponse) + [1684323072.765439][136414:136416] CHIP:IN: (S) Sending msg 166661011 on secure session with LSID: 40695 + [1684323072.765654][136414:136416] CHIP:EM: >>> [E:5172i S:40695 M:81061560 (Ack:166661011)] (S) Msg RX from 5:0000000000000005 [D311] --- Type 0001:04 (IM:SubscribeResponse) + [1684323072.765661][136414:136416] CHIP:EM: Found matching exchange: 5172i, Delegate: 0x7f58a4014ef0 + [1684323072.765666][136414:136416] CHIP:EM: Rxd Ack; Removing MessageCounter:166661011 from Retrans Table on exchange 5172i + [1684323072.765670][136414:136416] CHIP:DMG: SubscribeResponse is received + [1684323072.765675][136414:136416] CHIP:DMG: SubscribeResponseMessage = + [1684323072.765678][136414:136416] CHIP:DMG: { + [1684323072.765680][136414:136416] CHIP:DMG: SubscriptionId = 0x8e2931b5, + [1684323072.765682][136414:136416] CHIP:DMG: MaxInterval = 0x3e8, + [1684323072.765684][136414:136416] CHIP:DMG: InteractionModelRevision = 1 + [1684323072.765686][136414:136416] CHIP:DMG: } + [1684323072.765689][136414:136416] CHIP:DMG: Subscription established with SubscriptionID = 0x8e2931b5 MinInterval = 100s MaxInterval = 1000s Peer = 05:0000000000000005 + [1684323072.765692][136414:136416] CHIP:DMG: MoveToState ReadClient[0x7f58a4014ee0]: Moving to [Subscripti] #6. on the 6th reference device(RD1A), send a Subscribe request messages having 3 different paths from RD1A to the DUT and verify that the Subscription from RD1A gets INVALID_ACTION and the previous subscriptions from RD2, RD3, RD4 and RD5 are not affected. - basicinformation subscribe product-id 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 - [1683024005.367756][20746:20748] CHIP:DMG: StatusResponseMessage = - [1683024005.367820][20746:20748] CHIP:DMG: { - [1683024005.367876][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683024005.367936][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683024005.367992][20746:20748] CHIP:DMG: } - [1683024005.368048][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683024005.368228][20746:20748] CHIP:EM: <<< [E:64674i S:8831 M:127649869 (Ack:60224523)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) - [1683024005.368310][20746:20748] CHIP:IN: (S) Sending msg 127649869 on secure session with LSID: 8831 - - basicinformation subscribe software-version 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 - [1683024012.704591][20746:20748] CHIP:EM: Rxd Ack; Removing MessageCounter:127649870 from Retrans Table on exchange 64675i - [1683024012.704702][20746:20748] CHIP:DMG: StatusResponseMessage = - [1683024012.704765][20746:20748] CHIP:DMG: { - [1683024012.704821][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683024012.704882][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683024012.704937][20746:20748] CHIP:DMG: } - [1683024012.704992][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683024012.705166][20746:20748] CHIP:EM: <<< [E:64675i S:8831 M:127649871 (Ack:60224525)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) - [1683024012.705250][20746:20748] CHIP:IN: (S) Sending msg 127649871 on secure session with LSID: 8831 - - basicinformation subscribe hardware-version 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 - [1683024021.531533][20746:20748] CHIP:DMG: StatusResponseMessage = - [1683024021.531597][20746:20748] CHIP:DMG: { - [1683024021.531654][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683024021.531715][20746:20748] CHIP:DMG: InteractionModelRevision = 1 - [1683024021.531771][20746:20748] CHIP:DMG: } - [1683024021.531827][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683024021.532007][20746:20748] CHIP:EM: <<< [E:64676i S:8831 M:127649873 (Ack:60224527)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) + any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true --commissioner-nodeid 0x2 + [1684323125.397674][136393:136395] CHIP:EM: Found matching exchange: 41665i, Delegate: 0x7fb510037f20 + [1684323125.397688][136393:136395] CHIP:EM: Rxd Ack; Removing MessageCounter:195269296 from Retrans Table on exchange 41665i + [1684323125.397712][136393:136395] CHIP:DMG: StatusResponseMessage = + [1684323125.397720][136393:136395] CHIP:DMG: { + [1684323125.397726][136393:136395] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1684323125.397734][136393:136395] CHIP:DMG: InteractionModelRevision = 1 + [1684323125.397739][136393:136395] CHIP:DMG: } + [1684323125.397747][136393:136395] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1684323125.397786][136393:136395] CHIP:EM: <<< [E:41665i S:42489 M:195269297 (Ack:24764489)] (S) Msg TX to 7:0000000000000001 [E777] --- Type 0001:01 (IM:StatusResponse) + [1684323125.397798][136393:136395] CHIP:IN: (S) Sending msg 195269297 on secure session with LSID: 42489 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_ILL_3_1_Simulated.yaml similarity index 50% rename from src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_ILL_3_1_Simulated.yaml index f72420c10c2b69..17e4c8b93399e4 100644 --- a/src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ILL_3_1_Simulated.yaml @@ -11,9 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 71.3.1. [TC-ILL-3.1] Attributes with Client as DUT +name: 69.3.1. [TC-ILL-3.1] Attributes with client as DUT PICS: - ILL.C @@ -24,164 +23,39 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Illuminance Measurement" endpoint: 0 tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: ILL.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - sudo ./chip-tool illuminancemeasurement read min-measured-value 1 1 - Verify DUT receives min-measured-value attribute response on the TH(all-clusters-app) Log: - - [1658142106.966504][13946:13946] CHIP:IM: Received Read request - [1658142106.966671][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142106.966738][13946:13946] CHIP:DMG: { - [1658142106.966821][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142106.966887][13946:13946] CHIP:DMG: [ - [1658142106.966947][13946:13946] CHIP:DMG: AttributePathIB = - [1658142106.967035][13946:13946] CHIP:DMG: { - [1658142106.967105][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142106.967209][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142106.967254][13946:13946] CHIP:DMG: Attribute = 0x0000_0001, - [1658142106.967281][13946:13946] CHIP:DMG: } - [1658142106.967320][13946:13946] CHIP:DMG: - [1658142106.967346][13946:13946] CHIP:DMG: ], - [1658142106.967384][13946:13946] CHIP:DMG: - [1658142106.967413][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142106.967447][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142106.967471][13946:13946] CHIP:DMG: }, - [1658142106.967568][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658142106.967676][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - sudo ./chip-tool illuminancemeasurement read max-measured-value 1 1 - Verify DUT receives max-measured-value attribute response on the TH(all-clusters-app) Log: - [1658142397.298817][13946:13946] CHIP:IM: Received Read request - [1658142397.298895][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142397.298932][13946:13946] CHIP:DMG: { - [1658142397.298960][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142397.298986][13946:13946] CHIP:DMG: [ - [1658142397.299020][13946:13946] CHIP:DMG: AttributePathIB = - [1658142397.299047][13946:13946] CHIP:DMG: { - [1658142397.299085][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142397.299125][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142397.299158][13946:13946] CHIP:DMG: Attribute = 0x0000_0002, - [1658142397.299195][13946:13946] CHIP:DMG: } - [1658142397.299223][13946:13946] CHIP:DMG: - [1658142397.299258][13946:13946] CHIP:DMG: ], - [1658142397.299286][13946:13946] CHIP:DMG: - [1658142397.299321][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142397.299346][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142397.299378][13946:13946] CHIP:DMG: }, - [1658142397.299462][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658142397.299556][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + - label: "Read attribute: MeasuredValue" + wait: "readAttribute" + attribute: "MeasuredValue" - sudo ./chip-tool illuminancemeasurement read measured-value 1 1 - Verify DUT receives measured-value attribute response on the TH(all-clusters-app) Log: - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - [1658142471.266188][13946:13946] CHIP:IM: Received Read request - [1658142471.266273][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142471.266303][13946:13946] CHIP:DMG: { - [1658142471.266329][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142471.266358][13946:13946] CHIP:DMG: [ - [1658142471.266386][13946:13946] CHIP:DMG: AttributePathIB = - [1658142471.266417][13946:13946] CHIP:DMG: { - [1658142471.266449][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142471.266486][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142471.266521][13946:13946] CHIP:DMG: Attribute = 0x0000_0000, - [1658142471.266558][13946:13946] CHIP:DMG: } - [1658142471.266593][13946:13946] CHIP:DMG: - [1658142471.266624][13946:13946] CHIP:DMG: ], - [1658142471.266656][13946:13946] CHIP:DMG: - [1658142471.266686][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142471.266714][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142471.266740][13946:13946] CHIP:DMG: }, - [1658142471.266826][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658142471.266939][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: ILL.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + - label: "Read attribute: MinMeasuredValue" + wait: "readAttribute" + attribute: "MinMeasuredValue" - ./chip-tool illuminancemeasurement read tolerance 1 1 - Verify DUT receives tolerance attribute response on the TH(all-clusters-app) Log: - [1658142553.001113][13946:13946] CHIP:IM: Received Read request - [1658142553.001197][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142553.001258][13946:13946] CHIP:DMG: { - [1658142553.001284][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142553.001314][13946:13946] CHIP:DMG: [ - [1658142553.001342][13946:13946] CHIP:DMG: AttributePathIB = - [1658142553.001373][13946:13946] CHIP:DMG: { - [1658142553.001424][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142553.001465][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142553.001501][13946:13946] CHIP:DMG: Attribute = 0x0000_0003, - [1658142553.001536][13946:13946] CHIP:DMG: } - [1658142553.001568][13946:13946] CHIP:DMG: - [1658142553.001598][13946:13946] CHIP:DMG: ], - [1658142553.001630][13946:13946] CHIP:DMG: - [1658142553.001660][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142553.001690][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142553.001717][13946:13946] CHIP:DMG: }, - [1658142553.001801][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] + - label: "Read attribute: MaxMeasuredValue" + wait: "readAttribute" + attribute: "MaxMeasuredValue" + - label: "Read attribute: Tolerance" + wait: "readAttribute" + attribute: "Tolerance" - ./chip-tool illuminancemeasurement read light-sensor-type 1 1 - Verify DUT receives light-sensor-type attribute response on the TH(all-clusters-app) Log: - [1658142581.619138][13946:13946] CHIP:IM: Received Read request - [1658142581.619214][13946:13946] CHIP:DMG: ReadRequestMessage = - [1658142581.619265][13946:13946] CHIP:DMG: { - [1658142581.619288][13946:13946] CHIP:DMG: AttributePathIBs = - [1658142581.619314][13946:13946] CHIP:DMG: [ - [1658142581.619338][13946:13946] CHIP:DMG: AttributePathIB = - [1658142581.619365][13946:13946] CHIP:DMG: { - [1658142581.619393][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658142581.619425][13946:13946] CHIP:DMG: Cluster = 0x400, - [1658142581.619456][13946:13946] CHIP:DMG: Attribute = 0x0000_0004, - [1658142581.619485][13946:13946] CHIP:DMG: } - [1658142581.619512][13946:13946] CHIP:DMG: - [1658142581.619537][13946:13946] CHIP:DMG: ], - [1658142581.619565][13946:13946] CHIP:DMG: - [1658142581.619591][13946:13946] CHIP:DMG: isFabricFiltered = true, - [1658142581.619616][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658142581.619639][13946:13946] CHIP:DMG: }, - [1658142581.619714][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: ILL.C.AM-WRITE - verification: | - No writable attrbute for this cluster - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: ILL.C.AO-WRITE - verification: | - No writable attrbute for this cluster - disabled: true + - label: "Read attribute: LightSensorType" + wait: "readAttribute" + attribute: "LightSensorType" - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" + AttributeList.Commission DUT to TH again" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -244,7 +118,7 @@ tests: - ./chip-tool illuminancemeasurement read min-measured-value 1 1 + ./chip-tool illuminancemeasurement read min-measured-value 1 1 Verify DUT receives min-measured-value attribute response on the TH(all-clusters-minimal-app) Log: @@ -269,7 +143,7 @@ tests: [1658142106.967676][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - ./chip-tool illuminancemeasurement read max-measured-value 1 1 + ./chip-tool illuminancemeasurement read max-measured-value 1 1 Verify DUT receives max-measured-value attribute response on the TH(all-clusters-minimal-app) Log: [1658142397.298817][13946:13946] CHIP:IM: Received Read request @@ -293,7 +167,7 @@ tests: [1658142397.299556][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - ./chip-tool illuminancemeasurement read measured-value 1 1 + ./chip-tool illuminancemeasurement read measured-value 1 1 Verify DUT receives measured-value attribute response on the TH(all-clusters-minimal-app) Log: @@ -316,29 +190,51 @@ tests: [1658142471.266740][13946:13946] CHIP:DMG: }, [1658142471.266826][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports] [1658142471.266939][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: ILL.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool illuminancemeasurement read tolerance 1 1 + ./chip-tool illuminancemeasurement read tolerance 1 1 on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool illuminancemeasurement read light-sensor-type 1 1 on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: ILL.C.AO-WRITE verification: | - No writable attrbute for this cluster - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml index df107b1de3424b..0cc8524324be96 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: " !KEYPADINPUT.S.NV && KEYPADINPUT.S.LK && !KEYPADINPUT.S.NK " + PICS: " !KEYPADINPUT.S.F00 && KEYPADINPUT.S.F01 && !KEYPADINPUT.S.F02 " command: "readAttribute" attribute: "FeatureMap" response: @@ -50,8 +50,8 @@ tests: constraints: type: bitmap32 - - label: "Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not" - PICS: KEYPADINPUT.S.NV + - label: "Given (KEYPADINPUT.S.F00(NV)) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -59,8 +59,8 @@ tests: type: bitmap32 hasMasksSet: [0x1] - - label: "Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not" - PICS: KEYPADINPUT.S.LK + - label: "Given (KEYPADINPUT.S.F01(LK)) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.F01 command: "readAttribute" attribute: "FeatureMap" response: @@ -68,8 +68,8 @@ tests: type: bitmap32 hasMasksSet: [0x2] - - label: "Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not" - PICS: KEYPADINPUT.S.NK + - label: "Given (KEYPADINPUT.S.F02(NK)) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.F02 command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_2.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_2.yaml index eb915a197d5b80..89a9b9646634c5 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_2.yaml @@ -15,7 +15,7 @@ name: 19.3.2. [TC-KEYPADINPUT-3.2] Location Keys Verification PICS: - - KEYPADINPUT.S.LK + - KEYPADINPUT.S.F01 config: nodeId: 0x12344321 @@ -32,7 +32,7 @@ tests: value: nodeId - label: "TH sends CEC Settings Keys(0x0A) to DUT" - PICS: KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp + PICS: KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp command: "SendKey" arguments: values: @@ -44,7 +44,7 @@ tests: value: 0 - label: "TH sends CEC Home Keys(0x09) to DUT" - PICS: KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp + PICS: KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp command: "SendKey" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_3.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_3.yaml index 02c3fd5a104551..22e8f2332fd632 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_3.yaml @@ -15,7 +15,7 @@ name: 19.3.3. [TC-KEYPADINPUT-3.3] Number Keys Verification PICS: - - KEYPADINPUT.S.NK + - KEYPADINPUT.S.F02 config: nodeId: 0x12344321 @@ -32,7 +32,7 @@ tests: value: nodeId - label: "Send Numbers1" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -44,7 +44,7 @@ tests: value: 0 - label: "Send Numbers2" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -56,7 +56,7 @@ tests: value: 0 - label: "Send Numbers3" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -68,7 +68,7 @@ tests: value: 0 - label: "Send Numbers4" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -80,7 +80,7 @@ tests: value: 0 - label: "Send Numbers5" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -92,7 +92,7 @@ tests: value: 0 - label: "Send Numbers6" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -104,7 +104,7 @@ tests: value: 0 - label: "Send Numbers7" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -116,7 +116,7 @@ tests: value: 0 - label: "Send Numbers8" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: @@ -128,7 +128,7 @@ tests: value: 0 - label: "Send Numbers9" - PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK + PICS: KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02 command: "SendKey" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml deleted file mode 100644 index 9d4a00d325272c..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml +++ /dev/null @@ -1,955 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 22.2.3. [TC-LVL-2.3] Attributes with DUT as client - -PICS: - - LVL.C - - LVL.C.AM-READ - - LVL.C.AO-READ - - LVL.C.AM-WRITE - - LVL.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: LVL.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool levelcontrol read current-level 1 1 - Verify DUT receives current-level attribute response on the TH(all-clusters-app) Log: - [1657279115.433005][4417:4417] CHIP:IM: Received Read request - [1657279115.433184][4417:4417] CHIP:DMG: ReadRequestMessage = - [1657279115.433258][4417:4417] CHIP:DMG: { - [1657279115.433313][4417:4417] CHIP:DMG: AttributePathIBs = - [1657279115.433379][4417:4417] CHIP:DMG: [ - [1657279115.433438][4417:4417] CHIP:DMG: AttributePathIB = - [1657279115.433506][4417:4417] CHIP:DMG: { - [1657279115.433572][4417:4417] CHIP:DMG: Endpoint = 0x1, - [1657279115.433703][4417:4417] CHIP:DMG: Cluster = 0x8, - [1657279115.433781][4417:4417] CHIP:DMG: Attribute = 0x0000_0000, - [1657279115.433851][4417:4417] CHIP:DMG: } - [1657279115.433920][4417:4417] CHIP:DMG: - [1657279115.433980][4417:4417] CHIP:DMG: ], - [1657279115.434047][4417:4417] CHIP:DMG: - [1657279115.434109][4417:4417] CHIP:DMG: isFabricFiltered = true, - [1657279115.434169][4417:4417] CHIP:DMG: InteractionModelRevision = 1 - [1657279115.434226][4417:4417] CHIP:DMG: }, - - - ./chip-tool levelcontrol read on-level 1 1 - verify On TH(all-clusters-app) receives the right Read Request Message for the data sent in the above command - [1657279142.246433][4417:4417] CHIP:IM: Received Read request - [1657279142.246605][4417:4417] CHIP:DMG: ReadRequestMessage = - [1657279142.246670][4417:4417] CHIP:DMG: { - [1657279142.246725][4417:4417] CHIP:DMG: AttributePathIBs = - [1657279142.246788][4417:4417] CHIP:DMG: [ - [1657279142.246848][4417:4417] CHIP:DMG: AttributePathIB = - [1657279142.246906][4417:4417] CHIP:DMG: { - [1657279142.246965][4417:4417] CHIP:DMG: Endpoint = 0x1, - [1657279142.247028][4417:4417] CHIP:DMG: Cluster = 0x8, - [1657279142.247100][4417:4417] CHIP:DMG: Attribute = 0x0000_0011, - [1657279142.247164][4417:4417] CHIP:DMG: } - [1657279142.247245][4417:4417] CHIP:DMG: - [1657279142.247310][4417:4417] CHIP:DMG: ], - [1657279142.247375][4417:4417] CHIP:DMG: - [1657279142.247439][4417:4417] CHIP:DMG: isFabricFiltered = true, - [1657279142.247500][4417:4417] CHIP:DMG: InteractionModelRevision = 1 - [1657279142.247552][4417:4417] CHIP:DMG: }, - - - ./chip-tool levelcontrol read options 1 1 - Verify DUT receives options attribute response on the TH(all-clusters-app) Log: - [1657279166.425514][4417:4417] CHIP:IM: Received Read request - [1657279166.425770][4417:4417] CHIP:DMG: ReadRequestMessage = - [1657279166.425842][4417:4417] CHIP:DMG: { - [1657279166.425895][4417:4417] CHIP:DMG: AttributePathIBs = - [1657279166.425960][4417:4417] CHIP:DMG: [ - [1657279166.426018][4417:4417] CHIP:DMG: AttributePathIB = - [1657279166.426093][4417:4417] CHIP:DMG: { - [1657279166.426161][4417:4417] CHIP:DMG: Endpoint = 0x1, - [1657279166.426245][4417:4417] CHIP:DMG: Cluster = 0x8, - [1657279166.426310][4417:4417] CHIP:DMG: Attribute = 0x0000_000F, - [1657279166.426389][4417:4417] CHIP:DMG: } - [1657279166.426465][4417:4417] CHIP:DMG: - [1657279166.426528][4417:4417] CHIP:DMG: ], - [1657279166.426597][4417:4417] CHIP:DMG: - [1657279166.426660][4417:4417] CHIP:DMG: isFabricFiltered = true, - [1657279166.426721][4417:4417] CHIP:DMG: InteractionModelRevision = 1 - [1657279166.426777][4417:4417] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: LVL.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool levelcontrol read remaining-time 1 1 - Verify DUT receives remaining-time attribute response on the TH(all-clusters-app) Log: - 1657913316.919773][3126:3126] CHIP:IM: Received Read request - [1657913316.919880][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913316.919920][3126:3126] CHIP:DMG: { - [1657913316.919952][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913316.919995][3126:3126] CHIP:DMG: [ - [1657913316.920046][3126:3126] CHIP:DMG: AttributePathIB = - [1657913316.920135][3126:3126] CHIP:DMG: { - [1657913316.920176][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913316.920341][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913316.920396][3126:3126] CHIP:DMG: Attribute = 0x0000_0001, - [1657913316.920457][3126:3126] CHIP:DMG: } - [1657913316.920503][3126:3126] CHIP:DMG: - [1657913316.920543][3126:3126] CHIP:DMG: ], - [1657913316.920584][3126:3126] CHIP:DMG: - [1657913316.920622][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913316.920673][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913316.920707][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read min-level 1 1 - Verify DUT receives min-level attribute response on the TH(all-clusters-app) Log: - [1657913332.319502][3126:3126] CHIP:IM: Received Read request - [1657913332.319628][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913332.319675][3126:3126] CHIP:DMG: { - [1657913332.319734][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913332.319782][3126:3126] CHIP:DMG: [ - [1657913332.319826][3126:3126] CHIP:DMG: AttributePathIB = - [1657913332.319898][3126:3126] CHIP:DMG: { - [1657913332.319950][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913332.320006][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913332.320127][3126:3126] CHIP:DMG: Attribute = 0x0000_0002, - [1657913332.320181][3126:3126] CHIP:DMG: } - [1657913332.320239][3126:3126] CHIP:DMG: - [1657913332.320305][3126:3126] CHIP:DMG: ], - [1657913332.320358][3126:3126] CHIP:DMG: - [1657913332.320405][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913332.320470][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913332.320514][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read max-level 1 1 - Verify DUT receives max-level attribute response on the TH(all-clusters-app) Log: - [1657913350.880504][3126:3126] CHIP:IM: Received Read request - [1657913350.880648][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913350.880703][3126:3126] CHIP:DMG: { - [1657913350.880770][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913350.880838][3126:3126] CHIP:DMG: [ - [1657913350.880889][3126:3126] CHIP:DMG: AttributePathIB = - [1657913350.880965][3126:3126] CHIP:DMG: { - [1657913350.881023][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913350.881090][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913350.881175][3126:3126] CHIP:DMG: Attribute = 0x0000_0003, - [1657913350.881243][3126:3126] CHIP:DMG: } - [1657913350.881437][3126:3126] CHIP:DMG: - [1657913350.881496][3126:3126] CHIP:DMG: ], - [1657913350.881576][3126:3126] CHIP:DMG: - [1657913350.881630][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913350.881705][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913350.881756][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read current-frequency 1 1 - Verify DUT receives current-frequency attribute response on the TH(all-clusters-app) Log: - [1657913381.091563][3126:3126] CHIP:IM: Received Read request - [1657913381.091690][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913381.091738][3126:3126] CHIP:DMG: { - [1657913381.091797][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913381.091844][3126:3126] CHIP:DMG: [ - [1657913381.091889][3126:3126] CHIP:DMG: AttributePathIB = - [1657913381.091958][3126:3126] CHIP:DMG: { - [1657913381.092013][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913381.092105][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913381.092178][3126:3126] CHIP:DMG: Attribute = 0x0000_0004, - [1657913381.092233][3126:3126] CHIP:DMG: } - [1657913381.092284][3126:3126] CHIP:DMG: - [1657913381.092348][3126:3126] CHIP:DMG: ], - [1657913381.092400][3126:3126] CHIP:DMG: - [1657913381.092448][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913381.092514][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913381.092557][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read min-frequency 1 1 - Verify DUT receives min-frequency attribute response on the TH(all-clusters-app) Log: - [1657913397.410411][3126:3126] CHIP:IM: Received Read request - [1657913397.410539][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913397.410588][3126:3126] CHIP:DMG: { - [1657913397.410629][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913397.410676][3126:3126] CHIP:DMG: [ - [1657913397.410720][3126:3126] CHIP:DMG: AttributePathIB = - [1657913397.410782][3126:3126] CHIP:DMG: { - [1657913397.410834][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913397.410891][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913397.410948][3126:3126] CHIP:DMG: Attribute = 0x0000_0005, - [1657913397.411002][3126:3126] CHIP:DMG: } - [1657913397.411056][3126:3126] CHIP:DMG: - [1657913397.411103][3126:3126] CHIP:DMG: ], - [1657913397.411161][3126:3126] CHIP:DMG: - [1657913397.411209][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913397.411255][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913397.411298][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read max-frequency 1 1 - Verify DUT receives max-frequency attribute response on the TH(all-clusters-app) Log: - [1657913412.416960][3126:3126] CHIP:IM: Received Read request - [1657913412.417086][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913412.417134][3126:3126] CHIP:DMG: { - [1657913412.417175][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913412.417227][3126:3126] CHIP:DMG: [ - [1657913412.417271][3126:3126] CHIP:DMG: AttributePathIB = - [1657913412.417321][3126:3126] CHIP:DMG: { - [1657913412.417372][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913412.417428][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913412.417487][3126:3126] CHIP:DMG: Attribute = 0x0000_0006, - [1657913412.417542][3126:3126] CHIP:DMG: } - [1657913412.417593][3126:3126] CHIP:DMG: - [1657913412.417642][3126:3126] CHIP:DMG: ], - [1657913412.417693][3126:3126] CHIP:DMG: - [1657913412.417740][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913412.417786][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913412.417822][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read on-off-transition-time 1 1 - Verify DUT receives on-off-transition-time attribute response on the TH(all-clusters-app) Log: - [1657913438.117302][3126:3126] CHIP:IM: Received Read request - [1657913438.117462][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913438.117526][3126:3126] CHIP:DMG: { - [1657913438.117718][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913438.117782][3126:3126] CHIP:DMG: [ - [1657913438.117841][3126:3126] CHIP:DMG: AttributePathIB = - [1657913438.117907][3126:3126] CHIP:DMG: { - [1657913438.117976][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913438.118061][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913438.118137][3126:3126] CHIP:DMG: Attribute = 0x0000_0010, - [1657913438.118206][3126:3126] CHIP:DMG: } - [1657913438.118279][3126:3126] CHIP:DMG: - [1657913438.118347][3126:3126] CHIP:DMG: ], - [1657913438.118415][3126:3126] CHIP:DMG: - [1657913438.118474][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913438.118535][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913438.118592][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read on-transition-time 1 1 - Verify DUT receives on-transition-time attribute response on the TH(all-clusters-app) Log: - [1657913454.127158][3126:3126] CHIP:IM: Received Read request - [1657913454.127241][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913454.127268][3126:3126] CHIP:DMG: { - [1657913454.127291][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913454.127317][3126:3126] CHIP:DMG: [ - [1657913454.127341][3126:3126] CHIP:DMG: AttributePathIB = - [1657913454.127368][3126:3126] CHIP:DMG: { - [1657913454.127396][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913454.127461][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913454.127497][3126:3126] CHIP:DMG: Attribute = 0x0000_0012, - [1657913454.127528][3126:3126] CHIP:DMG: } - [1657913454.127556][3126:3126] CHIP:DMG: - [1657913454.127582][3126:3126] CHIP:DMG: ], - [1657913454.127610][3126:3126] CHIP:DMG: - [1657913Verify in DUT as client side: 454.127636][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913454.127661][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913454.127685][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read off-transition-time 1 1 - Verify DUT receives off-transition-time attribute response on the TH(all-clusters-app) Log: - [1657913518.488375][3126:3126] CHIP:IM: Received Read request - [1657913518.488457][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913518.488486][3126:3126] CHIP:DMG: { - [1657913518.488508][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913518.488534][3126:3126] CHIP:DMG: [ - [1657913518.488558][3126:3126] CHIP:DMG: AttributePathIB = - [1657913518.488585][3126:3126] CHIP:DMG: { - [1657913518.488613][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913518.488649][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913518.488678][3126:3126] CHIP:DMG: Attribute = 0x0000_0013, - [1657913518.488705][3126:3126] CHIP:DMG: } - [1657913518.488733][3126:3126] CHIP:DMG: - [1657913518.488757][3126:3126] CHIP:DMG: ], - [1657913518.488785][3126:3126] CHIP:DMG: - [1657913518.488812][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913518.488837][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913518.488860][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read default-move-rate 1 1 - Verify DUT receives default-move-rate attribute response on the TH(all-clusters-app) Log: - [1657913537.304689][3126:3126] CHIP:IM: Received Read request - [1657913537.304828][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913537.304884][3126:3126] CHIP:DMG: { - [1657913537.304931][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913537.304996][3126:3126] CHIP:DMG: [ - [1657913537.305047][3126:3126] CHIP:DMG: AttributePathIB = - [1657913537.305108][3126:3126] CHIP:DMG: { - [1657913537.305171][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913537.305238][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913537.305304][3126:3126] CHIP:DMG: Attribute = 0x0000_0014, - [1657913537.305372][3126:3126] CHIP:DMG: } - [1657913537.305434][3126:3126] CHIP:DMG: - [1657913537.305607][3126:3126] CHIP:DMG: ], - [1657913537.305675][3126:3126] CHIP:DMG: - [1657913537.305729][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913537.305787][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913537.305836][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read start-up-current-level 1 1 - Verify DUT receives start-up-current-level attribute response on the TH(all-clusters-app) Log: - [1657913554.968190][3126:3126] CHIP:IM: Received Read request - [1657913554.968312][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913554.968343][3126:3126] CHIP:DMG: { - [1657913554.968366][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913554.968393][3126:3126] CHIP:DMG: [ - [1657913554.968416][3126:3126] CHIP:DMG: AttributePathIB = - [1657913554.968444][3126:3126] CHIP:DMG: { - [1657913554.968473][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913554.968513][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913554.968546][3126:3126] CHIP:DMG: Attribute = 0x0000_4000, - [1657913554.968569][3126:3126] CHIP:DMG: } - [1657913554.968594][3126:3126] CHIP:DMG: - [1657913554.968617][3126:3126] CHIP:DMG: ], - [1657913554.968679][3126:3126] CHIP:DMG: - [1657913554.968717][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913554.968743][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913554.968766][3126:3126] CHIP:DMG: }, - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: LVL.C.AM-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool levelcontrol write on-level 5 (replace with your value) 1 1 - Verify DUT receives on-level attribute write response on the TH(all-clusters-app) Log: - [1657913667.893875][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913667.893923][3126:3126] CHIP:DMG: { - [1657913667.893965][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913667.894013][3126:3126] CHIP:DMG: timedRequest = false, - [1657913667.894058][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913667.894112][3126:3126] CHIP:DMG: [ - [1657913667.894157][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913667.894213][3126:3126] CHIP:DMG: { - [1657913667.894264][3126:3126] CHIP:DMG: AttributePathIB = - [1657913667.894322][3126:3126] CHIP:DMG: { - [1657913667.894495][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913667.894561][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913667.894622][3126:3126] CHIP:DMG: Attribute = 0x0000_0011, - [1657913667.894684][3126:3126] CHIP:DMG: } - [1657913667.894744][3126:3126] CHIP:DMG: - [1657913667.894808][3126:3126] CHIP:DMG: Data = 5, - [1657913667.894866][3126:3126] CHIP:DMG: }, - [1657913667.894914][3126:3126] CHIP:DMG: - [1657913667.894957][3126:3126] CHIP:DMG: ], - [1657913667.895010][3126:3126] CHIP:DMG: - [1657913667.895055][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913667.895105][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913667.895148][3126:3126] CHIP:DMG: }, - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: LVL.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool levelcontrol write on-off-transition-time 5 (replace with your own value) 1 1 - Verify DUT receives on-off-transition-time attribute write response on the TH(all-clusters-app) Log: - [1657913716.044424][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913716.044478][3126:3126] CHIP:DMG: { - [1657913716.044527][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913716.044583][3126:3126] CHIP:DMG: timedRequest = false, - [1657913716.044634][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913716.044696][3126:3126] CHIP:DMG: [ - [1657913716.044748][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913716.044806][3126:3126] CHIP:DMG: { - [1657913716.044860][3126:3126] CHIP:DMG: AttributePathIB = - [1657913716.044932][3126:3126] CHIP:DMG: { - [1657913716.044994][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913716.045061][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913716.045137][3126:3126] CHIP:DMG: Attribute = 0x0000_0010, - [1657913716.045202][3126:3126] CHIP:DMG: } - [1657913716.045270][3126:3126] CHIP:DMG: - [1657913716.045344][3126:3126] CHIP:DMG: Data = 5, - [1657913716.045407][3126:3126] CHIP:DMG: }, - [1657913716.045468][3126:3126] CHIP:DMG: - [1657913716.045519][3126:3126] CHIP:DMG: ], - [1657913716.045579][3126:3126] CHIP:DMG: - [1657913716.045630][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913716.045683][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913716.045732][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol write on-transition-time 5 (replace with your value) 1 1 - Verify DUT receives on-transition-time attribute write response on the TH(all-clusters-app) Log: - [1657913743.728014][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913743.728046][3126:3126] CHIP:DMG: { - [1657913743.728145][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913743.728179][3126:3126] CHIP:DMG: timedRequest = false, - [1657913743.728239][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913743.728279][3126:3126] CHIP:DMG: [ - [1657913743.728308][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913743.728351][3126:3126] CHIP:DMG: { - [1657913743.728383][3126:3126] CHIP:DMG: AttributePathIB = - [1657913743.728423][3126:3126] CHIP:DMG: { - [1657913743.728467][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913743.728512][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913743.728553][3126:3126] CHIP:DMG: Attribute = 0x0000_0012, - [1657913743.728591][3126:3126] CHIP:DMG: } - [1657913743.728631][3126:3126] CHIP:DMG: - [1657913743.728671][3126:3126] CHIP:DMG: Data = 5, - [1657913743.728710][3126:3126] CHIP:DMG: }, - [1657913743.728746][3126:3126] CHIP:DMG: - [1657913743.728775][3126:3126] CHIP:DMG: ], - [1657913743.728811][3126:3126] CHIP:DMG: - [1657913743.728842][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913743.728872][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913743.728901][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol write off-transition-time 5 1 1 - Verify DUT receives off-transition-time attribute write response on the TH(all-clusters-app) Log: - - [1657913763.836957][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913763.837010][3126:3126] CHIP:DMG: { - [1657913763.837058][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913763.837119][3126:3126] CHIP:DMG: timedRequest = false, - [1657913763.837170][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913763.837230][3126:3126] CHIP:DMG: [ - [1657913763.837361][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913763.837424][3126:3126] CHIP:DMG: { - [1657913763.837478][3126:3126] CHIP:DMG: AttributePathIB = - [1657913763.837544][3126:3126] CHIP:DMG: { - [1657913763.837580][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913763.837613][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913763.837645][3126:3126] CHIP:DMG: Attribute = 0x0000_0013, - [1657913763.837755][3126:3126] CHIP:DMG: } - [1657913763.837790][3126:3126] CHIP:DMG: - [1657913763.837822][3126:3126] CHIP:DMG: Data = 5, - [1657913763.837850][3126:3126] CHIP:DMG: }, - [1657913763.837880][3126:3126] CHIP:DMG: - [1657913763.837904][3126:3126] CHIP:DMG: ], - [1657913763.837932][3126:3126] CHIP:DMG: - [1657913763.837956][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913763.837981][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913763.838004][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol write default-move-rate 5 1 1 - Verify DUT receives default-move-rate attribute write response on the TH(all-clusters-app) Log: - [1657913781.895720][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913781.895799][3126:3126] CHIP:DMG: { - [1657913781.895824][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913781.895850][3126:3126] CHIP:DMG: timedRequest = false, - [1657913781.895874][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913781.895904][3126:3126] CHIP:DMG: [ - [1657913781.895929][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913781.895956][3126:3126] CHIP:DMG: { - [1657913781.895982][3126:3126] CHIP:DMG: AttributePathIB = - [1657913781.896024][3126:3126] CHIP:DMG: { - [1657913781.896147][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913781.896209][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913781.896247][3126:3126] CHIP:DMG: Attribute = 0x0000_0014, - [1657913781.896278][3126:3126] CHIP:DMG: } - [1657913781.896312][3126:3126] CHIP:DMG: - [1657913781.896345][3126:3126] CHIP:DMG: Data = 5, - [1657913781.896374][3126:3126] CHIP:DMG: }, - [1657913781.896403][3126:3126] CHIP:DMG: - [1657913781.896427][3126:3126] CHIP:DMG: ], - [1657913781.896503][3126:3126] CHIP:DMG: - [1657913781.896531][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913781.896558][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913781.896581][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol write start-up-current-level 5 (replace with your value) 123123 1 - Verify DUT receives start-up-current-level attribute write response on the TH(all-clusters-app) Log: - [1657913811.290764][3126:3126] CHIP:DMG: WriteRequestMessage = - [1657913811.290809][3126:3126] CHIP:DMG: { - [1657913811.290850][3126:3126] CHIP:DMG: suppressResponse = false, - [1657913811.290898][3126:3126] CHIP:DMG: timedRequest = false, - [1657913811.290942][3126:3126] CHIP:DMG: AttributeDataIBs = - [1657913811.290995][3126:3126] CHIP:DMG: [ - [1657913811.291039][3126:3126] CHIP:DMG: AttributeDataIB = - [1657913811.291094][3126:3126] CHIP:DMG: { - [1657913811.291142][3126:3126] CHIP:DMG: AttributePathIB = - [1657913811.291258][3126:3126] CHIP:DMG: { - [1657913811.291326][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913811.291394][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913811.291455][3126:3126] CHIP:DMG: Attribute = 0x0000_4000, - [1657913811.291512][3126:3126] CHIP:DMG: } - [1657913811.291630][3126:3126] CHIP:DMG: - [1657913811.291694][3126:3126] CHIP:DMG: Data = 5, - [1657913811.291748][3126:3126] CHIP:DMG: }, - [1657913811.291805][3126:3126] CHIP:DMG: - [1657913811.291848][3126:3126] CHIP:DMG: ], - [1657913811.291949][3126:3126] CHIP:DMG: - [1657913811.291992][3126:3126] CHIP:DMG: moreChunkedMessages = false, - [1657913811.292017][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913811.292039][3126:3126] CHIP:DMG: }, - disabled: true - - - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it - also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool levelcontrol read current-level 1 1 - Verify DUT receives current-level attribute response on the TH(all-clusters-minimal-app) Log: - [1657913862.815749][3126:3126] CHIP:IM: Received Read request - [1657913862.815884][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913862.815935][3126:3126] CHIP:DMG: { - [1657913862.815975][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913862.816023][3126:3126] CHIP:DMG: [ - [1657913862.816107][3126:3126] CHIP:DMG: AttributePathIB = - [1657913862.816161][3126:3126] CHIP:DMG: { - [1657913862.816212][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913862.816268][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913862.816325][3126:3126] CHIP:DMG: Attribute = 0x0000_0000, - [1657913862.816377][3126:3126] CHIP:DMG: } - [1657913862.816431][3126:3126] CHIP:DMG: - [1657913862.816477][3126:3126] CHIP:DMG: ], - [1657913862.816527][3126:3126] CHIP:DMG: - [1657913862.816573][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913862.816619][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913862.816662][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read on-level 1 1 - Verify DUT receives on-level attribute response on the TH(all-clusters-minimal-app) Log: - [1657913877.850398][3126:3126] CHIP:IM: Received Read request - [1657913877.850525][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913877.850574][3126:3126] CHIP:DMG: { - [1657913877.850614][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913877.850725][3126:3126] CHIP:DMG: [ - [1657913877.850771][3126:3126] CHIP:DMG: AttributePathIB = - [1657913877.850821][3126:3126] CHIP:DMG: { - [1657913877.850872][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913877.850932][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913877.850989][3126:3126] CHIP:DMG: Attribute = 0x0000_0011, - [1657913877.851048][3126:3126] CHIP:DMG: } - [1657913877.851103][3126:3126] CHIP:DMG: - [1657913877.851153][3126:3126] CHIP:DMG: ], - [1657913877.851203][3126:3126] CHIP:DMG: - [1657913877.851251][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913877.851297][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913877.851343][3126:3126] CHIP:DMG: }, - [1657913877.851471][3126:3126] CHIP:DMG: IM - - - ./chip-tool levelcontrol read options 1 1 - Verify DUT receives options attribute response on the TH(all-clusters-minimal-app) Log: - [1657913895.195563][3126:3126] CHIP:IM: Received Read request - [1657913895.195705][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913895.195732][3126:3126] CHIP:DMG: { - [1657913895.195754][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913895.195780][3126:3126] CHIP:DMG: [ - [1657913895.195803][3126:3126] CHIP:DMG: AttributePathIB = - [1657913895.195901][3126:3126] CHIP:DMG: { - [1657913895.195932][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913895.195963][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913895.195993][3126:3126] CHIP:DMG: Attribute = 0x0000_000F, - [1657913895.196022][3126:3126] CHIP:DMG: } - [1657913895.196073][3126:3126] CHIP:DMG: - [1657913895.196101][3126:3126] CHIP:DMG: ], - [1657913895.196161][3126:3126] CHIP:DMG: - [1657913895.196189][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913895.196214][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913895.196236][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read attribute-list 1 1 - Verify DUT receives attribute-list attribute response on the TH(all-clusters-minimal-app) Log: - [1657913906.648918][3126:3126] CHIP:IM: Received Read request - [1657913906.649061][3126:3126] CHIP:DMG: ReadRequestMessage = - [1657913906.649115][3126:3126] CHIP:DMG: { - [1657913906.649162][3126:3126] CHIP:DMG: AttributePathIBs = - [1657913906.649225][3126:3126] CHIP:DMG: [ - [1657913906.649273][3126:3126] CHIP:DMG: AttributePathIB = - [1657913906.649330][3126:3126] CHIP:DMG: { - [1657913906.649389][3126:3126] CHIP:DMG: Endpoint = 0x1, - [1657913906.649462][3126:3126] CHIP:DMG: Cluster = 0x8, - [1657913906.649529][3126:3126] CHIP:DMG: Attribute = 0x0000_FFFB, - [1657913906.649569][3126:3126] CHIP:DMG: } - [1657913906.649593][3126:3126] CHIP:DMG: - [1657913906.649618][3126:3126] CHIP:DMG: ], - [1657913906.649645][3126:3126] CHIP:DMG: - [1657913906.649731][3126:3126] CHIP:DMG: isFabricFiltered = true, - [1657913906.649757][3126:3126] CHIP:DMG: InteractionModelRevision = 1 - [1657913906.649781][3126:3126] CHIP:DMG: }, - - - ./chip-tool levelcontrol read feature-map 1 1 - Verify DUT receives feature-map attribute response on the TH(all-clusters-minimal-app) Log: - [1663070713.467153][4422:4422] CHIP:IM: Received Read request - [1663070713.467242][4422:4422] CHIP:DMG: ReadRequestMessage = - [1663070713.467275][4422:4422] CHIP:DMG: { - [1663070713.467300][4422:4422] CHIP:DMG: AttributePathIBs = - [1663070713.467329][4422:4422] CHIP:DMG: [ - [1663070713.467355][4422:4422] CHIP:DMG: AttributePathIB = - [1663070713.467390][4422:4422] CHIP:DMG: { - [1663070713.467422][4422:4422] CHIP:DMG: Endpoint = 0x1, - [1663070713.467455][4422:4422] CHIP:DMG: Cluster = 0x8, - [1663070713.467487][4422:4422] CHIP:DMG: Attribute = 0x0000_FFFC, - [1663070713.467517][4422:4422] CHIP:DMG: } - [1663070713.467548][4422:4422] CHIP:DMG: - [1663070713.467576][4422:4422] CHIP:DMG: ], - [1663070713.467606][4422:4422] CHIP:DMG: - [1663070713.467635][4422:4422] CHIP:DMG: isFabricFiltered = true, - [1663070713.467663][4422:4422] CHIP:DMG: InteractionModelRevision = 1 - [1663070713.467689][4422:4422] CHIP:DMG: }, - [1663070713.467767][4422:4422] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: LVL.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - TH all-clusters-minimal-app does not support optional attributes - - ./chip-tool levelcontrol read remaining-time 1 1 - Verify DUT(chip-tool) receives remaining-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147148.155292][37702:37702] CHIP:IM: Received Read request - [1663147148.155312][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147148.155315][37702:37702] CHIP:DMG: { - [1663147148.155317][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147148.155320][37702:37702] CHIP:DMG: [ - [1663147148.155323][37702:37702] CHIP:DMG: AttributePathIB = - [1663147148.155326][37702:37702] CHIP:DMG: { - [1663147148.155328][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147148.155331][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147148.155334][37702:37702] CHIP:DMG: Attribute = 0x0000_0001, - [1663147148.155338][37702:37702] CHIP:DMG: } - [1663147148.155341][37702:37702] CHIP:DMG: - [1663147148.155343][37702:37702] CHIP:DMG: ], - [1663147148.155346][37702:37702] CHIP:DMG: - [1663147148.155349][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147148.155351][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147148.155353][37702:37702] CHIP:DMG: }, - [1663147148.155366][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663147148.155376][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - - - ./chip-tool levelcontrol read min-level 1 1 - Verify DUT(chip-tool) receives min-level attribute response on the TH(all-clusters-minimal-app) Log: - [1663147176.255360][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147176.255364][37702:37702] CHIP:DMG: { - [1663147176.255368][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147176.255373][37702:37702] CHIP:DMG: [ - [1663147176.255376][37702:37702] CHIP:DMG: AttributePathIB = - [1663147176.255381][37702:37702] CHIP:DMG: { - [1663147176.255385][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147176.255389][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147176.255393][37702:37702] CHIP:DMG: Attribute = 0x0000_0002, - [1663147176.255396][37702:37702] CHIP:DMG: } - [1663147176.255401][37702:37702] CHIP:DMG: - [1663147176.255404][37702:37702] CHIP:DMG: ], - [1663147176.255409][37702:37702] CHIP:DMG: - [1663147176.255413][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147176.255416][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147176.255419][37702:37702] CHIP:DMG: }, - [1663147176.255436][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663147176.255451][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - - ./chip-tool levelcontrol read max-level 1 1 - Verify DUT(chip-tool) receives max-level attribute response on the TH(all-clusters-minimal-app) Log: - [1663147204.133512][37702:37702] CHIP:IM: Received Read request - [1663147204.133528][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147204.133531][37702:37702] CHIP:DMG: { - [1663147204.133533][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147204.133536][37702:37702] CHIP:DMG: [ - [1663147204.133538][37702:37702] CHIP:DMG: AttributePathIB = - [1663147204.133541][37702:37702] CHIP:DMG: { - [1663147204.133543][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147204.133546][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147204.133549][37702:37702] CHIP:DMG: Attribute = 0x0000_0003, - [1663147204.133551][37702:37702] CHIP:DMG: } - [1663147204.133553][37702:37702] CHIP:DMG: - [1663147204.133555][37702:37702] CHIP:DMG: ], - [1663147204.133558][37702:37702] CHIP:DMG: - [1663147204.133561][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147204.133563][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147204.133565][37702:37702] CHIP:DMG: }, - [1663147204.133577][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663147204.133587][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool levelcontrol read current-frequency 1 1 - Verify DUT(chip-tool) receives current-frequency attribute response on the TH(all-clusters-minimal-app) Log: - [1663147223.228680][37702:37702] CHIP:IM: Received Read request - [1663147223.228702][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147223.228706][37702:37702] CHIP:DMG: { - [1663147223.228710][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147223.228714][37702:37702] CHIP:DMG: [ - [1663147223.228717][37702:37702] CHIP:DMG: AttributePathIB = - [1663147223.228722][37702:37702] CHIP:DMG: { - [1663147223.228726][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147223.228730][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147223.228734][37702:37702] CHIP:DMG: Attribute = 0x0000_0004, - [1663147223.228738][37702:37702] CHIP:DMG: } - [1663147223.228742][37702:37702] CHIP:DMG: - [1663147223.228746][37702:37702] CHIP:DMG: ], - [1663147223.228751][37702:37702] CHIP:DMG: - [1663147223.228754][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147223.228758][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147223.228761][37702:37702] CHIP:DMG: }, - [1663147223.228780][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool levelcontrol read min-frequency 1 1 - Verify DUT(chip-tool) receives min-frequency attribute response on the TH(all-clusters-minimal-app) Log: - [1663147242.442251][37702:37702] CHIP:IM: Received Read request - [1663147242.442277][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147242.442282][37702:37702] CHIP:DMG: { - [1663147242.442287][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147242.442293][37702:37702] CHIP:DMG: [ - [1663147242.442298][37702:37702] CHIP:DMG: AttributePathIB = - [1663147242.442304][37702:37702] CHIP:DMG: { - [1663147242.442309][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147242.442315][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147242.442320][37702:37702] CHIP:DMG: Attribute = 0x0000_0005, - [1663147242.442324][37702:37702] CHIP:DMG: } - [1663147242.442331][37702:37702] CHIP:DMG: - [1663147242.442336][37702:37702] CHIP:DMG: ], - [1663147242.442342][37702:37702] CHIP:DMG: - [1663147242.442347][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147242.442352][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147242.442355][37702:37702] CHIP:DMG: }, - [1663147242.442378][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool levelcontrol read max-frequency 1 1 - Verify DUT(chip-tool) receives max-frequency attribute response on the TH(all-clusters-minimal-app) Log: - [1663147259.687422][37702:37702] CHIP:IM: Received Read request - [1663147259.687445][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147259.687450][37702:37702] CHIP:DMG: { - [1663147259.687454][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147259.687458][37702:37702] CHIP:DMG: [ - [1663147259.687463][37702:37702] CHIP:DMG: AttributePathIB = - [1663147259.687469][37702:37702] CHIP:DMG: { - [1663147259.687474][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147259.687478][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147259.687481][37702:37702] CHIP:DMG: Attribute = 0x0000_0006, - [1663147259.687485][37702:37702] CHIP:DMG: } - [1663147259.687490][37702:37702] CHIP:DMG: - [1663147259.687494][37702:37702] CHIP:DMG: ], - [1663147259.687500][37702:37702] CHIP:DMG: - [1663147259.687504][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147259.687509][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147259.687513][37702:37702] CHIP:DMG: }, - [1663147259.687532][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool levelcontrol read on-off-transition-time 1 1 - Verify DUT(chip-tool) receives on-off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147276.525081][37702:37702] CHIP:IM: Received Read request - [1663147276.525105][37702:37702] CHIP:DMG: ReadRequestMessage = - [1663147276.525110][37702:37702] CHIP:DMG: { - [1663147276.525115][37702:37702] CHIP:DMG: AttributePathIBs = - [1663147276.525120][37702:37702] CHIP:DMG: [ - [1663147276.525124][37702:37702] CHIP:DMG: AttributePathIB = - [1663147276.525129][37702:37702] CHIP:DMG: { - [1663147276.525133][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147276.525138][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147276.525143][37702:37702] CHIP:DMG: Attribute = 0x0000_0010, - [1663147276.525148][37702:37702] CHIP:DMG: } - [1663147276.525155][37702:37702] CHIP:DMG: - [1663147276.525159][37702:37702] CHIP:DMG: ], - [1663147276.525166][37702:37702] CHIP:DMG: - [1663147276.525171][37702:37702] CHIP:DMG: isFabricFiltered = true, - [1663147276.525177][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147276.525181][37702:37702] CHIP:DMG: }, - [1663147276.525202][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: LVL.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - TH all-clusters-minimal-app does not support optional attributes - - ./chip-tool levelcontrol write on-off-transition-time 5 1 1 - Verify DUT(chip-tool) receives on-off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147558.231731][37702:37702] CHIP:IM: Received Write request - [1663147558.231735][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147558.231746][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147558.231749][37702:37702] CHIP:DMG: { - [1663147558.231753][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147558.231757][37702:37702] CHIP:DMG: timedRequest = false, - [1663147558.231760][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147558.231765][37702:37702] CHIP:DMG: [ - [1663147558.231767][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147558.231771][37702:37702] CHIP:DMG: { - [1663147558.231773][37702:37702] CHIP:DMG: AttributePathIB = - [1663147558.231777][37702:37702] CHIP:DMG: { - [1663147558.231781][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147558.231784][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147558.231789][37702:37702] CHIP:DMG: Attribute = 0x0000_0010, - [1663147558.231792][37702:37702] CHIP:DMG: } - [1663147558.231795][37702:37702] CHIP:DMG: - [1663147558.231798][37702:37702] CHIP:DMG: Data = 5, - [1663147558.231801][37702:37702] CHIP:DMG: }, - [1663147558.231805][37702:37702] CHIP:DMG: - [1663147558.231809][37702:37702] CHIP:DMG: ], - [1663147558.231813][37702:37702] CHIP:DMG: - [1663147558.231816][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147558.231820][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147558.231822][37702:37702] CHIP:DMG: }, - [1663147558.231844][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - - ./chip-tool levelcontrol write on-transition-time 5 1 1 - Verify DUT(chip-tool) receives on-transition-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147582.702165][37702:37702] CHIP:IM: Received Write request - [1663147582.702168][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147582.702179][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147582.702182][37702:37702] CHIP:DMG: { - [1663147582.702185][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147582.702188][37702:37702] CHIP:DMG: timedRequest = false, - [1663147582.702191][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147582.702196][37702:37702] CHIP:DMG: [ - [1663147582.702199][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147582.702202][37702:37702] CHIP:DMG: { - [1663147582.702205][37702:37702] CHIP:DMG: AttributePathIB = - [1663147582.702209][37702:37702] CHIP:DMG: { - [1663147582.702212][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147582.702216][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147582.702219][37702:37702] CHIP:DMG: Attribute = 0x0000_0012, - [1663147582.702222][37702:37702] CHIP:DMG: } - [1663147582.702226][37702:37702] CHIP:DMG: - [1663147582.702230][37702:37702] CHIP:DMG: Data = 5, - [1663147582.702233][37702:37702] CHIP:DMG: }, - [1663147582.702236][37702:37702] CHIP:DMG: - [1663147582.702239][37702:37702] CHIP:DMG: ], - [1663147582.702243][37702:37702] CHIP:DMG: - [1663147582.702246][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147582.702248][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147582.702252][37702:37702] CHIP:DMG: }, - [1663147582.702271][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - - ./chip-tool levelcontrol write off-transition-time 5 1 1 - Verify DUT(chip-tool) receives off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: - [1663147605.317885][37702:37702] CHIP:IM: Received Write request - [1663147605.317891][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147605.317910][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147605.317915][37702:37702] CHIP:DMG: { - [1663147605.317920][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147605.317925][37702:37702] CHIP:DMG: timedRequest = false, - [1663147605.317930][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147605.317936][37702:37702] CHIP:DMG: [ - [1663147605.317941][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147605.317945][37702:37702] CHIP:DMG: { - [1663147605.317950][37702:37702] CHIP:DMG: AttributePathIB = - [1663147605.317956][37702:37702] CHIP:DMG: { - [1663147605.317962][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147605.317968][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147605.317973][37702:37702] CHIP:DMG: Attribute = 0x0000_0013, - [1663147605.317978][37702:37702] CHIP:DMG: } - [1663147605.317985][37702:37702] CHIP:DMG: - [1663147605.317990][37702:37702] CHIP:DMG: Data = 5, - [1663147605.317996][37702:37702] CHIP:DMG: }, - [1663147605.318002][37702:37702] CHIP:DMG: - [1663147605.318007][37702:37702] CHIP:DMG: ], - [1663147605.318014][37702:37702] CHIP:DMG: - [1663147605.318018][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147605.318024][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147605.318028][37702:37702] CHIP:DMG: }, - [1663147605.318058][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - - ./chip-tool levelcontrol write default-move-rate 5 1 1 - Verify DUT(chip-tool) receives default-move-rate attribute response on the TH(all-clusters-minimal-app) Log: - [1663147644.857538][37702:37702] CHIP:IM: Received Write request - [1663147644.857541][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147644.857552][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147644.857555][37702:37702] CHIP:DMG: { - [1663147644.857557][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147644.857560][37702:37702] CHIP:DMG: timedRequest = false, - [1663147644.857562][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147644.857566][37702:37702] CHIP:DMG: [ - [1663147644.857568][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147644.857571][37702:37702] CHIP:DMG: { - [1663147644.857574][37702:37702] CHIP:DMG: AttributePathIB = - [1663147644.857577][37702:37702] CHIP:DMG: { - [1663147644.857580][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147644.857582][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147644.857585][37702:37702] CHIP:DMG: Attribute = 0x0000_0014, - [1663147644.857587][37702:37702] CHIP:DMG: } - [1663147644.857591][37702:37702] CHIP:DMG: - [1663147644.857594][37702:37702] CHIP:DMG: Data = 5, - [1663147644.857596][37702:37702] CHIP:DMG: }, - [1663147644.857601][37702:37702] CHIP:DMG: - [1663147644.857603][37702:37702] CHIP:DMG: ], - [1663147644.857606][37702:37702] CHIP:DMG: - [1663147644.857609][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147644.857611][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147644.857613][37702:37702] CHIP:DMG: }, - [1663147644.857629][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - - ./chip-tool levelcontrol write start-up-current-level 5 1 1 - Verify DUT(chip-tool) receives start-up-current-level attribute response on the TH(all-clusters-minimal-app) Log: - [1663147665.149448][37702:37702] CHIP:IM: Received Write request - [1663147665.149453][37702:37702] CHIP:DMG: IM WH moving to [Initialized] - [1663147665.149474][37702:37702] CHIP:DMG: WriteRequestMessage = - [1663147665.149480][37702:37702] CHIP:DMG: { - [1663147665.149486][37702:37702] CHIP:DMG: suppressResponse = false, - [1663147665.149492][37702:37702] CHIP:DMG: timedRequest = false, - [1663147665.149497][37702:37702] CHIP:DMG: AttributeDataIBs = - [1663147665.149506][37702:37702] CHIP:DMG: [ - [1663147665.149511][37702:37702] CHIP:DMG: AttributeDataIB = - [1663147665.149520][37702:37702] CHIP:DMG: { - [1663147665.149525][37702:37702] CHIP:DMG: AttributePathIB = - [1663147665.149532][37702:37702] CHIP:DMG: { - [1663147665.149539][37702:37702] CHIP:DMG: Endpoint = 0x1, - [1663147665.149545][37702:37702] CHIP:DMG: Cluster = 0x8, - [1663147665.149552][37702:37702] CHIP:DMG: Attribute = 0x0000_4000, - [1663147665.149558][37702:37702] CHIP:DMG: } - [1663147665.149565][37702:37702] CHIP:DMG: - [1663147665.149572][37702:37702] CHIP:DMG: Data = 5, - [1663147665.149578][37702:37702] CHIP:DMG: }, - [1663147665.149586][37702:37702] CHIP:DMG: - [1663147665.149590][37702:37702] CHIP:DMG: ], - [1663147665.149598][37702:37702] CHIP:DMG: - [1663147665.149604][37702:37702] CHIP:DMG: moreChunkedMessages = false, - [1663147665.149609][37702:37702] CHIP:DMG: InteractionModelRevision = 1 - [1663147665.149614][37702:37702] CHIP:DMG: }, - [1663147665.149652][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_3_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_3_Simulated.yaml new file mode 100644 index 00000000000000..dfb6ad9787fcf5 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_LVL_2_3_Simulated.yaml @@ -0,0 +1,584 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 21.2.3. [TC-LVL-2.3] Attributes with client as DUT + +PICS: + - LVL.C + - LVL.C.AM-READ + - LVL.C.AO-READ + - LVL.C.AM-WRITE + - LVL.C.AO-WRITE + +config: + nodeId: 0x12344321 + cluster: "Level Control" + endpoint: 1 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "Read mandatory attribute CurrentLevel" + wait: "readAttribute" + attribute: "CurrentLevel" + + - label: "Read mandatory attribute OnLevel" + wait: "readAttribute" + attribute: "OnLevel" + + - label: "Read mandatory attribute Options" + wait: "readAttribute" + attribute: "Options" + + - label: "Read optional attribute RemainingTime" + wait: "readAttribute" + attribute: "RemainingTime" + + - label: "Read optional attribute StartUpCurrentLevel" + wait: "readAttribute" + attribute: "StartUpCurrentLevel" + + - label: "Read optional attribute CurrentFrequency" + wait: "readAttribute" + attribute: "CurrentFrequency" + + - label: "Read optional attribute MinFrequency" + wait: "readAttribute" + attribute: "MinFrequency" + + - label: "Read optional attribute MaxFrequency" + wait: "readAttribute" + attribute: "MaxFrequency" + + - label: "Read optional attribute MinLevel" + wait: "readAttribute" + attribute: "MinLevel" + + - label: "Read optional attribute MaxLevel" + wait: "readAttribute" + attribute: "MaxLevel" + + - label: "Read optional attribute OnOffTransitionTime" + wait: "readAttribute" + attribute: "OnOffTransitionTime" + + - label: "Read optional attribute OnTransitionTime" + wait: "readAttribute" + attribute: "OnTransitionTime" + + - label: "Read optional attribute OffTransitionTime" + wait: "readAttribute" + attribute: "OffTransitionTime" + + - label: "Read optional attribute DefaultMoveRate" + wait: "readAttribute" + attribute: "DefaultMoveRate" + + - label: "Write mandatory attribute OnLevel" + wait: "writeAttribute" + attribute: "OnLevel" + arguments: + value: + + - label: "Write mandatory attribute Options" + wait: "writeAttribute" + attribute: "Options" + arguments: + value: + + - label: "Write optional attribute OnOffTransitionTime" + wait: "writeAttribute" + attribute: "OnOffTransitionTime" + arguments: + value: + + - label: "Write optional attribute OnTransitionTime" + wait: "writeAttribute" + attribute: "OnTransitionTime" + arguments: + value: + + - label: "Write optional attribute OffTransitionTime" + wait: "writeAttribute" + attribute: "OffTransitionTime" + arguments: + value: + + - label: "Write optional attribute DefaultMoveRate" + wait: "writeAttribute" + attribute: "DefaultMoveRate" + arguments: + value: + + - label: "Write optional attribute StartUpCurrentLevel" + wait: "writeAttribute" + attribute: "StartUpCurrentLevel" + arguments: + value: + + - label: + "Configure TH such that it implements mandatory and none of the + optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList.Commission DUT to TH again" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + ./chip-tool levelcontrol read current-level 1 1 + Verify DUT receives current-level attribute response on the TH(all-clusters-minimal-app) Log: + [1657913862.815749][3126:3126] CHIP:IM: Received Read request + [1657913862.815884][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657913862.815935][3126:3126] CHIP:DMG: { + [1657913862.815975][3126:3126] CHIP:DMG: AttributePathIBs = + [1657913862.816023][3126:3126] CHIP:DMG: [ + [1657913862.816107][3126:3126] CHIP:DMG: AttributePathIB = + [1657913862.816161][3126:3126] CHIP:DMG: { + [1657913862.816212][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657913862.816268][3126:3126] CHIP:DMG: Cluster = 0x8, + [1657913862.816325][3126:3126] CHIP:DMG: Attribute = 0x0000_0000, + [1657913862.816377][3126:3126] CHIP:DMG: } + [1657913862.816431][3126:3126] CHIP:DMG: + [1657913862.816477][3126:3126] CHIP:DMG: ], + [1657913862.816527][3126:3126] CHIP:DMG: + [1657913862.816573][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657913862.816619][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657913862.816662][3126:3126] CHIP:DMG: }, + + + ./chip-tool levelcontrol read on-level 1 1 + Verify DUT receives on-level attribute response on the TH(all-clusters-minimal-app) Log: + [1657913877.850398][3126:3126] CHIP:IM: Received Read request + [1657913877.850525][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657913877.850574][3126:3126] CHIP:DMG: { + [1657913877.850614][3126:3126] CHIP:DMG: AttributePathIBs = + [1657913877.850725][3126:3126] CHIP:DMG: [ + [1657913877.850771][3126:3126] CHIP:DMG: AttributePathIB = + [1657913877.850821][3126:3126] CHIP:DMG: { + [1657913877.850872][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657913877.850932][3126:3126] CHIP:DMG: Cluster = 0x8, + [1657913877.850989][3126:3126] CHIP:DMG: Attribute = 0x0000_0011, + [1657913877.851048][3126:3126] CHIP:DMG: } + [1657913877.851103][3126:3126] CHIP:DMG: + [1657913877.851153][3126:3126] CHIP:DMG: ], + [1657913877.851203][3126:3126] CHIP:DMG: + [1657913877.851251][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657913877.851297][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657913877.851343][3126:3126] CHIP:DMG: }, + [1657913877.851471][3126:3126] CHIP:DMG: IM + + + ./chip-tool levelcontrol read options 1 1 + Verify DUT receives options attribute response on the TH(all-clusters-minimal-app) Log: + [1657913895.195563][3126:3126] CHIP:IM: Received Read request + [1657913895.195705][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657913895.195732][3126:3126] CHIP:DMG: { + [1657913895.195754][3126:3126] CHIP:DMG: AttributePathIBs = + [1657913895.195780][3126:3126] CHIP:DMG: [ + [1657913895.195803][3126:3126] CHIP:DMG: AttributePathIB = + [1657913895.195901][3126:3126] CHIP:DMG: { + [1657913895.195932][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657913895.195963][3126:3126] CHIP:DMG: Cluster = 0x8, + [1657913895.195993][3126:3126] CHIP:DMG: Attribute = 0x0000_000F, + [1657913895.196022][3126:3126] CHIP:DMG: } + [1657913895.196073][3126:3126] CHIP:DMG: + [1657913895.196101][3126:3126] CHIP:DMG: ], + [1657913895.196161][3126:3126] CHIP:DMG: + [1657913895.196189][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657913895.196214][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657913895.196236][3126:3126] CHIP:DMG: }, + + + ./chip-tool levelcontrol read attribute-list 1 1 + Verify DUT receives attribute-list attribute response on the TH(all-clusters-minimal-app) Log: + [1657913906.648918][3126:3126] CHIP:IM: Received Read request + [1657913906.649061][3126:3126] CHIP:DMG: ReadRequestMessage = + [1657913906.649115][3126:3126] CHIP:DMG: { + [1657913906.649162][3126:3126] CHIP:DMG: AttributePathIBs = + [1657913906.649225][3126:3126] CHIP:DMG: [ + [1657913906.649273][3126:3126] CHIP:DMG: AttributePathIB = + [1657913906.649330][3126:3126] CHIP:DMG: { + [1657913906.649389][3126:3126] CHIP:DMG: Endpoint = 0x1, + [1657913906.649462][3126:3126] CHIP:DMG: Cluster = 0x8, + [1657913906.649529][3126:3126] CHIP:DMG: Attribute = 0x0000_FFFB, + [1657913906.649569][3126:3126] CHIP:DMG: } + [1657913906.649593][3126:3126] CHIP:DMG: + [1657913906.649618][3126:3126] CHIP:DMG: ], + [1657913906.649645][3126:3126] CHIP:DMG: + [1657913906.649731][3126:3126] CHIP:DMG: isFabricFiltered = true, + [1657913906.649757][3126:3126] CHIP:DMG: InteractionModelRevision = 1 + [1657913906.649781][3126:3126] CHIP:DMG: }, + + + ./chip-tool levelcontrol read feature-map 1 1 + Verify DUT receives feature-map attribute response on the TH(all-clusters-minimal-app) Log: + [1663070713.467153][4422:4422] CHIP:IM: Received Read request + [1663070713.467242][4422:4422] CHIP:DMG: ReadRequestMessage = + [1663070713.467275][4422:4422] CHIP:DMG: { + [1663070713.467300][4422:4422] CHIP:DMG: AttributePathIBs = + [1663070713.467329][4422:4422] CHIP:DMG: [ + [1663070713.467355][4422:4422] CHIP:DMG: AttributePathIB = + [1663070713.467390][4422:4422] CHIP:DMG: { + [1663070713.467422][4422:4422] CHIP:DMG: Endpoint = 0x1, + [1663070713.467455][4422:4422] CHIP:DMG: Cluster = 0x8, + [1663070713.467487][4422:4422] CHIP:DMG: Attribute = 0x0000_FFFC, + [1663070713.467517][4422:4422] CHIP:DMG: } + [1663070713.467548][4422:4422] CHIP:DMG: + [1663070713.467576][4422:4422] CHIP:DMG: ], + [1663070713.467606][4422:4422] CHIP:DMG: + [1663070713.467635][4422:4422] CHIP:DMG: isFabricFiltered = true, + [1663070713.467663][4422:4422] CHIP:DMG: InteractionModelRevision = 1 + [1663070713.467689][4422:4422] CHIP:DMG: }, + [1663070713.467767][4422:4422] CHIP:DMG: IM RH moving to [GeneratingReports] + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT reads all supported optional attributes from TH one at a time in + a manufacturer specific order" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + TH all-clusters-minimal-app does not support optional attributes + + ./chip-tool levelcontrol read remaining-time 1 1 + Verify DUT(chip-tool) receives remaining-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147148.155292][37702:37702] CHIP:IM: Received Read request + [1663147148.155312][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147148.155315][37702:37702] CHIP:DMG: { + [1663147148.155317][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147148.155320][37702:37702] CHIP:DMG: [ + [1663147148.155323][37702:37702] CHIP:DMG: AttributePathIB = + [1663147148.155326][37702:37702] CHIP:DMG: { + [1663147148.155328][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147148.155331][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147148.155334][37702:37702] CHIP:DMG: Attribute = 0x0000_0001, + [1663147148.155338][37702:37702] CHIP:DMG: } + [1663147148.155341][37702:37702] CHIP:DMG: + [1663147148.155343][37702:37702] CHIP:DMG: ], + [1663147148.155346][37702:37702] CHIP:DMG: + [1663147148.155349][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147148.155351][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147148.155353][37702:37702] CHIP:DMG: }, + [1663147148.155366][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + [1663147148.155376][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + + + ./chip-tool levelcontrol read min-level 1 1 + Verify DUT(chip-tool) receives min-level attribute response on the TH(all-clusters-minimal-app) Log: + [1663147176.255360][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147176.255364][37702:37702] CHIP:DMG: { + [1663147176.255368][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147176.255373][37702:37702] CHIP:DMG: [ + [1663147176.255376][37702:37702] CHIP:DMG: AttributePathIB = + [1663147176.255381][37702:37702] CHIP:DMG: { + [1663147176.255385][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147176.255389][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147176.255393][37702:37702] CHIP:DMG: Attribute = 0x0000_0002, + [1663147176.255396][37702:37702] CHIP:DMG: } + [1663147176.255401][37702:37702] CHIP:DMG: + [1663147176.255404][37702:37702] CHIP:DMG: ], + [1663147176.255409][37702:37702] CHIP:DMG: + [1663147176.255413][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147176.255416][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147176.255419][37702:37702] CHIP:DMG: }, + [1663147176.255436][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + [1663147176.255451][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + + ./chip-tool levelcontrol read max-level 1 1 + Verify DUT(chip-tool) receives max-level attribute response on the TH(all-clusters-minimal-app) Log: + [1663147204.133512][37702:37702] CHIP:IM: Received Read request + [1663147204.133528][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147204.133531][37702:37702] CHIP:DMG: { + [1663147204.133533][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147204.133536][37702:37702] CHIP:DMG: [ + [1663147204.133538][37702:37702] CHIP:DMG: AttributePathIB = + [1663147204.133541][37702:37702] CHIP:DMG: { + [1663147204.133543][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147204.133546][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147204.133549][37702:37702] CHIP:DMG: Attribute = 0x0000_0003, + [1663147204.133551][37702:37702] CHIP:DMG: } + [1663147204.133553][37702:37702] CHIP:DMG: + [1663147204.133555][37702:37702] CHIP:DMG: ], + [1663147204.133558][37702:37702] CHIP:DMG: + [1663147204.133561][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147204.133563][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147204.133565][37702:37702] CHIP:DMG: }, + [1663147204.133577][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + [1663147204.133587][37702:37702] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + ./chip-tool levelcontrol read current-frequency 1 1 + Verify DUT(chip-tool) receives current-frequency attribute response on the TH(all-clusters-minimal-app) Log: + [1663147223.228680][37702:37702] CHIP:IM: Received Read request + [1663147223.228702][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147223.228706][37702:37702] CHIP:DMG: { + [1663147223.228710][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147223.228714][37702:37702] CHIP:DMG: [ + [1663147223.228717][37702:37702] CHIP:DMG: AttributePathIB = + [1663147223.228722][37702:37702] CHIP:DMG: { + [1663147223.228726][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147223.228730][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147223.228734][37702:37702] CHIP:DMG: Attribute = 0x0000_0004, + [1663147223.228738][37702:37702] CHIP:DMG: } + [1663147223.228742][37702:37702] CHIP:DMG: + [1663147223.228746][37702:37702] CHIP:DMG: ], + [1663147223.228751][37702:37702] CHIP:DMG: + [1663147223.228754][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147223.228758][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147223.228761][37702:37702] CHIP:DMG: }, + [1663147223.228780][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + + ./chip-tool levelcontrol read min-frequency 1 1 + Verify DUT(chip-tool) receives min-frequency attribute response on the TH(all-clusters-minimal-app) Log: + [1663147242.442251][37702:37702] CHIP:IM: Received Read request + [1663147242.442277][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147242.442282][37702:37702] CHIP:DMG: { + [1663147242.442287][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147242.442293][37702:37702] CHIP:DMG: [ + [1663147242.442298][37702:37702] CHIP:DMG: AttributePathIB = + [1663147242.442304][37702:37702] CHIP:DMG: { + [1663147242.442309][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147242.442315][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147242.442320][37702:37702] CHIP:DMG: Attribute = 0x0000_0005, + [1663147242.442324][37702:37702] CHIP:DMG: } + [1663147242.442331][37702:37702] CHIP:DMG: + [1663147242.442336][37702:37702] CHIP:DMG: ], + [1663147242.442342][37702:37702] CHIP:DMG: + [1663147242.442347][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147242.442352][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147242.442355][37702:37702] CHIP:DMG: }, + [1663147242.442378][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + + ./chip-tool levelcontrol read max-frequency 1 1 + Verify DUT(chip-tool) receives max-frequency attribute response on the TH(all-clusters-minimal-app) Log: + [1663147259.687422][37702:37702] CHIP:IM: Received Read request + [1663147259.687445][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147259.687450][37702:37702] CHIP:DMG: { + [1663147259.687454][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147259.687458][37702:37702] CHIP:DMG: [ + [1663147259.687463][37702:37702] CHIP:DMG: AttributePathIB = + [1663147259.687469][37702:37702] CHIP:DMG: { + [1663147259.687474][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147259.687478][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147259.687481][37702:37702] CHIP:DMG: Attribute = 0x0000_0006, + [1663147259.687485][37702:37702] CHIP:DMG: } + [1663147259.687490][37702:37702] CHIP:DMG: + [1663147259.687494][37702:37702] CHIP:DMG: ], + [1663147259.687500][37702:37702] CHIP:DMG: + [1663147259.687504][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147259.687509][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147259.687513][37702:37702] CHIP:DMG: }, + [1663147259.687532][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + + ./chip-tool levelcontrol read on-off-transition-time 1 1 + Verify DUT(chip-tool) receives on-off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147276.525081][37702:37702] CHIP:IM: Received Read request + [1663147276.525105][37702:37702] CHIP:DMG: ReadRequestMessage = + [1663147276.525110][37702:37702] CHIP:DMG: { + [1663147276.525115][37702:37702] CHIP:DMG: AttributePathIBs = + [1663147276.525120][37702:37702] CHIP:DMG: [ + [1663147276.525124][37702:37702] CHIP:DMG: AttributePathIB = + [1663147276.525129][37702:37702] CHIP:DMG: { + [1663147276.525133][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147276.525138][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147276.525143][37702:37702] CHIP:DMG: Attribute = 0x0000_0010, + [1663147276.525148][37702:37702] CHIP:DMG: } + [1663147276.525155][37702:37702] CHIP:DMG: + [1663147276.525159][37702:37702] CHIP:DMG: ], + [1663147276.525166][37702:37702] CHIP:DMG: + [1663147276.525171][37702:37702] CHIP:DMG: isFabricFiltered = true, + [1663147276.525177][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147276.525181][37702:37702] CHIP:DMG: }, + [1663147276.525202][37702:37702] CHIP:DMG: IM RH moving to [GeneratingReports] + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT writes a suitable value to all supported optional attributes on + the TH one at a time in a manufacturer specific order" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + TH all-clusters-minimal-app does not support optional attributes + + ./chip-tool levelcontrol write on-off-transition-time 5 1 1 + Verify DUT(chip-tool) receives on-off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147558.231731][37702:37702] CHIP:IM: Received Write request + [1663147558.231735][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147558.231746][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147558.231749][37702:37702] CHIP:DMG: { + [1663147558.231753][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147558.231757][37702:37702] CHIP:DMG: timedRequest = false, + [1663147558.231760][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147558.231765][37702:37702] CHIP:DMG: [ + [1663147558.231767][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147558.231771][37702:37702] CHIP:DMG: { + [1663147558.231773][37702:37702] CHIP:DMG: AttributePathIB = + [1663147558.231777][37702:37702] CHIP:DMG: { + [1663147558.231781][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147558.231784][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147558.231789][37702:37702] CHIP:DMG: Attribute = 0x0000_0010, + [1663147558.231792][37702:37702] CHIP:DMG: } + [1663147558.231795][37702:37702] CHIP:DMG: + [1663147558.231798][37702:37702] CHIP:DMG: Data = 5, + [1663147558.231801][37702:37702] CHIP:DMG: }, + [1663147558.231805][37702:37702] CHIP:DMG: + [1663147558.231809][37702:37702] CHIP:DMG: ], + [1663147558.231813][37702:37702] CHIP:DMG: + [1663147558.231816][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147558.231820][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147558.231822][37702:37702] CHIP:DMG: }, + [1663147558.231844][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + + ./chip-tool levelcontrol write on-transition-time 5 1 1 + Verify DUT(chip-tool) receives on-transition-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147582.702165][37702:37702] CHIP:IM: Received Write request + [1663147582.702168][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147582.702179][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147582.702182][37702:37702] CHIP:DMG: { + [1663147582.702185][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147582.702188][37702:37702] CHIP:DMG: timedRequest = false, + [1663147582.702191][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147582.702196][37702:37702] CHIP:DMG: [ + [1663147582.702199][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147582.702202][37702:37702] CHIP:DMG: { + [1663147582.702205][37702:37702] CHIP:DMG: AttributePathIB = + [1663147582.702209][37702:37702] CHIP:DMG: { + [1663147582.702212][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147582.702216][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147582.702219][37702:37702] CHIP:DMG: Attribute = 0x0000_0012, + [1663147582.702222][37702:37702] CHIP:DMG: } + [1663147582.702226][37702:37702] CHIP:DMG: + [1663147582.702230][37702:37702] CHIP:DMG: Data = 5, + [1663147582.702233][37702:37702] CHIP:DMG: }, + [1663147582.702236][37702:37702] CHIP:DMG: + [1663147582.702239][37702:37702] CHIP:DMG: ], + [1663147582.702243][37702:37702] CHIP:DMG: + [1663147582.702246][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147582.702248][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147582.702252][37702:37702] CHIP:DMG: }, + [1663147582.702271][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + + ./chip-tool levelcontrol write off-transition-time 5 1 1 + Verify DUT(chip-tool) receives off-transition-time attribute response on the TH(all-clusters-minimal-app) Log: + [1663147605.317885][37702:37702] CHIP:IM: Received Write request + [1663147605.317891][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147605.317910][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147605.317915][37702:37702] CHIP:DMG: { + [1663147605.317920][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147605.317925][37702:37702] CHIP:DMG: timedRequest = false, + [1663147605.317930][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147605.317936][37702:37702] CHIP:DMG: [ + [1663147605.317941][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147605.317945][37702:37702] CHIP:DMG: { + [1663147605.317950][37702:37702] CHIP:DMG: AttributePathIB = + [1663147605.317956][37702:37702] CHIP:DMG: { + [1663147605.317962][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147605.317968][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147605.317973][37702:37702] CHIP:DMG: Attribute = 0x0000_0013, + [1663147605.317978][37702:37702] CHIP:DMG: } + [1663147605.317985][37702:37702] CHIP:DMG: + [1663147605.317990][37702:37702] CHIP:DMG: Data = 5, + [1663147605.317996][37702:37702] CHIP:DMG: }, + [1663147605.318002][37702:37702] CHIP:DMG: + [1663147605.318007][37702:37702] CHIP:DMG: ], + [1663147605.318014][37702:37702] CHIP:DMG: + [1663147605.318018][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147605.318024][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147605.318028][37702:37702] CHIP:DMG: }, + [1663147605.318058][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + + ./chip-tool levelcontrol write default-move-rate 5 1 1 + Verify DUT(chip-tool) receives default-move-rate attribute response on the TH(all-clusters-minimal-app) Log: + [1663147644.857538][37702:37702] CHIP:IM: Received Write request + [1663147644.857541][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147644.857552][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147644.857555][37702:37702] CHIP:DMG: { + [1663147644.857557][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147644.857560][37702:37702] CHIP:DMG: timedRequest = false, + [1663147644.857562][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147644.857566][37702:37702] CHIP:DMG: [ + [1663147644.857568][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147644.857571][37702:37702] CHIP:DMG: { + [1663147644.857574][37702:37702] CHIP:DMG: AttributePathIB = + [1663147644.857577][37702:37702] CHIP:DMG: { + [1663147644.857580][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147644.857582][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147644.857585][37702:37702] CHIP:DMG: Attribute = 0x0000_0014, + [1663147644.857587][37702:37702] CHIP:DMG: } + [1663147644.857591][37702:37702] CHIP:DMG: + [1663147644.857594][37702:37702] CHIP:DMG: Data = 5, + [1663147644.857596][37702:37702] CHIP:DMG: }, + [1663147644.857601][37702:37702] CHIP:DMG: + [1663147644.857603][37702:37702] CHIP:DMG: ], + [1663147644.857606][37702:37702] CHIP:DMG: + [1663147644.857609][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147644.857611][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147644.857613][37702:37702] CHIP:DMG: }, + [1663147644.857629][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + + ./chip-tool levelcontrol write start-up-current-level 5 1 1 + Verify DUT(chip-tool) receives start-up-current-level attribute response on the TH(all-clusters-minimal-app) Log: + [1663147665.149448][37702:37702] CHIP:IM: Received Write request + [1663147665.149453][37702:37702] CHIP:DMG: IM WH moving to [Initialized] + [1663147665.149474][37702:37702] CHIP:DMG: WriteRequestMessage = + [1663147665.149480][37702:37702] CHIP:DMG: { + [1663147665.149486][37702:37702] CHIP:DMG: suppressResponse = false, + [1663147665.149492][37702:37702] CHIP:DMG: timedRequest = false, + [1663147665.149497][37702:37702] CHIP:DMG: AttributeDataIBs = + [1663147665.149506][37702:37702] CHIP:DMG: [ + [1663147665.149511][37702:37702] CHIP:DMG: AttributeDataIB = + [1663147665.149520][37702:37702] CHIP:DMG: { + [1663147665.149525][37702:37702] CHIP:DMG: AttributePathIB = + [1663147665.149532][37702:37702] CHIP:DMG: { + [1663147665.149539][37702:37702] CHIP:DMG: Endpoint = 0x1, + [1663147665.149545][37702:37702] CHIP:DMG: Cluster = 0x8, + [1663147665.149552][37702:37702] CHIP:DMG: Attribute = 0x0000_4000, + [1663147665.149558][37702:37702] CHIP:DMG: } + [1663147665.149565][37702:37702] CHIP:DMG: + [1663147665.149572][37702:37702] CHIP:DMG: Data = 5, + [1663147665.149578][37702:37702] CHIP:DMG: }, + [1663147665.149586][37702:37702] CHIP:DMG: + [1663147665.149590][37702:37702] CHIP:DMG: ], + [1663147665.149598][37702:37702] CHIP:DMG: + [1663147665.149604][37702:37702] CHIP:DMG: moreChunkedMessages = false, + [1663147665.149609][37702:37702] CHIP:DMG: InteractionModelRevision = 1 + [1663147665.149614][37702:37702] CHIP:DMG: }, + [1663147665.149652][37702:37702] CHIP:DMG: IM WH moving to [AddStatus] + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml b/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml index b43b6b73853aad..f2739a908c5c9a 100644 --- a/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml @@ -18,7 +18,7 @@ name: Verification (DUT as Server) PICS: - - MC.S.UDCLOGIN + - MC.S.M.UDCLOGIN config: nodeId: 0x12344321 diff --git a/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml b/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml index 5f1add558f194e..923f37b0bd6a7b 100644 --- a/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml @@ -18,7 +18,7 @@ name: Verification (DUT as Server) PICS: - - MC.S.UDC + - MC.S.M.UDC config: nodeId: 0x12344321 diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml index 9e7125eaae654b..4ab9ae77a4b3cd 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: " !MEDIAINPUT.S.NU " + PICS: " !MEDIAINPUT.S.F00 " command: "readAttribute" attribute: "FeatureMap" response: @@ -50,8 +50,9 @@ tests: constraints: type: bitmap32 - - label: "Given MEDIAINPUT.S.NU ensure featuremap has the correct bit set" - PICS: MEDIAINPUT.S.NU + - label: + "Given MEDIAINPUT.S.F00(NU) ensure featuremap has the correct bit set" + PICS: MEDIAINPUT.S.F00 command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml index e1fd3d5cd89267..792ed1e19f82b6 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml @@ -42,7 +42,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: " !MEDIAPLAYBACK.S.AS && !MEDIAPLAYBACK.S.VS " + PICS: " !MEDIAPLAYBACK.S.F00 && !MEDIAPLAYBACK.S.F01 " command: "readAttribute" attribute: "FeatureMap" response: @@ -51,8 +51,9 @@ tests: type: bitmap32 - label: - "Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set" - PICS: MEDIAPLAYBACK.S.AS + "Given MEDIAPLAYBACK.S.F00(AS) ensure featuremap has the correct bit + set" + PICS: MEDIAPLAYBACK.S.F00 command: "readAttribute" attribute: "FeatureMap" response: @@ -61,8 +62,9 @@ tests: hasMasksSet: [0x1] - label: - "Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set" - PICS: MEDIAPLAYBACK.S.VS + "Given MEDIAPLAYBACK.S.F01(VS) ensure featuremap has the correct bit + set" + PICS: MEDIAPLAYBACK.S.F01 command: "readAttribute" attribute: "FeatureMap" response: diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml index 8c21f73141ac9f..c1dbe77b37e105 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml @@ -86,6 +86,14 @@ tests: type: list contains: [5] + - label: "Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + - label: "Read the global attribute: AcceptedCommandList" command: "readAttribute" attribute: "AcceptedCommandList" diff --git a/src/app/tests/suites/certification/Test_TC_OO_2_4.yaml b/src/app/tests/suites/certification/Test_TC_OO_2_4.yaml index 0b7caf3b680d21..ae6e379eca3c30 100644 --- a/src/app/tests/suites/certification/Test_TC_OO_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_OO_2_4.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 3.2.4. [TC-OO-2.4] Startup functionality with server as DUT +name: 4.2.4. [TC-OO-2.4] Startup functionality with server as DUT PICS: - OO.S diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml deleted file mode 100644 index 644d818e5da6ee..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml +++ /dev/null @@ -1,578 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 4.3.1. [TC-OO-3.1] Attributes with client as DUT - -PICS: - - OO.C - - OO.C.AM-READ - - OO.C.AO-READ - - OO.C.AM-WRITE - - OO.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: OO.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff read on-off 1 1 - - - Verify TH receives OnOff attribute response on the TH(all-clusters-app) Log: - - ReportDataMessage = - [1667452721.059769][2466:2466] CHIP:DMG: { - [1667452721.059794][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452721.059829][2466:2466] CHIP:DMG: [ - [1667452721.059861][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452721.059902][2466:2466] CHIP:DMG: { - [1667452721.059936][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452721.059978][2466:2466] CHIP:DMG: { - [1667452721.060012][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452721.060055][2466:2466] CHIP:DMG: AttributePathIB = - [1667452721.060090][2466:2466] CHIP:DMG: { - [1667452721.060137][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452721.060185][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452721.060223][2466:2466] CHIP:DMG: Attribute = 0x0000_0000, - [1667452721.060262][2466:2466] CHIP:DMG: } - [1667452721.060308][2466:2466] CHIP:DMG: - [1667452721.060354][2466:2466] CHIP:DMG: Data = false, - [1667452721.060386][2466:2466] CHIP:DMG: }, - [1667452721.060425][2466:2466] CHIP:DMG: - [1667452721.060458][2466:2466] CHIP:DMG: }, - [1667452721.060495][2466:2466] CHIP:DMG: - [1667452721.060523][2466:2466] CHIP:DMG: ], - [1667452721.060558][2466:2466] CHIP:DMG: - [1667452721.060584][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452721.060615][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452721.060645][2466:2466] CHIP:DMG: } - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: OO.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff read global-scene-control 1 1 - - Verify TH receives global-scene-control attribute response on the TH(all-clusters-app) Log: - - [...] - ReportDataMessage = - [1667452789.247159][2466:2466] CHIP:DMG: { - [1667452789.247187][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452789.247225][2466:2466] CHIP:DMG: [ - [1667452789.247256][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452789.247334][2466:2466] CHIP:DMG: { - [1667452789.247370][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452789.247416][2466:2466] CHIP:DMG: { - [1667452789.247452][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452789.247489][2466:2466] CHIP:DMG: AttributePathIB = - [1667452789.247524][2466:2466] CHIP:DMG: { - [1667452789.247572][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452789.247614][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452789.247664][2466:2466] CHIP:DMG: Attribute = 0x0000_4000, - [1667452789.247711][2466:2466] CHIP:DMG: } - [1667452789.247760][2466:2466] CHIP:DMG: - [1667452789.247809][2466:2466] CHIP:DMG: Data = true, - [1667452789.247855][2466:2466] CHIP:DMG: }, - [1667452789.247893][2466:2466] CHIP:DMG: - [1667452789.247926][2466:2466] CHIP:DMG: }, - [1667452789.247968][2466:2466] CHIP:DMG: - [1667452789.247998][2466:2466] CHIP:DMG: ], - [1667452789.248034][2466:2466] CHIP:DMG: - [1667452789.248065][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452789.248105][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452789.248134][2466:2466] CHIP:DMG: } - - ./chip-tool onoff read on-time 1 1 - - Verify TH receives on-time attribute response on the TH(all-clusters-app) Log: - - [...] - [ReportDataMessage = - [1667452828.777938][2466:2466] CHIP:DMG: { - [1667452828.777956][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452828.777982][2466:2466] CHIP:DMG: [ - [1667452828.778004][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452828.778034][2466:2466] CHIP:DMG: { - [1667452828.778059][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452828.778086][2466:2466] CHIP:DMG: { - [1667452828.778111][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452828.778138][2466:2466] CHIP:DMG: AttributePathIB = - [1667452828.778170][2466:2466] CHIP:DMG: { - [1667452828.778204][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452828.778238][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452828.778263][2466:2466] CHIP:DMG: Attribute = 0x0000_4001, - [1667452828.778292][2466:2466] CHIP:DMG: } - [1667452828.778325][2466:2466] CHIP:DMG: - [1667452828.778358][2466:2466] CHIP:DMG: Data = 0, - [1667452828.778388][2466:2466] CHIP:DMG: }, - [1667452828.778413][2466:2466] CHIP:DMG: - [1667452828.778434][2466:2466] CHIP:DMG: }, - [1667452828.778462][2466:2466] CHIP:DMG: - [1667452828.778481][2466:2466] CHIP:DMG: ], - [1667452828.778506][2466:2466] CHIP:DMG: - [1667452828.778532][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452828.778554][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452828.778574][2466:2466] CHIP:DMG: } - - - ./chip-tool onoff read off-wait-time 1 1 - - Verify TH receives off-wait-time attribute response on the TH(all-clusters-app) Log: - - [...] - ReportDataMessage = - [1667452886.239711][2466:2466] CHIP:DMG: { - [1667452886.239729][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452886.239755][2466:2466] CHIP:DMG: [ - [1667452886.239778][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452886.239817][2466:2466] CHIP:DMG: { - [1667452886.239846][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452886.239878][2466:2466] CHIP:DMG: { - [1667452886.239913][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452886.239961][2466:2466] CHIP:DMG: AttributePathIB = - [1667452886.240007][2466:2466] CHIP:DMG: { - [1667452886.240056][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452886.240111][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452886.240158][2466:2466] CHIP:DMG: Attribute = 0x0000_4002, - [1667452886.240201][2466:2466] CHIP:DMG: } - [1667452886.240252][2466:2466] CHIP:DMG: - [1667452886.240302][2466:2466] CHIP:DMG: Data = 0, - [1667452886.240342][2466:2466] CHIP:DMG: }, - [1667452886.240379][2466:2466] CHIP:DMG: - [1667452886.240414][2466:2466] CHIP:DMG: }, - [1667452886.240456][2466:2466] CHIP:DMG: - [1667452886.240484][2466:2466] CHIP:DMG: ], - [1667452886.240521][2466:2466] CHIP:DMG: - [1667452886.240552][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452886.240585][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452886.240693][2466:2466] CHIP:DMG: } - - - ./chip-tool onoff read start-up-on-off 1 1 - - Verify TH recieves " start-up-on-off response" on the TH (all-cluster-app) log: - - [...] - ReportDataMessage = - [1667452925.822024][2466:2466] CHIP:DMG: { - [1667452925.822045][2466:2466] CHIP:DMG: AttributeReportIBs = - [1667452925.822072][2466:2466] CHIP:DMG: [ - [1667452925.822094][2466:2466] CHIP:DMG: AttributeReportIB = - [1667452925.822125][2466:2466] CHIP:DMG: { - [1667452925.822149][2466:2466] CHIP:DMG: AttributeDataIB = - [1667452925.822177][2466:2466] CHIP:DMG: { - [1667452925.822211][2466:2466] CHIP:DMG: DataVersion = 0xb271c4c0, - [1667452925.822243][2466:2466] CHIP:DMG: AttributePathIB = - [1667452925.822276][2466:2466] CHIP:DMG: { - [1667452925.822310][2466:2466] CHIP:DMG: Endpoint = 0x1, - [1667452925.822340][2466:2466] CHIP:DMG: Cluster = 0x6, - [1667452925.822367][2466:2466] CHIP:DMG: Attribute = 0x0000_4003, - [1667452925.822401][2466:2466] CHIP:DMG: } - [1667452925.822436][2466:2466] CHIP:DMG: - [1667452925.822470][2466:2466] CHIP:DMG: Data = NULL - [1667452925.822501][2466:2466] CHIP:DMG: }, - [1667452925.822531][2466:2466] CHIP:DMG: - [1667452925.822556][2466:2466] CHIP:DMG: }, - [1667452925.822585][2466:2466] CHIP:DMG: - [1667452925.822606][2466:2466] CHIP:DMG: ], - [1667452925.822633][2466:2466] CHIP:DMG: - [1667452925.822656][2466:2466] CHIP:DMG: SuppressResponse = true, - [1667452925.822681][2466:2466] CHIP:DMG: InteractionModelRevision = 1 - [1667452925.822702][2466:2466] CHIP:DMG: } - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - verification: | - This cluster doesn"t have any mandatory attributes - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: OO.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - On TestHarnes (all-cluster-app) a received write request looks like this - - ./chip-tool onoff write on-time 1 1 1 - - Verify the WriteResponseMessage of " on-time" on the TH (all-cluster-app) log: - - [1666941297.380594][9718:9718] CHIP:DMG: WriteResponseMessage = - [1666941297.380596][9718:9718] CHIP:DMG: { - [1666941297.380598][9718:9718] CHIP:DMG: AttributeStatusIBs = - [1666941297.380603][9718:9718] CHIP:DMG: [ - [1666941297.380605][9718:9718] CHIP:DMG: AttributeStatusIB = - [1666941297.380608][9718:9718] CHIP:DMG: { - [1666941297.380610][9718:9718] CHIP:DMG: AttributePathIB = - [1666941297.380613][9718:9718] CHIP:DMG: { - [1666941297.380616][9718:9718] CHIP:DMG: Endpoint = 0x1, - [1666941297.380619][9718:9718] CHIP:DMG: Cluster = 0x6, - [1666941297.380622][9718:9718] CHIP:DMG: Attribute = 0x0000_4001, - [1666941297.380624][9718:9718] CHIP:DMG: } - [1666941297.380628][9718:9718] CHIP:DMG: - [1666941297.380630][9718:9718] CHIP:DMG: StatusIB = - [1666941297.380634][9718:9718] CHIP:DMG: { - [1666941297.380636][9718:9718] CHIP:DMG: status = 0x00 (SUCCESS), - [1666941297.380639][9718:9718] CHIP:DMG: }, - [1666941297.380641][9718:9718] CHIP:DMG: - [1666941297.380643][9718:9718] CHIP:DMG: }, - [1666941297.380647][9718:9718] CHIP:DMG: - [1666941297.380649][9718:9718] CHIP:DMG: ], - [1666941297.380652][9718:9718] CHIP:DMG: - [1666941297.380655][9718:9718] CHIP:DMG: InteractionModelRevision = 1 - - - ./chip-tool onoff write off-wait-time 22 1 1 - - Verify the WriteResponseMessage of " off-wait-time" on the TH (all-cluster-app) log: - [1666941329.582813][9718:9718] CHIP:DMG: WriteResponseMessage = - [1666941329.582820][9718:9718] CHIP:DMG: { - [1666941329.582828][9718:9718] CHIP:DMG: AttributeStatusIBs = - [1666941329.582844][9718:9718] CHIP:DMG: [ - [1666941329.582852][9718:9718] CHIP:DMG: AttributeStatusIB = - [1666941329.582863][9718:9718] CHIP:DMG: { - [1666941329.582871][9718:9718] CHIP:DMG: AttributePathIB = - [1666941329.582879][9718:9718] CHIP:DMG: { - [1666941329.582890][9718:9718] CHIP:DMG: Endpoint = 0x1, - [1666941329.582899][9718:9718] CHIP:DMG: Cluster = 0x6, - [1666941329.582910][9718:9718] CHIP:DMG: Attribute = 0x0000_4002, - [1666941329.582919][9718:9718] CHIP:DMG: } - [1666941329.582933][9718:9718] CHIP:DMG: - [1666941329.582940][9718:9718] CHIP:DMG: StatusIB = - [1666941329.582949][9718:9718] CHIP:DMG: { - [1666941329.582957][9718:9718] CHIP:DMG: status = 0x00 (SUCCESS), - [1666941329.582967][9718:9718] CHIP:DMG: }, - [1666941329.582978][9718:9718] CHIP:DMG: - [1666941329.582988][9718:9718] CHIP:DMG: }, - [1666941329.583001][9718:9718] CHIP:DMG: - [1666941329.583009][9718:9718] CHIP:DMG: ], - [1666941329.583024][9718:9718] CHIP:DMG: - [1666941329.583033][9718:9718] CHIP:DMG: InteractionModelRevision = 1 - [1666941329.583042][9718:9718] CHIP:DMG: } - - - - ./chip-tool onoff write start-up-on-off 2 1 1 - - Verify the WriteResponseMessage of " start-up-on-off " on the TH (all-cluster-app) log: - - [1666941347.639597][9718:9718] CHIP:DMG: WriteResponseMessage = - [1666941347.639609][9718:9718] CHIP:DMG: { - [1666941347.639615][9718:9718] CHIP:DMG: AttributeStatusIBs = - [1666941347.639627][9718:9718] CHIP:DMG: [ - [1666941347.639634][9718:9718] CHIP:DMG: AttributeStatusIB = - [1666941347.639643][9718:9718] CHIP:DMG: { - [1666941347.639648][9718:9718] CHIP:DMG: AttributePathIB = - [1666941347.639652][9718:9718] CHIP:DMG: { - [1666941347.639657][9718:9718] CHIP:DMG: Endpoint = 0x1, - [1666941347.639661][9718:9718] CHIP:DMG: Cluster = 0x6, - [1666941347.639665][9718:9718] CHIP:DMG: Attribute = 0x0000_4003, - [1666941347.639669][9718:9718] CHIP:DMG: } - [1666941347.639674][9718:9718] CHIP:DMG: - [1666941347.639678][9718:9718] CHIP:DMG: StatusIB = - [1666941347.639684][9718:9718] CHIP:DMG: { - [1666941347.639688][9718:9718] CHIP:DMG: status = 0x00 (SUCCESS), - [1666941347.639694][9718:9718] CHIP:DMG: }, - [1666941347.639701][9718:9718] CHIP:DMG: - [1666941347.639704][9718:9718] CHIP:DMG: }, - [1666941347.639709][9718:9718] CHIP:DMG: - [1666941347.639712][9718:9718] CHIP:DMG: ], - [1666941347.639717][9718:9718] CHIP:DMG: - [1666941347.639722][9718:9718] CHIP:DMG: InteractionModelRevision = 1 - disabled: true - - - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it - also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff read attribute-list 1 1 - - Verify the " attribute-list response" on the TH (all-cluster-minimal-app) log: - - [1666943616.274425][12769:12769] CHIP:DMG: - [1666943616.274453][12769:12769] CHIP:DMG: ReportDataMessage = - [1666943616.274456][12769:12769] CHIP:DMG: { - [1666943616.274458][12769:12769] CHIP:DMG: AttributeReportIBs = - [1666943616.274463][12769:12769] CHIP:DMG: [ - [1666943616.274466][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274471][12769:12769] CHIP:DMG: { - [1666943616.274474][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274477][12769:12769] CHIP:DMG: { - [1666943616.274481][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274484][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274487][12769:12769] CHIP:DMG: { - [1666943616.274490][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274494][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274498][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274501][12769:12769] CHIP:DMG: } - [1666943616.274505][12769:12769] CHIP:DMG: - [1666943616.274508][12769:12769] CHIP:DMG: Data = [ - [1666943616.274511][12769:12769] CHIP:DMG: - [1666943616.274515][12769:12769] CHIP:DMG: ], - [1666943616.274518][12769:12769] CHIP:DMG: }, - [1666943616.274522][12769:12769] CHIP:DMG: - [1666943616.274525][12769:12769] CHIP:DMG: }, - [1666943616.274531][12769:12769] CHIP:DMG: - [1666943616.274533][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274538][12769:12769] CHIP:DMG: { - [1666943616.274541][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274544][12769:12769] CHIP:DMG: { - [1666943616.274547][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274550][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274553][12769:12769] CHIP:DMG: { - [1666943616.274557][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274560][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274564][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274567][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274570][12769:12769] CHIP:DMG: } - [1666943616.274574][12769:12769] CHIP:DMG: - [1666943616.274577][12769:12769] CHIP:DMG: Data = 0, - [1666943616.274580][12769:12769] CHIP:DMG: }, - [1666943616.274584][12769:12769] CHIP:DMG: - [1666943616.274587][12769:12769] CHIP:DMG: }, - [1666943616.274593][12769:12769] CHIP:DMG: - [1666943616.274595][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274599][12769:12769] CHIP:DMG: { - [1666943616.274602][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274605][12769:12769] CHIP:DMG: { - [1666943616.274608][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274611][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274614][12769:12769] CHIP:DMG: { - [1666943616.274617][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274620][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274624][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274627][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274630][12769:12769] CHIP:DMG: } - [1666943616.274634][12769:12769] CHIP:DMG: - [1666943616.274637][12769:12769] CHIP:DMG: Data = 65528, - [1666943616.274640][12769:12769] CHIP:DMG: }, - [1666943616.274644][12769:12769] CHIP:DMG: - [1666943616.274647][12769:12769] CHIP:DMG: }, - [1666943616.274653][12769:12769] CHIP:DMG: - [1666943616.274655][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274660][12769:12769] CHIP:DMG: { - [1666943616.274663][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274666][12769:12769] CHIP:DMG: { - [1666943616.274669][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274672][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274675][12769:12769] CHIP:DMG: { - [1666943616.274678][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274682][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274685][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274689][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274693][12769:12769] CHIP:DMG: } - [1666943616.274696][12769:12769] CHIP:DMG: - [1666943616.274700][12769:12769] CHIP:DMG: Data = 65529, - [1666943616.274702][12769:12769] CHIP:DMG: }, - [1666943616.274707][12769:12769] CHIP:DMG: - [1666943616.274709][12769:12769] CHIP:DMG: }, - [1666943616.274715][12769:12769] CHIP:DMG: - [1666943616.274718][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274722][12769:12769] CHIP:DMG: { - [1666943616.274725][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274728][12769:12769] CHIP:DMG: { - [1666943616.274731][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274734][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274737][12769:12769] CHIP:DMG: { - [1666943616.274740][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274744][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274747][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274750][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274753][12769:12769] CHIP:DMG: } - [1666943616.274757][12769:12769] CHIP:DMG: - [1666943616.274760][12769:12769] CHIP:DMG: Data = 65531, - [1666943616.274763][12769:12769] CHIP:DMG: }, - [1666943616.274768][12769:12769] CHIP:DMG: - [1666943616.274770][12769:12769] CHIP:DMG: }, - [1666943616.274776][12769:12769] CHIP:DMG: - [1666943616.274779][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274783][12769:12769] CHIP:DMG: { - [1666943616.274786][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274789][12769:12769] CHIP:DMG: { - [1666943616.274792][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274795][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274798][12769:12769] CHIP:DMG: { - [1666943616.274802][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274805][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274808][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274813][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274817][12769:12769] CHIP:DMG: } - [1666943616.274821][12769:12769] CHIP:DMG: - [1666943616.274824][12769:12769] CHIP:DMG: Data = 65532, - [1666943616.274827][12769:12769] CHIP:DMG: }, - [1666943616.274831][12769:12769] CHIP:DMG: - [1666943616.274834][12769:12769] CHIP:DMG: }, - [1666943616.274840][12769:12769] CHIP:DMG: - [1666943616.274842][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943616.274847][12769:12769] CHIP:DMG: { - [1666943616.274849][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943616.274852][12769:12769] CHIP:DMG: { - [1666943616.274856][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943616.274858][12769:12769] CHIP:DMG: AttributePathIB = - [1666943616.274861][12769:12769] CHIP:DMG: { - [1666943616.274865][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943616.274868][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943616.274871][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666943616.274874][12769:12769] CHIP:DMG: ListIndex = Null, - [1666943616.274878][12769:12769] CHIP:DMG: } - [1666943616.274881][12769:12769] CHIP:DMG: - [1666943616.274885][12769:12769] CHIP:DMG: Data = 65533, - [1666943616.274888][12769:12769] CHIP:DMG: }, - [1666943616.274892][12769:12769] CHIP:DMG: - [1666943616.274894][12769:12769] CHIP:DMG: }, - [1666943616.274898][12769:12769] CHIP:DMG: - [1666943616.274901][12769:12769] CHIP:DMG: ], - [1666943616.274913][12769:12769] CHIP:DMG: - [1666943616.274916][12769:12769] CHIP:DMG: SuppressResponse = true, - [1666943616.274919][12769:12769] CHIP:DMG: InteractionModelRevision = 1 - [1666943616.274921][12769:12769] CHIP:DMG: } - - - ./chip-tool onoff read feature-map 1 1 - - Verify the " feature-map response" on the TH (all-cluster-minimal-app) log: - - [1666943673.928358][12769:12769] CHIP:DMG: ReportDataMessage = - [1666943673.928360][12769:12769] CHIP:DMG: { - [1666943673.928362][12769:12769] CHIP:DMG: AttributeReportIBs = - [1666943673.928367][12769:12769] CHIP:DMG: [ - [1666943673.928369][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943673.928374][12769:12769] CHIP:DMG: { - [1666943673.928376][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943673.928379][12769:12769] CHIP:DMG: { - [1666943673.928382][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943673.928385][12769:12769] CHIP:DMG: AttributePathIB = - [1666943673.928388][12769:12769] CHIP:DMG: { - [1666943673.928392][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943673.928395][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943673.928398][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFC, - [1666943673.928401][12769:12769] CHIP:DMG: } - [1666943673.928404][12769:12769] CHIP:DMG: - [1666943673.928407][12769:12769] CHIP:DMG: Data = 0, - [1666943673.928410][12769:12769] CHIP:DMG: }, - [1666943673.928413][12769:12769] CHIP:DMG: - [1666943673.928416][12769:12769] CHIP:DMG: }, - [1666943673.928419][12769:12769] CHIP:DMG: - [1666943673.928422][12769:12769] CHIP:DMG: ], - [1666943673.928425][12769:12769] CHIP:DMG: - [1666943673.928428][12769:12769] CHIP:DMG: SuppressResponse = true, - [1666943673.928430][12769:12769] CHIP:DMG: InteractionModelRevision = 1 - [1666943673.928432][12769:12769] CHIP:DMG: } - - - ./chip-tool onoff read on-off 1 1 - - Verify the " on-off response" on the TH (all-cluster-minimal-app) log: - - [1666943688.655282][12769:12769] CHIP:DMG: ReportDataMessage = - [1666943688.655285][12769:12769] CHIP:DMG: { - [1666943688.655286][12769:12769] CHIP:DMG: AttributeReportIBs = - [1666943688.655290][12769:12769] CHIP:DMG: [ - [1666943688.655291][12769:12769] CHIP:DMG: AttributeReportIB = - [1666943688.655294][12769:12769] CHIP:DMG: { - [1666943688.655296][12769:12769] CHIP:DMG: AttributeDataIB = - [1666943688.655299][12769:12769] CHIP:DMG: { - [1666943688.655301][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, - [1666943688.655303][12769:12769] CHIP:DMG: AttributePathIB = - [1666943688.655305][12769:12769] CHIP:DMG: { - [1666943688.655307][12769:12769] CHIP:DMG: Endpoint = 0x1, - [1666943688.655309][12769:12769] CHIP:DMG: Cluster = 0x6, - [1666943688.655312][12769:12769] CHIP:DMG: Attribute = 0x0000_0000, - [1666943688.655314][12769:12769] CHIP:DMG: } - [1666943688.655316][12769:12769] CHIP:DMG: - [1666943688.655319][12769:12769] CHIP:DMG: Data = false, - [1666943688.655321][12769:12769] CHIP:DMG: }, - [1666943688.655323][12769:12769] CHIP:DMG: - [1666943688.655325][12769:12769] CHIP:DMG: }, - [1666943688.655328][12769:12769] CHIP:DMG: - [1666943688.655330][12769:12769] CHIP:DMG: ], - [1666943688.655333][12769:12769] CHIP:DMG: - [1666943688.655335][12769:12769] CHIP:DMG: SuppressResponse = true, - [1666943688.655336][12769:12769] CHIP:DMG: InteractionModelRevision = 1 - [1666943688.655338][12769:12769] CHIP:DMG: } - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: OO.C.AO-READ - verification: | - ./chip-tool onoff read global-scene-control 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff read on-time 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff read off-wait-time 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff read start-up-on-off 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: OO.C.AO-WRITE - verification: | - ./chip-tool onoff write on-time 1 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff write off-wait-time 22 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool onoff write start-up-on-off 2 1 1 - - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_1_Simulated.yaml new file mode 100644 index 00000000000000..e57e5b424496a8 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_OO_3_1_Simulated.yaml @@ -0,0 +1,374 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.1. [TC-OO-3.1] Attributes with client as DUT + +PICS: + - OO.C + - OO.C.AM-READ + - OO.C.AO-READ + - OO.C.AM-WRITE + - OO.C.AO-WRITE + +config: + nodeId: 0x12344321 + cluster: "On/Off" + endpoint: 1 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "Read attribute OnOff" + wait: "readAttribute" + attribute: "OnOff" + + - label: "Read attribute GlobalSceneControl" + wait: "readAttribute" + attribute: "GlobalSceneControl" + + - label: "Read attribute OnTime" + wait: "readAttribute" + attribute: "OnTime" + + - label: "Read attribute OffWaitTime" + wait: "readAttribute" + attribute: "OffWaitTime" + + - label: "Read attribute StartUpOnOff" + wait: "readAttribute" + attribute: "StartUpOnOff" + + - label: "Write attribute OnTime" + wait: "writeAttribute" + attribute: "OnTime" + arguments: + value: + + - label: "Write attribute OffWaitTime" + wait: "writeAttribute" + attribute: "OffWaitTime" + arguments: + value: + + - label: "Write attribute StartUpOnOff" + wait: "writeAttribute" + attribute: "StartUpOnOff" + arguments: + value: + + - label: + "Configure TH such that it implements mandatory and none of the + optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList.Commission DUT to TH again" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + ./chip-tool onoff read attribute-list 1 1 + + Verify the " attribute-list response" on the TH (all-cluster-minimal-app) log: + + [1676891564.236044][13681:13681] CHIP:DMG: } + [1676891564.236047][13681:13681] CHIP:DMG: + [1676891564.236099][13681:13681] CHIP:DMG: ReportDataMessage = + [1676891564.236103][13681:13681] CHIP:DMG: { + [1676891564.236105][13681:13681] CHIP:DMG: AttributeReportIBs = + [1676891564.236111][13681:13681] CHIP:DMG: [ + [1676891564.236114][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236120][13681:13681] CHIP:DMG: { + [1676891564.236123][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236127][13681:13681] CHIP:DMG: { + [1676891564.236131][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236135][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236139][13681:13681] CHIP:DMG: { + [1676891564.236144][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236148][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236153][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236157][13681:13681] CHIP:DMG: } + [1676891564.236162][13681:13681] CHIP:DMG: + [1676891564.236166][13681:13681] CHIP:DMG: Data = [ + [1676891564.236170][13681:13681] CHIP:DMG: + [1676891564.236175][13681:13681] CHIP:DMG: ], + [1676891564.236179][13681:13681] CHIP:DMG: }, + [1676891564.236184][13681:13681] CHIP:DMG: + [1676891564.236188][13681:13681] CHIP:DMG: }, + [1676891564.236195][13681:13681] CHIP:DMG: + [1676891564.236199][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236205][13681:13681] CHIP:DMG: { + [1676891564.236208][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236212][13681:13681] CHIP:DMG: { + [1676891564.236216][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236220][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236225][13681:13681] CHIP:DMG: { + [1676891564.236229][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236233][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236238][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236243][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236247][13681:13681] CHIP:DMG: } + [1676891564.236252][13681:13681] CHIP:DMG: + [1676891564.236257][13681:13681] CHIP:DMG: Data = 0, + [1676891564.236260][13681:13681] CHIP:DMG: }, + [1676891564.236266][13681:13681] CHIP:DMG: + [1676891564.236269][13681:13681] CHIP:DMG: }, + [1676891564.236277][13681:13681] CHIP:DMG: + [1676891564.236280][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236286][13681:13681] CHIP:DMG: { + [1676891564.236290][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236294][13681:13681] CHIP:DMG: { + [1676891564.236299][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236306][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236314][13681:13681] CHIP:DMG: { + [1676891564.236321][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236330][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236337][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236344][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236348][13681:13681] CHIP:DMG: } + [1676891564.236354][13681:13681] CHIP:DMG: + [1676891564.236358][13681:13681] CHIP:DMG: Data = 65528, + [1676891564.236362][13681:13681] CHIP:DMG: }, + [1676891564.236367][13681:13681] CHIP:DMG: + [1676891564.236372][13681:13681] CHIP:DMG: }, + [1676891564.236380][13681:13681] CHIP:DMG: + [1676891564.236384][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236389][13681:13681] CHIP:DMG: { + [1676891564.236393][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236400][13681:13681] CHIP:DMG: { + [1676891564.236407][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236414][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236421][13681:13681] CHIP:DMG: { + [1676891564.236427][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236433][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236439][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236445][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236450][13681:13681] CHIP:DMG: } + [1676891564.236457][13681:13681] CHIP:DMG: + [1676891564.236463][13681:13681] CHIP:DMG: Data = 65529, + [1676891564.236468][13681:13681] CHIP:DMG: }, + [1676891564.236475][13681:13681] CHIP:DMG: + [1676891564.236480][13681:13681] CHIP:DMG: }, + [1676891564.236491][13681:13681] CHIP:DMG: + [1676891564.236495][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236503][13681:13681] CHIP:DMG: { + [1676891564.236507][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236513][13681:13681] CHIP:DMG: { + [1676891564.236518][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236523][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236529][13681:13681] CHIP:DMG: { + [1676891564.236534][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236540][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236546][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236551][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236557][13681:13681] CHIP:DMG: } + [1676891564.236563][13681:13681] CHIP:DMG: + [1676891564.236569][13681:13681] CHIP:DMG: Data = 65530, + [1676891564.236574][13681:13681] CHIP:DMG: }, + [1676891564.236581][13681:13681] CHIP:DMG: + [1676891564.236586][13681:13681] CHIP:DMG: }, + [1676891564.236596][13681:13681] CHIP:DMG: + [1676891564.236601][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236609][13681:13681] CHIP:DMG: { + [1676891564.236614][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236619][13681:13681] CHIP:DMG: { + [1676891564.236624][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236629][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236635][13681:13681] CHIP:DMG: { + [1676891564.236640][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236646][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236652][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236658][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236663][13681:13681] CHIP:DMG: } + [1676891564.236670][13681:13681] CHIP:DMG: + [1676891564.236675][13681:13681] CHIP:DMG: Data = 65531, + [1676891564.236681][13681:13681] CHIP:DMG: }, + [1676891564.236688][13681:13681] CHIP:DMG: + [1676891564.236693][13681:13681] CHIP:DMG: }, + [1676891564.236706][13681:13681] CHIP:DMG: + [1676891564.236711][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236720][13681:13681] CHIP:DMG: { + [1676891564.236728][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236736][13681:13681] CHIP:DMG: { + [1676891564.236743][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236749][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236757][13681:13681] CHIP:DMG: { + [1676891564.236765][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236772][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236780][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236787][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236793][13681:13681] CHIP:DMG: } + [1676891564.236802][13681:13681] CHIP:DMG: + [1676891564.236810][13681:13681] CHIP:DMG: Data = 65532, + [1676891564.236816][13681:13681] CHIP:DMG: }, + [1676891564.236825][13681:13681] CHIP:DMG: + [1676891564.236832][13681:13681] CHIP:DMG: }, + [1676891564.236846][13681:13681] CHIP:DMG: + [1676891564.236851][13681:13681] CHIP:DMG: AttributeReportIB = + [1676891564.236858][13681:13681] CHIP:DMG: { + [1676891564.236863][13681:13681] CHIP:DMG: AttributeDataIB = + [1676891564.236868][13681:13681] CHIP:DMG: { + [1676891564.236875][13681:13681] CHIP:DMG: DataVersion = 0x1b431685, + [1676891564.236883][13681:13681] CHIP:DMG: AttributePathIB = + [1676891564.236890][13681:13681] CHIP:DMG: { + [1676891564.236897][13681:13681] CHIP:DMG: Endpoint = 0x1, + [1676891564.236903][13681:13681] CHIP:DMG: Cluster = 0x6, + [1676891564.236911][13681:13681] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676891564.236918][13681:13681] CHIP:DMG: ListIndex = Null, + [1676891564.236926][13681:13681] CHIP:DMG: } + [1676891564.236936][13681:13681] CHIP:DMG: + [1676891564.236942][13681:13681] CHIP:DMG: Data = 65533, + [1676891564.236947][13681:13681] CHIP:DMG: }, + [1676891564.236955][13681:13681] CHIP:DMG: + [1676891564.236959][13681:13681] CHIP:DMG: }, + [1676891564.236967][13681:13681] CHIP:DMG: + [1676891564.236971][13681:13681] CHIP:DMG: ], + [1676891564.236999][13681:13681] CHIP:DMG: + [1676891564.237003][13681:13681] CHIP:DMG: SuppressResponse = true, + [1676891564.237008][13681:13681] CHIP:DMG: InteractionModelRevision = 1 + [1676891564.237012][13681:13681] CHIP:DMG: } + + + + ./chip-tool onoff read feature-map 1 1 + + Verify the " feature-map response" on the TH (all-cluster-minimal-app) log: + + [1666943673.928358][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943673.928360][12769:12769] CHIP:DMG: { + [1666943673.928362][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943673.928367][12769:12769] CHIP:DMG: [ + [1666943673.928369][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943673.928374][12769:12769] CHIP:DMG: { + [1666943673.928376][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943673.928379][12769:12769] CHIP:DMG: { + [1666943673.928382][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, + [1666943673.928385][12769:12769] CHIP:DMG: AttributePathIB = + [1666943673.928388][12769:12769] CHIP:DMG: { + [1666943673.928392][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943673.928395][12769:12769] CHIP:DMG: Cluster = 0x6, + [1666943673.928398][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFC, + [1666943673.928401][12769:12769] CHIP:DMG: } + [1666943673.928404][12769:12769] CHIP:DMG: + [1666943673.928407][12769:12769] CHIP:DMG: Data = 0, + [1666943673.928410][12769:12769] CHIP:DMG: }, + [1666943673.928413][12769:12769] CHIP:DMG: + [1666943673.928416][12769:12769] CHIP:DMG: }, + [1666943673.928419][12769:12769] CHIP:DMG: + [1666943673.928422][12769:12769] CHIP:DMG: ], + [1666943673.928425][12769:12769] CHIP:DMG: + [1666943673.928428][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943673.928430][12769:12769] CHIP:DMG: InteractionModelRevision = 1 + [1666943673.928432][12769:12769] CHIP:DMG: } + + + ./chip-tool onoff read on-off 1 1 + + Verify the " on-off response" on the TH (all-cluster-minimal-app) log: + + [1666943688.655282][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943688.655285][12769:12769] CHIP:DMG: { + [1666943688.655286][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943688.655290][12769:12769] CHIP:DMG: [ + [1666943688.655291][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943688.655294][12769:12769] CHIP:DMG: { + [1666943688.655296][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943688.655299][12769:12769] CHIP:DMG: { + [1666943688.655301][12769:12769] CHIP:DMG: DataVersion = 0xfcb17157, + [1666943688.655303][12769:12769] CHIP:DMG: AttributePathIB = + [1666943688.655305][12769:12769] CHIP:DMG: { + [1666943688.655307][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943688.655309][12769:12769] CHIP:DMG: Cluster = 0x6, + [1666943688.655312][12769:12769] CHIP:DMG: Attribute = 0x0000_0000, + [1666943688.655314][12769:12769] CHIP:DMG: } + [1666943688.655316][12769:12769] CHIP:DMG: + [1666943688.655319][12769:12769] CHIP:DMG: Data = false, + [1666943688.655321][12769:12769] CHIP:DMG: }, + [1666943688.655323][12769:12769] CHIP:DMG: + [1666943688.655325][12769:12769] CHIP:DMG: }, + [1666943688.655328][12769:12769] CHIP:DMG: + [1666943688.655330][12769:12769] CHIP:DMG: ], + [1666943688.655333][12769:12769] CHIP:DMG: + [1666943688.655335][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943688.655336][12769:12769] CHIP:DMG: InteractionModelRevision = 1 + [1666943688.655338][12769:12769] CHIP:DMG: } + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT reads all supported optional attributes from TH one at a time in + a manufacturer specific order" + verification: | + ./chip-tool onoff read global-scene-control 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff read on-time 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff read off-wait-time 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff read start-up-on-off 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT writes a suitable value to all supported optional attributes on + the TH one at a time in a manufacturer specific order" + verification: | + ./chip-tool onoff write on-time 1 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff write off-wait-time 22 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool onoff write start-up-on-off 2 1 1 + + on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml deleted file mode 100644 index 4f85846df55f14..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml +++ /dev/null @@ -1,295 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 4.3.2. [TC-OO-3.2] Functionality with client as DUT - -PICS: - - OO.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "DUT issues an Off command to the Test Harness." - PICS: OO.C.C00.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff off 1 1 - - - Verify TH recieves " Off command" on the TH (all-cluster-app) log: - - [1650537121.464763][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650537121.464818][3678:3678] CHIP:DMG: { - [1650537121.464866][3678:3678] CHIP:DMG: suppressResponse = false, - [1650537121.464922][3678:3678] CHIP:DMG: timedRequest = false, - [1650537121.464974][3678:3678] CHIP:DMG: InvokeRequests = - [1650537121.465078][3678:3678] CHIP:DMG: [ - [1650537121.465132][3678:3678] CHIP:DMG: CommandDataIB = - [1650537121.465195][3678:3678] CHIP:DMG: { - [1650537121.465250][3678:3678] CHIP:DMG: CommandPathIB = - [1650537121.465309][3678:3678] CHIP:DMG: { - [1650537121.465370][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650537121.465440][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650537121.465501][3678:3678] CHIP:DMG: CommandId = 0x0, - [1650537121.465569][3678:3678] CHIP:DMG: }, - [1650537121.465633][3678:3678] CHIP:DMG: - [1650537121.465687][3678:3678] CHIP:DMG: CommandData = - [1650537121.465744][3678:3678] CHIP:DMG: { - [1650537121.465807][3678:3678] CHIP:DMG: }, - [1650537121.465868][3678:3678] CHIP:DMG: }, - [1650537121.465932][3678:3678] CHIP:DMG: - [1650537121.465982][3678:3678] CHIP:DMG: ], - [1650537121.466043][3678:3678] CHIP:DMG: - [1650537121.466092][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650537121.466141][3678:3678] CHIP:DMG: }, - [1650537121.466254][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650537121.466322][3678:3678] CHIP:DMG: AccessControl: allowed - [1650537121.466377][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0000 - [1650537121.466434][3678:3678] CHIP:ZCL: On/Off set value: 1 0 - [1650537121.466486][3678:3678] CHIP:ZCL: On/off already set to new value - disabled: true - - - label: "DUT issues an On command to the Test Harness." - PICS: OO.C.C01.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff on 1 1 - - - Verify TH recieves " On command " on the TH (all-cluster-app) log: - - [1650537309.217556][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650537309.217647][3678:3678] CHIP:DMG: { - [1650537309.217706][3678:3678] CHIP:DMG: suppressResponse = false, - [1650537309.217773][3678:3678] CHIP:DMG: timedRequest = false, - [1650537309.217834][3678:3678] CHIP:DMG: InvokeRequests = - [1650537309.217931][3678:3678] CHIP:DMG: [ - [1650537309.217993][3678:3678] CHIP:DMG: CommandDataIB = - [1650537309.218088][3678:3678] CHIP:DMG: { - [1650537309.218168][3678:3678] CHIP:DMG: CommandPathIB = - [1650537309.218267][3678:3678] CHIP:DMG: { - [1650537309.218374][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650537309.218458][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650537309.218566][3678:3678] CHIP:DMG: CommandId = 0x1, - [1650537309.218666][3678:3678] CHIP:DMG: }, - [1650537309.218747][3678:3678] CHIP:DMG: - [1650537309.218839][3678:3678] CHIP:DMG: CommandData = - [1650537309.218928][3678:3678] CHIP:DMG: { - [1650537309.219001][3678:3678] CHIP:DMG: }, - [1650537309.219080][3678:3678] CHIP:DMG: }, - [1650537309.219180][3678:3678] CHIP:DMG: - [1650537309.219240][3678:3678] CHIP:DMG: ], - [1650537309.219334][3678:3678] CHIP:DMG: - [1650537309.219394][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650537309.219474][3678:3678] CHIP:DMG: }, - [1650537309.219624][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650537309.219724][3678:3678] CHIP:DMG: AccessControl: allowed - [1650537309.219791][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 - [1650537309.219887][3678:3678] CHIP:ZCL: On/Off set value: 1 1 - [1650537309.219951][3678:3678] CHIP:ZCL: Toggle on/off from 0 to 1 - disabled: true - - - label: "DUT issues an Toggle command to the Test Harness." - PICS: OO.C.C02.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff toggle 1 1 - - - Verify TH recieves" Toggle command response" on the TH (all-cluster-app) log: - - [1650537502.260837][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650537502.260877][3678:3678] CHIP:DMG: { - [1650537502.260911][3678:3678] CHIP:DMG: suppressResponse = false, - [1650537502.260952][3678:3678] CHIP:DMG: timedRequest = false, - [1650537502.260988][3678:3678] CHIP:DMG: InvokeRequests = - [1650537502.261053][3678:3678] CHIP:DMG: [ - [1650537502.261092][3678:3678] CHIP:DMG: CommandDataIB = - [1650537502.261145][3678:3678] CHIP:DMG: { - [1650537502.261184][3678:3678] CHIP:DMG: CommandPathIB = - [1650537502.261235][3678:3678] CHIP:DMG: { - [1650537502.261287][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650537502.261341][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650537502.261390][3678:3678] CHIP:DMG: CommandId = 0x2, - [1650537502.261440][3678:3678] CHIP:DMG: }, - [1650537502.261493][3678:3678] CHIP:DMG: - [1650537502.261535][3678:3678] CHIP:DMG: CommandData = - [1650537502.261585][3678:3678] CHIP:DMG: { - [1650537502.261632][3678:3678] CHIP:DMG: }, - [1650537502.261674][3678:3678] CHIP:DMG: }, - [1650537502.261721][3678:3678] CHIP:DMG: - [1650537502.261756][3678:3678] CHIP:DMG: ], - [1650537502.261800][3678:3678] CHIP:DMG: - [1650537502.261835][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650537502.261870][3678:3678] CHIP:DMG: }, - [1650537502.261955][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650537502.262005][3678:3678] CHIP:DMG: AccessControl: allowed - [1650537502.262044][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0002 - [1650537502.262086][3678:3678] CHIP:ZCL: On/Off set value: 1 2 - [1650537502.262124][3678:3678] CHIP:ZCL: Toggle on/off from 1 to 0 - [1650537502.262157][3678:3678] CHIP:ZCL: Off Command - OnTime : 0 - disabled: true - - - label: "DUT issues an OffWithEffect command to the Test Harness." - PICS: OO.C.C40.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff off-with-effect 1 0 1 1 - - - Verify TH recieves " OffWithEffect command response" on the TH (all-cluster-app) log: - - [1650538107.639049][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650538107.639115][3678:3678] CHIP:DMG: { - [1650538107.639154][3678:3678] CHIP:DMG: suppressResponse = false, - [1650538107.639198][3678:3678] CHIP:DMG: timedRequest = false, - [1650538107.639257][3678:3678] CHIP:DMG: InvokeRequests = - [1650538107.639310][3678:3678] CHIP:DMG: [ - [1650538107.639364][3678:3678] CHIP:DMG: CommandDataIB = - [1650538107.639415][3678:3678] CHIP:DMG: { - [1650538107.639471][3678:3678] CHIP:DMG: CommandPathIB = - [1650538107.639529][3678:3678] CHIP:DMG: { - [1650538107.639602][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650538107.639675][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650538107.639734][3678:3678] CHIP:DMG: CommandId = 0x40, - [1650538107.639799][3678:3678] CHIP:DMG: }, - [1650538107.639867][3678:3678] CHIP:DMG: - [1650538107.639914][3678:3678] CHIP:DMG: CommandData = - [1650538107.639984][3678:3678] CHIP:DMG: { - [1650538107.640054][3678:3678] CHIP:DMG: 0x0 = 1, - [1650538107.640113][3678:3678] CHIP:DMG: 0x1 = 0, - [1650538107.640186][3678:3678] CHIP:DMG: }, - [1650538107.640247][3678:3678] CHIP:DMG: }, - [1650538107.640301][3678:3678] CHIP:DMG: - [1650538107.640355][3678:3678] CHIP:DMG: ], - [1650538107.640420][3678:3678] CHIP:DMG: - [1650538107.640461][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650538107.640513][3678:3678] CHIP:DMG: }, - [1650538107.640625][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650538107.640681][3678:3678] CHIP:DMG: AccessControl: allowed - [1650538107.640738][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0040 - [1650538107.640853][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0005 update version to ab19f0ce - [1650538107.640924][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0005 update version to ab19f0cf - [1650538107.640983][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0005 update version to ab19f0d0 - [1650538107.641025][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11994 - [1650538107.641087][3678:3678] CHIP:ZCL: On/Off set value: 1 0 - [1650538107.641128][3678:3678] CHIP:ZCL: Toggle on/off from 1 to 0 - [1650538107.641164][3678:3678] CHIP:ZCL: Off Command - OnTime : 0 - [1650538107.641215][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11995 - disabled: true - - - label: - "DUT issues an OnWithRecallGlobalScene command to the Test Harness." - PICS: OO.C.C41.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff on-with-recall-global-scene 1 1 - - - Verify TH recieves " OnWithRecallGlobalScene command response" on the TH (all-cluster-app) log: - - [1650537790.690122][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650537790.690188][3678:3678] CHIP:DMG: { - [1650537790.690244][3678:3678] CHIP:DMG: suppressResponse = false, - [1650537790.690311][3678:3678] CHIP:DMG: timedRequest = false, - [1650537790.690371][3678:3678] CHIP:DMG: InvokeRequests = - [1650537790.690446][3678:3678] CHIP:DMG: [ - [1650537790.690507][3678:3678] CHIP:DMG: CommandDataIB = - [1650537790.690582][3678:3678] CHIP:DMG: { - [1650537790.690645][3678:3678] CHIP:DMG: CommandPathIB = - [1650537790.690720][3678:3678] CHIP:DMG: { - [1650537790.690805][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650537790.690889][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650537790.690969][3678:3678] CHIP:DMG: CommandId = 0x41, - [1650537790.691047][3678:3678] CHIP:DMG: }, - [1650537790.691127][3678:3678] CHIP:DMG: - [1650537790.691196][3678:3678] CHIP:DMG: CommandData = - [1650537790.691272][3678:3678] CHIP:DMG: { - [1650537790.691347][3678:3678] CHIP:DMG: }, - [1650537790.691419][3678:3678] CHIP:DMG: }, - [1650537790.691492][3678:3678] CHIP:DMG: - [1650537790.691539][3678:3678] CHIP:DMG: ], - [1650537790.691583][3678:3678] CHIP:DMG: - [1650537790.691618][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650537790.691654][3678:3678] CHIP:DMG: }, - [1650537790.691738][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650537790.691789][3678:3678] CHIP:DMG: AccessControl: allowed - [1650537790.701316][3678:3678] CHIP:ZCL: On/Off set value: 1 1 - [1650537790.701348][3678:3678] CHIP:ZCL: Toggle on/off from 0 to 1 - [1650537790.701382][3678:3678] CHIP:ZCL: On Command - OffWaitTime : 0 - [1650537790.701414][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11991 - [1650537790.701452][3678:3678] CHIP:ZCL: On/Toggle Command - Stop Timer - [1650537790.701485][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11992 - disabled: true - - - label: "DUT issues an OnWithTimedOff command to the Test Harness." - PICS: OO.C.C42.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool onoff on-with-timed-off 0 120 5 1 1 - - - Verify TH recieves " OnWithTimedOff command response" on the TH (all-cluster-app) log: - - [1650538315.673606][3678:3678] CHIP:DMG: InvokeRequestMessage = - [1650538315.673697][3678:3678] CHIP:DMG: { - [1650538315.673755][3678:3678] CHIP:DMG: suppressResponse = false, - [1650538315.673821][3678:3678] CHIP:DMG: timedRequest = false, - [1650538315.673882][3678:3678] CHIP:DMG: InvokeRequests = - [1650538315.673983][3678:3678] CHIP:DMG: [ - [1650538315.674047][3678:3678] CHIP:DMG: CommandDataIB = - [1650538315.674143][3678:3678] CHIP:DMG: { - [1650538315.674210][3678:3678] CHIP:DMG: CommandPathIB = - [1650538315.674309][3678:3678] CHIP:DMG: { - [1650538315.674387][3678:3678] CHIP:DMG: EndpointId = 0x1, - [1650538315.674491][3678:3678] CHIP:DMG: ClusterId = 0x6, - [1650538315.674598][3678:3678] CHIP:DMG: CommandId = 0x42, - [1650538315.674678][3678:3678] CHIP:DMG: }, - [1650538315.674781][3678:3678] CHIP:DMG: - [1650538315.674851][3678:3678] CHIP:DMG: CommandData = - [1650538315.674941][3678:3678] CHIP:DMG: { - [1650538315.674991][3678:3678] CHIP:DMG: 0x0 = 0, - [1650538315.675034][3678:3678] CHIP:DMG: 0x1 = 120, - [1650538315.675099][3678:3678] CHIP:DMG: 0x2 = 5, - [1650538315.675159][3678:3678] CHIP:DMG: }, - [1650538315.675204][3678:3678] CHIP:DMG: }, - [1650538315.675246][3678:3678] CHIP:DMG: - [1650538315.675289][3678:3678] CHIP:DMG: ], - [1650538315.675327][3678:3678] CHIP:DMG: - [1650538315.675368][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650538315.675398][3678:3678] CHIP:DMG: }, - [1650538315.675497][3678:3678] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1650538315.675541][3678:3678] CHIP:DMG: AccessControl: allowed - [1650538315.675584][3678:3678] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0042 - [1650538315.675646][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11998 - [1650538315.675701][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d11999 - [1650538315.675732][3678:3678] CHIP:ZCL: On/Off set value: 1 1 - [1650538315.675759][3678:3678] CHIP:ZCL: Toggle on/off from 0 to 1 - [1650538315.675800][3678:3678] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to a5d1199a - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_2_Simulated.yaml new file mode 100644 index 00000000000000..97632786b34855 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_OO_3_2_Simulated.yaml @@ -0,0 +1,52 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.3.2. [TC-OO-3.2] Functionality with client as DUT + +PICS: + - OO.C + +config: + nodeId: 0x12344321 + cluster: "On/Off" + endpoint: 1 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT issues an Off command to the TH" + PICS: OO.C.C00.Tx + wait: "Off" + + - label: "DUT issues an On command to the TH" + PICS: OO.C.C01.Tx + wait: "On" + + - label: "DUT issues an Toggle command to the TH" + PICS: OO.C.C02.Tx + wait: "Toggle" + + - label: "DUT issues an OffWithEffect command to the TH" + PICS: OO.C.C40.Tx + wait: "OffWithEffect" + + - label: "DUT issues an OnWithRecallGlobalScene command to the TH" + PICS: OO.C.C41.Tx + wait: "OnWithRecallGlobalScene" + + - label: "DUT issues an OnWithTimedOff command to the TH" + PICS: OO.C.C42.Tx + wait: "OnWithTimedOff" diff --git a/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml deleted file mode 100644 index fd39663119c70f..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml +++ /dev/null @@ -1,1012 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.3.1. [TC-PCC-3.1] Attributes with client as DUT - -PICS: - - PCC.C - - PCC.C.AM-READ - - PCC.C.AO-READ - - PCC.C.AM-WRITE - - PCC.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order." - PICS: PCC.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool pumpconfigurationandcontrol read max-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - - [1651148412.273866][2336:2336] CHIP:IM: Received Read request - [1651148412.273922][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148412.273950][2336:2336] CHIP:DMG: { - [1651148412.273972][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148412.273999][2336:2336] CHIP:DMG: [ - [1651148412.274024][2336:2336] CHIP:DMG: AttributePathIB = - [1651148412.274063][2336:2336] CHIP:DMG: { - [1651148412.274093][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148412.274126][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148412.274156][2336:2336] CHIP:DMG: Attribute = 0x0000_0000, - [1651148412.274186][2336:2336] CHIP:DMG: } - [1651148412.274216][2336:2336] CHIP:DMG: - [1651148412.274242][2336:2336] CHIP:DMG: ], - [1651148412.274271][2336:2336] CHIP:DMG: - [1651148412.274298][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148412.274325][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148412.274349][2336:2336] CHIP:DMG: }, - [1651148412.274424][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool pumpconfigurationandcontrol read max-speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148440.471321][2336:2336] CHIP:IM: Received Read request - [1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148440.471416][2336:2336] CHIP:DMG: { - [1651148440.471438][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148440.471481][2336:2336] CHIP:DMG: [ - [1651148440.471507][2336:2336] CHIP:DMG: AttributePathIB = - [1651148440.471546][2336:2336] CHIP:DMG: { - [1651148440.471571][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148440.471609][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148440.471642][2336:2336] CHIP:DMG: Attribute = 0x0000_0001, - [1651148440.471681][2336:2336] CHIP:DMG: } - [1651148440.471719][2336:2336] CHIP:DMG: - [1651148440.471745][2336:2336] CHIP:DMG: ], - [1651148440.471770][2336:2336] CHIP:DMG: - [1651148440.471806][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148440.471831][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148440.471867][2336:2336] CHIP:DMG: }, - [1651148440.471947][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148440.472042][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool pumpconfigurationandcontrol read max-flow 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148472.518933][2336:2336] CHIP:IM: Received Read request - [1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148472.519023][2336:2336] CHIP:DMG: { - [1651148472.519071][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148472.519104][2336:2336] CHIP:DMG: [ - [1651148472.519163][2336:2336] CHIP:DMG: AttributePathIB = - [1651148472.519218][2336:2336] CHIP:DMG: { - [1651148472.519286][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148472.519328][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148472.519364][2336:2336] CHIP:DMG: Attribute = 0x0000_0002, - [1651148472.519400][2336:2336] CHIP:DMG: } - [1651148472.519459][2336:2336] CHIP:DMG: - [1651148472.519521][2336:2336] CHIP:DMG: ], - [1651148472.519555][2336:2336] CHIP:DMG: - [1651148472.519584][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148472.519666][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148472.519695][2336:2336] CHIP:DMG: }, - [1651148472.519802][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148472.519971][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651570515.206834][9246:9246] CHIP:IM: Received Read request - [1651570515.206917][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651570515.206966][9246:9246] CHIP:DMG: { - [1651570515.207006][9246:9246] CHIP:DMG: AttributePathIBs = - [1651570515.207053][9246:9246] CHIP:DMG: [ - [1651570515.207098][9246:9246] CHIP:DMG: AttributePathIB = - [1651570515.207154][9246:9246] CHIP:DMG: { - [1651570515.207210][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651570515.207265][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651570515.207322][9246:9246] CHIP:DMG: Attribute = 0x0000_0011, - [1651570515.207381][9246:9246] CHIP:DMG: } - [1651570515.207436][9246:9246] CHIP:DMG: - [1651570515.207483][9246:9246] CHIP:DMG: ], - [1651570515.207535][9246:9246] CHIP:DMG: - [1651570515.207587][9246:9246] CHIP:DMG: isFabricFiltered = true, - [1651570515.207634][9246:9246] CHIP:DMG: InteractionModelRevision = 1 - [1651570515.207677][9246:9246] CHIP:DMG: } - - ./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651570975.559213][9246:9246] CHIP:IM: Received Read request - [1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651570975.559295][9246:9246] CHIP:DMG: { - [1651570975.559317][9246:9246] CHIP:DMG: AttributePathIBs = - [1651570975.559343][9246:9246] CHIP:DMG: [ - [1651570975.559367][9246:9246] CHIP:DMG: AttributePathIB = - [1651570975.559400][9246:9246] CHIP:DMG: { - [1651570975.559428][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651570975.559465][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651570975.559602][9246:9246] CHIP:DMG: Attribute = 0x0000_0012, - [1651570975.559626][9246:9246] CHIP:DMG: } - [1651570975.559655][9246:9246] CHIP:DMG: - [1651570975.559681][9246:9246] CHIP:DMG: ], - [1651570975.559710][9246:9246] CHIP:DMG: - - ./chip-tool pumpconfigurationandcontrol read capacity 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571009.295069][9246:9246] CHIP:IM: Received Read request - [1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651571009.295203][9246:9246] CHIP:DMG: { - [1651571009.295244][9246:9246] CHIP:DMG: AttributePathIBs = - [1651571009.295293][9246:9246] CHIP:DMG: [ - [1651571009.295339][9246:9246] CHIP:DMG: AttributePathIB = - [1651571009.295387][9246:9246] CHIP:DMG: { - [1651571009.295438][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651571009.295493][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651571009.295548][9246:9246] CHIP:DMG: Attribute = 0x0000_0013, - [1651571009.295597][9246:9246] CHIP:DMG: } - [1651571009.295649][9246:9246] CHIP:DMG: - [1651571009.295696][9246:9246] CHIP:DMG: ], - [1651571009.295747][9246:9246] CHIP:DMG: - - ./chip-tool pumpconfigurationandcontrol read operation-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571334.617100][9337:9337] CHIP:IM: Received Read request - [1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571334.617181][9337:9337] CHIP:DMG: { - [1651571334.617213][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571334.617250][9337:9337] CHIP:DMG: [ - [1651571334.617291][9337:9337] CHIP:DMG: AttributePathIB = - [1651571334.617338][9337:9337] CHIP:DMG: { - [1651571334.617368][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571334.617404][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571334.617433][9337:9337] CHIP:DMG: Attribute = 0x0000_0020, - [1651571334.617467][9337:9337] CHIP:DMG: } - [1651571334.617499][9337:9337] CHIP:DMG: - [1651571334.617537][9337:9337] CHIP:DMG: ], - [1651571334.617567][9337:9337] CHIP:DMG: - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: PCC.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148507.711384][2336:2336] CHIP:IM: Received Read request - [1651148507.711452][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148507.711478][2336:2336] CHIP:DMG: { - [1651148507.711500][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148507.711526][2336:2336] CHIP:DMG: [ - [1651148507.711560][2336:2336] CHIP:DMG: AttributePathIB = - [1651148507.711606][2336:2336] CHIP:DMG: { - [1651148507.711637][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148507.711677][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148507.711709][2336:2336] CHIP:DMG: Attribute = 0x0000_0003, - [1651148507.711747][2336:2336] CHIP:DMG: } - [1651148507.711778][2336:2336] CHIP:DMG: - [1651148507.711813][2336:2336] CHIP:DMG: ], - [1651148507.711841][2336:2336] CHIP:DMG: - [1651148507.711876][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148507.711902][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148507.711934][2336:2336] CHIP:DMG: }, - [1651148507.712016][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148507.712119][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0" - - ./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148537.336390][2336:2336] CHIP:IM: Received Read request - [1651148537.336445][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148537.336471][2336:2336] CHIP:DMG: { - [1651148537.336503][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148537.336530][2336:2336] CHIP:DMG: [ - [1651148537.336554][2336:2336] CHIP:DMG: AttributePathIB = - [1651148537.336593][2336:2336] CHIP:DMG: { - [1651148537.336621][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148537.336666][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148537.336701][2336:2336] CHIP:DMG: Attribute = 0x0000_0004, - [1651148537.336741][2336:2336] CHIP:DMG: } - [1651148537.336770][2336:2336] CHIP:DMG: - [1651148537.336796][2336:2336] CHIP:DMG: ], - [1651148537.336836][2336:2336] CHIP:DMG: - [1651148537.336863][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148537.336888][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148537.336921][2336:2336] CHIP:DMG: }, - [1651148537.337002][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148537.337095][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0" - - ./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148566.361843][2336:2336] CHIP:IM: Received Read request - [1651148566.361897][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148566.361923][2336:2336] CHIP:DMG: { - [1651148566.361944][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148566.361967][2336:2336] CHIP:DMG: [ - [1651148566.361988][2336:2336] CHIP:DMG: AttributePathIB = - [1651148566.362012][2336:2336] CHIP:DMG: { - [1651148566.362038][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148566.362068][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148566.362093][2336:2336] CHIP:DMG: Attribute = 0x0000_0005, - [1651148566.362119][2336:2336] CHIP:DMG: } - [1651148566.362147][2336:2336] CHIP:DMG: - [1651148566.362173][2336:2336] CHIP:DMG: ], - [1651148566.362201][2336:2336] CHIP:DMG: - [1651148566.362226][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148566.362251][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148566.362274][2336:2336] CHIP:DMG: } - - ./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148595.417817][2336:2336] CHIP:IM: Received Read request - [1651148595.417901][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148595.417932][2336:2336] CHIP:DMG: { - [1651148595.417956][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148595.417987][2336:2336] CHIP:DMG: [ - [1651148595.418014][2336:2336] CHIP:DMG: AttributePathIB = - [1651148595.418049][2336:2336] CHIP:DMG: { - [1651148595.418119][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148595.418179][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148595.418221][2336:2336] CHIP:DMG: Attribute = 0x0000_0006, - [1651148595.418259][2336:2336] CHIP:DMG: } - [1651148595.418341][2336:2336] CHIP:DMG: - [1651148595.418374][2336:2336] CHIP:DMG: ], - [1651148595.418408][2336:2336] CHIP:DMG: - [1651148595.418438][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148595.418467][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148595.418528][2336:2336] CHIP:DMG: }, - [1651148595.418660][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148595.418781][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0" - - ./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148626.823098][2336:2336] CHIP:IM: Received Read request - [1651148626.823201][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148626.823232][2336:2336] CHIP:DMG: { - [1651148626.823257][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148626.823291][2336:2336] CHIP:DMG: [ - [1651148626.823319][2336:2336] CHIP:DMG: AttributePathIB = - [1651148626.823353][2336:2336] CHIP:DMG: { - [1651148626.823388][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148626.823427][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148626.823462][2336:2336] CHIP:DMG: Attribute = 0x0000_0007, - [1651148626.823495][2336:2336] CHIP:DMG: } - [1651148626.823534][2336:2336] CHIP:DMG: - [1651148626.823561][2336:2336] CHIP:DMG: ], - [1651148626.823593][2336:2336] CHIP:DMG: - [1651148626.823623][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148626.823652][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148626.823678][2336:2336] CHIP:DMG: }," - - ./chip-tool pumpconfigurationandcontrol read max-const-speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564124.345958][8748:8748] CHIP:IM: Received Read request - [1651564124.346033][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564124.346109][8748:8748] CHIP:DMG: { - [1651564124.346147][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564124.346189][8748:8748] CHIP:DMG: [ - [1651564124.346228][8748:8748] CHIP:DMG: AttributePathIB = - [1651564124.346273][8748:8748] CHIP:DMG: { - [1651564124.346416][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564124.346467][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564124.346517][8748:8748] CHIP:DMG: Attribute = 0x0000_0008, - [1651564124.346566][8748:8748] CHIP:DMG: } - [1651564124.346612][8748:8748] CHIP:DMG: - [1651564124.346657][8748:8748] CHIP:DMG: ], - [1651564124.346703][8748:8748] CHIP:DMG: - [1651564124.346746][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564124.346787][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564124.346826][8748:8748] CHIP:DMG: }, - [1651564124.346941][8748:8748] CHIP:DMG: IM RH moving to [GeneratingReports]" - - - - ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564163.319315][8748:8748] CHIP:IM: Received Read request - [1651564163.319399][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564163.319447][8748:8748] CHIP:DMG: { - [1651564163.319488][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564163.319539][8748:8748] CHIP:DMG: [ - [1651564163.319584][8748:8748] CHIP:DMG: AttributePathIB = - [1651564163.319639][8748:8748] CHIP:DMG: { - [1651564163.319694][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564163.319758][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564163.319822][8748:8748] CHIP:DMG: Attribute = 0x0000_0009, - [1651564163.319875][8748:8748] CHIP:DMG: } - [1651564163.319925][8748:8748] CHIP:DMG: - [1651564163.319975][8748:8748] CHIP:DMG: ], - [1651564163.320027][8748:8748] CHIP:DMG: - [1651564163.320075][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564163.320122][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564163.320165][8748:8748] CHIP:DMG: }, - [1651564163.320291][8748:8748] CHIP:DMG: IM RH moving to [GeneratingReports]" - - ./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564281.857728][8748:8748] CHIP:IM: Received Read request - [1651564281.857784][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564281.857806][8748:8748] CHIP:DMG: { - [1651564281.857824][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564281.857846][8748:8748] CHIP:DMG: [ - [1651564281.857867][8748:8748] CHIP:DMG: AttributePathIB = - [1651564281.857902][8748:8748] CHIP:DMG: { - [1651564281.857931][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564281.857961][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564281.857990][8748:8748] CHIP:DMG: Attribute = 0x0000_000A, - [1651564281.858018][8748:8748] CHIP:DMG: } - [1651564281.858047][8748:8748] CHIP:DMG: - [1651564281.858099][8748:8748] CHIP:DMG: ], - [1651564281.858131][8748:8748] CHIP:DMG: - [1651564281.858157][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564281.858183][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564281.858206][8748:8748] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564317.488333][8748:8748] CHIP:IM: Received Read request - [1651564317.488417][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564317.488465][8748:8748] CHIP:DMG: { - [1651564317.488505][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564317.488551][8748:8748] CHIP:DMG: [ - [1651564317.488602][8748:8748] CHIP:DMG: AttributePathIB = - [1651564317.488656][8748:8748] CHIP:DMG: { - [1651564317.488707][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564317.488772][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564317.488823][8748:8748] CHIP:DMG: Attribute = 0x0000_000B, - [1651564317.488877][8748:8748] CHIP:DMG: } - [1651564317.488920][8748:8748] CHIP:DMG: - [1651564317.488952][8748:8748] CHIP:DMG: ], - [1651564317.488983][8748:8748] CHIP:DMG: - [1651564317.489011][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564317.489038][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564317.489063][8748:8748] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564350.267434][8748:8748] CHIP:IM: Received Read request - [1651564350.267489][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564350.267516][8748:8748] CHIP:DMG: { - [1651564350.267609][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564350.267642][8748:8748] CHIP:DMG: [ - [1651564350.267671][8748:8748] CHIP:DMG: AttributePathIB = - [1651564350.267704][8748:8748] CHIP:DMG: { - [1651564350.267733][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564350.267767][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564350.267800][8748:8748] CHIP:DMG: Attribute = 0x0000_000C, - [1651564350.267830][8748:8748] CHIP:DMG: } - [1651564350.267862][8748:8748] CHIP:DMG: - [1651564350.267890][8748:8748] CHIP:DMG: ], - [1651564350.267918][8748:8748] CHIP:DMG: - [1651564350.267945][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564350.267970][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564350.268092][8748:8748] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651564415.272861][8748:8748] CHIP:IM: Received Read request - [1651564415.272946][8748:8748] CHIP:DMG: ReadRequestMessage = - [1651564415.272990][8748:8748] CHIP:DMG: { - [1651564415.273025][8748:8748] CHIP:DMG: AttributePathIBs = - [1651564415.273067][8748:8748] CHIP:DMG: [ - [1651564415.273108][8748:8748] CHIP:DMG: AttributePathIB = - [1651564415.273155][8748:8748] CHIP:DMG: { - [1651564415.273200][8748:8748] CHIP:DMG: Endpoint = 0x1, - [1651564415.273253][8748:8748] CHIP:DMG: Cluster = 0x200, - [1651564415.273305][8748:8748] CHIP:DMG: Attribute = 0x0000_0010, - [1651564415.273349][8748:8748] CHIP:DMG: } - [1651564415.273395][8748:8748] CHIP:DMG: - [1651564415.273437][8748:8748] CHIP:DMG: ], - [1651564415.273477][8748:8748] CHIP:DMG: - [1651564415.273520][8748:8748] CHIP:DMG: isFabricFiltered = true, - [1651564415.273562][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564415.273600][8748:8748] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571041.252491][9246:9246] CHIP:IM: Received Read request - [1651571041.252548][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651571041.252574][9246:9246] CHIP:DMG: { - [1651571041.252608][9246:9246] CHIP:DMG: AttributePathIBs = - [1651571041.252642][9246:9246] CHIP:DMG: [ - [1651571041.252679][9246:9246] CHIP:DMG: AttributePathIB = - [1651571041.252710][9246:9246] CHIP:DMG: { - [1651571041.252751][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651571041.252793][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651571041.252826][9246:9246] CHIP:DMG: Attribute = 0x0000_0014, - [1651571041.252863][9246:9246] CHIP:DMG: } - [1651571041.252890][9246:9246] CHIP:DMG: - [1651571041.252926][9246:9246] CHIP:DMG: ], - [1651571041.252955][9246:9246] CHIP:DMG: - [1651571041.252990][9246:9246] CHIP:DMG: isFabricFiltered = true, - [1651571041.253016][9246:9246] CHIP:DMG: InteractionModelRevision = 1 - [1651571041.253049][9246:9246] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571194.810592][9337:9337] CHIP:IM: Received Read request - [1651571194.810647][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571194.810673][9337:9337] CHIP:DMG: { - [1651571194.810694][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571194.810717][9337:9337] CHIP:DMG: [ - [1651571194.810741][9337:9337] CHIP:DMG: AttributePathIB = - [1651571194.810771][9337:9337] CHIP:DMG: { - [1651571194.810800][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571194.810832][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571194.810863][9337:9337] CHIP:DMG: Attribute = 0x0000_0015, - [1651571194.810892][9337:9337] CHIP:DMG: } - [1651571194.810922][9337:9337] CHIP:DMG: - [1651571194.810947][9337:9337] CHIP:DMG: ], - [1651571194.810979][9337:9337] CHIP:DMG: - [1651571194.811005][9337:9337] CHIP:DMG: isFabricFiltered = true, - [1651571194.811030][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571194.811053][9337:9337] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read power 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571264.121840][9337:9337] CHIP:IM: Received Read request - [1651571264.121896][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571264.121924][9337:9337] CHIP:DMG: { - [1651571264.121945][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571264.121971][9337:9337] CHIP:DMG: [ - [1651571264.122002][9337:9337] CHIP:DMG: AttributePathIB = - [1651571264.122034][9337:9337] CHIP:DMG: { - [1651571264.122063][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571264.122239][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571264.122271][9337:9337] CHIP:DMG: Attribute = 0x0000_0016, - [1651571264.122300][9337:9337] CHIP:DMG: } - [1651571264.122331][9337:9337] CHIP:DMG: - [1651571264.122361][9337:9337] CHIP:DMG: ], - [1651571264.122391][9337:9337] CHIP:DMG: - [1651571264.122418][9337:9337] CHIP:DMG: isFabricFiltered = true, - [1651571264.122444][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571264.122468][9337:9337] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571293.017448][9337:9337] CHIP:IM: Received Read request - [1651571293.017534][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571293.017581][9337:9337] CHIP:DMG: { - [1651571293.017621][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571293.017669][9337:9337] CHIP:DMG: [ - [1651571293.017715][9337:9337] CHIP:DMG: AttributePathIB = - [1651571293.017769][9337:9337] CHIP:DMG: { - [1651571293.017825][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571293.017884][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571293.017942][9337:9337] CHIP:DMG: Attribute = 0x0000_0017, - [1651571293.017997][9337:9337] CHIP:DMG: } - [1651571293.018052][9337:9337] CHIP:DMG: - [1651571293.018148][9337:9337] CHIP:DMG: ], - [1651571293.018204][9337:9337] CHIP:DMG: - [1651571293.018256][9337:9337] CHIP:DMG: isFabricFiltered = true, - [1651571293.018304][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571293.018348][9337:9337] CHIP:DMG: }, - - ./chip-tool pumpconfigurationandcontrol read control-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571369.365807][9337:9337] CHIP:IM: Received Read request - [1651571369.365907][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571369.365956][9337:9337] CHIP:DMG: { - [1651571369.365990][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571369.366053][9337:9337] CHIP:DMG: [ - [1651571369.366136][9337:9337] CHIP:DMG: AttributePathIB = - [1651571369.366198][9337:9337] CHIP:DMG: { - [1651571369.366256][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571369.366317][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571369.366395][9337:9337] CHIP:DMG: Attribute = 0x0000_0021, - [1651571369.366448][9337:9337] CHIP:DMG: } - [1651571369.366518][9337:9337] CHIP:DMG: - [1651571369.366592][9337:9337] CHIP:DMG: ], - [1651571369.366646][9337:9337] CHIP:DMG: - [1651571369.366713][9337:9337] CHIP:DMG: isFabricFiltered = true, - [1651571369.366770][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571369.366827][9337:9337] CHIP:DMG: }, - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order." - PICS: PCC.C.AM-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pumpconfigurationandcontrol write operation-mode 0 1 1 - - verify on TH all-cluster-app receives the Write Request for the data sent in the above command - - [1652858465.008652][2107:2107] CHIP:IM: Received Write request - [1652858465.008695][2107:2107] CHIP:DMG: IM WH moving to [Initialized] - [1652858465.008858][2107:2107] CHIP:DMG: WriteRequestMessage = - [1652858465.008908][2107:2107] CHIP:DMG: { - [1652858465.008950][2107:2107] CHIP:DMG: suppressResponse = false, - [1652858465.008999][2107:2107] CHIP:DMG: timedRequest = false, - [1652858465.009045][2107:2107] CHIP:DMG: AttributeDataIBs = - [1652858465.009088][2107:2107] CHIP:DMG: [ - [1652858465.009115][2107:2107] CHIP:DMG: AttributeDataIB = - [1652858465.009150][2107:2107] CHIP:DMG: { - [1652858465.009235][2107:2107] CHIP:DMG: AttributePathIB = - [1652858465.009279][2107:2107] CHIP:DMG: { - [1652858465.009316][2107:2107] CHIP:DMG: Endpoint = 0x1, - [1652858465.009359][2107:2107] CHIP:DMG: Cluster = 0x200, - [1652858465.009399][2107:2107] CHIP:DMG: Attribute = 0x0000_0020, - [1652858465.009434][2107:2107] CHIP:DMG: } - [1652858465.009475][2107:2107] CHIP:DMG: - [1652858465.009514][2107:2107] CHIP:DMG: Data = 0, - [1652858465.009552][2107:2107] CHIP:DMG: }, - [1652858465.009588][2107:2107] CHIP:DMG: - [1652858465.009615][2107:2107] CHIP:DMG: ], - [1652858465.009648][2107:2107] CHIP:DMG: - [1652858465.009677][2107:2107] CHIP:DMG: moreChunkedMessages = false, - [1652858465.009706][2107:2107] CHIP:DMG: InteractionModelRevision = 1 - [1652858465.009732][2107:2107] CHIP:DMG: }, - [1652858465.009826][2107:2107] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0200 e=1 p=m - [1652858465.009867][2107:2107] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: PCC.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - - ./chip-tool pumpconfigurationandcontrol write control-mode 0 1 1 - - verify on TH all-cluster-app receives the Write Request for the data sent in the above command - - [1652858653.083434][2107:2107] CHIP:IM: Received Write request - [1652858653.083469][2107:2107] CHIP:DMG: IM WH moving to [Initialized] - [1652858653.083544][2107:2107] CHIP:DMG: WriteRequestMessage = - [1652858653.083588][2107:2107] CHIP:DMG: { - [1652858653.083623][2107:2107] CHIP:DMG: suppressResponse = false, - [1652858653.083687][2107:2107] CHIP:DMG: timedRequest = false, - [1652858653.083726][2107:2107] CHIP:DMG: AttributeDataIBs = - [1652858653.083771][2107:2107] CHIP:DMG: [ - [1652858653.083807][2107:2107] CHIP:DMG: AttributeDataIB = - [1652858653.083848][2107:2107] CHIP:DMG: { - [1652858653.083886][2107:2107] CHIP:DMG: AttributePathIB = - [1652858653.083933][2107:2107] CHIP:DMG: { - [1652858653.083981][2107:2107] CHIP:DMG: Endpoint = 0x1, - [1652858653.084027][2107:2107] CHIP:DMG: Cluster = 0x200, - [1652858653.084079][2107:2107] CHIP:DMG: Attribute = 0x0000_0021, - [1652858653.084121][2107:2107] CHIP:DMG: } - [1652858653.084169][2107:2107] CHIP:DMG: - [1652858653.084222][2107:2107] CHIP:DMG: Data = 0, - [1652858653.084268][2107:2107] CHIP:DMG: }, - [1652858653.084312][2107:2107] CHIP:DMG: - [1652858653.084348][2107:2107] CHIP:DMG: ], - [1652858653.084391][2107:2107] CHIP:DMG: - [1652858653.084428][2107:2107] CHIP:DMG: moreChunkedMessages = false, - [1652858653.084465][2107:2107] CHIP:DMG: InteractionModelRevision = 1 - [1652858653.084499][2107:2107] CHIP:DMG: }, - [1652858653.084617][2107:2107] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0200 e=1 p=m - [1652858653.084669][2107:2107] CHIP:DMG: AccessControl: allowed - [1652858653.084727][2107:2107] CHIP:DMG: Endpoint 1, Cluster 0x0000_0200 update version to b7ba155c - - ./chip-tool pumpconfigurationandcontrol write lifetime-running-hours 1 1 1 - - - verify on TH all-cluster-app receives the Write Request for the data sent in the above command - - [1652858777.844427][2107:2107] CHIP:IM: Received Write request - [1652858777.844450][2107:2107] CHIP:DMG: IM WH moving to [Initialized] - [1652858777.844508][2107:2107] CHIP:DMG: WriteRequestMessage = - [1652858777.844535][2107:2107] CHIP:DMG: { - [1652858777.844558][2107:2107] CHIP:DMG: suppressResponse = false, - [1652858777.844585][2107:2107] CHIP:DMG: timedRequest = false, - [1652858777.844611][2107:2107] CHIP:DMG: AttributeDataIBs = - [1652858777.844640][2107:2107] CHIP:DMG: [ - [1652858777.844666][2107:2107] CHIP:DMG: AttributeDataIB = - [1652858777.844691][2107:2107] CHIP:DMG: { - [1652858777.844713][2107:2107] CHIP:DMG: AttributePathIB = - [1652858777.844740][2107:2107] CHIP:DMG: { - [1652858777.844770][2107:2107] CHIP:DMG: Endpoint = 0x1, - [1652858777.844804][2107:2107] CHIP:DMG: Cluster = 0x200, - [1652858777.844847][2107:2107] CHIP:DMG: Attribute = 0x0000_0015, - [1652858777.844877][2107:2107] CHIP:DMG: } - [1652858777.844909][2107:2107] CHIP:DMG: - [1652858777.844941][2107:2107] CHIP:DMG: Data = 1, - [1652858777.844970][2107:2107] CHIP:DMG: }, - [1652858777.845000][2107:2107] CHIP:DMG: - [1652858777.845023][2107:2107] CHIP:DMG: ], - [1652858777.845052][2107:2107] CHIP:DMG: - [1652858777.845076][2107:2107] CHIP:DMG: moreChunkedMessages = false, - [1652858777.845101][2107:2107] CHIP:DMG: InteractionModelRevision = 1 - [1652858777.845125][2107:2107] CHIP:DMG: }, - [1652858777.845214][2107:2107] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0200 e=1 p=m - [1652858777.845258][2107:2107] CHIP:DMG: AccessControl: allowed - [1652858777.845300][2107:2107] CHIP:DMG: Endpoint 1, Cluster 0x0000_0200 update version to b7ba155e - - ./chip-tool pumpconfigurationandcontrol write lifetime-energy-consumed 1 1 1 - - - verify on TH all-cluster-app receives the Write Request for the data sent in the above command - - [1652858844.149759][2107:2107] CHIP:IM: Received Write request - [1652858844.149801][2107:2107] CHIP:DMG: IM WH moving to [Initialized] - [1652858844.149889][2107:2107] CHIP:DMG: WriteRequestMessage = - [1652858844.149935][2107:2107] CHIP:DMG: { - [1652858844.149978][2107:2107] CHIP:DMG: suppressResponse = false, - [1652858844.150027][2107:2107] CHIP:DMG: timedRequest = false, - [1652858844.150073][2107:2107] CHIP:DMG: AttributeDataIBs = - [1652858844.150165][2107:2107] CHIP:DMG: [ - [1652858844.150211][2107:2107] CHIP:DMG: AttributeDataIB = - [1652858844.150264][2107:2107] CHIP:DMG: { - [1652858844.150315][2107:2107] CHIP:DMG: AttributePathIB = - [1652858844.150378][2107:2107] CHIP:DMG: { - [1652858844.150435][2107:2107] CHIP:DMG: Endpoint = 0x1, - [1652858844.150503][2107:2107] CHIP:DMG: Cluster = 0x200, - [1652858844.150568][2107:2107] CHIP:DMG: Attribute = 0x0000_0017, - [1652858844.150726][2107:2107] CHIP:DMG: } - [1652858844.150798][2107:2107] CHIP:DMG: - [1652858844.150860][2107:2107] CHIP:DMG: Data = 1, - [1652858844.150922][2107:2107] CHIP:DMG: }, - [1652858844.150980][2107:2107] CHIP:DMG: - [1652858844.151028][2107:2107] CHIP:DMG: ], - [1652858844.151081][2107:2107] CHIP:DMG: - [1652858844.151127][2107:2107] CHIP:DMG: moreChunkedMessages = false, - [1652858844.151173][2107:2107] CHIP:DMG: InteractionModelRevision = 1 - [1652858844.151216][2107:2107] CHIP:DMG: }, - [1652858844.151359][2107:2107] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0200 e=1 p=m - [1652858844.151421][2107:2107] CHIP:DMG: AccessControl: allowed - [1652858844.151488][2107:2107] CHIP:DMG: Endpoint 1, Cluster 0x0000_0200 update version to b7ba155f - disabled: true - - - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it - also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again." - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - - ./chip-tool pumpconfigurationandcontrol read attribute-list 1 1 - - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1660745892.540246][3657:3657] CHIP:IM: Received Read request - [1660745892.540323][3657:3657] CHIP:DMG: ReadRequestMessage = - [1660745892.540346][3657:3657] CHIP:DMG: { - [1660745892.540364][3657:3657] CHIP:DMG: AttributePathIBs = - [1660745892.540401][3657:3657] CHIP:DMG: [ - [1660745892.540422][3657:3657] CHIP:DMG: AttributePathIB = - [1660745892.540452][3657:3657] CHIP:DMG: { - [1660745892.540487][3657:3657] CHIP:DMG: Endpoint = 0x1, - [1660745892.540517][3657:3657] CHIP:DMG: Cluster = 0x200, - [1660745892.540556][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFB, - [1660745892.540582][3657:3657] CHIP:DMG: } - [1660745892.540616][3657:3657] CHIP:DMG: - [1660745892.540638][3657:3657] CHIP:DMG: ], - [1660745892.540673][3657:3657] CHIP:DMG: - [1660745892.540696][3657:3657] CHIP:DMG: isFabricFiltered = true, - [1660745892.540726][3657:3657] CHIP:DMG: InteractionModelRevision = 1 - [1660745892.540747][3657:3657] CHIP:DMG: }, - [1660745892.540821][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports] - [1660745892.540929][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1660745892.540954][3657:3657] CHIP:DMG: Cluster 200, Attribute fffb is dirty - [1660745892.540982][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0) - - ./chip-tool pumpconfigurationandcontrol read feature-map 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1660745929.334567][3657:3657] CHIP:IM: Received Read request - [1660745929.334641][3657:3657] CHIP:DMG: ReadRequestMessage = - [1660745929.334677][3657:3657] CHIP:DMG: { - [1660745929.334696][3657:3657] CHIP:DMG: AttributePathIBs = - [1660745929.334728][3657:3657] CHIP:DMG: [ - [1660745929.334750][3657:3657] CHIP:DMG: AttributePathIB = - [1660745929.334778][3657:3657] CHIP:DMG: { - [1660745929.334814][3657:3657] CHIP:DMG: Endpoint = 0x1, - [1660745929.334853][3657:3657] CHIP:DMG: Cluster = 0x200, - [1660745929.334884][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFC, - [1660745929.334920][3657:3657] CHIP:DMG: } - [1660745929.334947][3657:3657] CHIP:DMG: - [1660745929.334978][3657:3657] CHIP:DMG: ], - [1660745929.335006][3657:3657] CHIP:DMG: - [1660745929.335037][3657:3657] CHIP:DMG: isFabricFiltered = true, - [1660745929.335059][3657:3657] CHIP:DMG: InteractionModelRevision = 1 - [1660745929.335079][3657:3657] CHIP:DMG: }, - [1660745929.335155][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports] - [1660745929.335256][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1660745929.335291][3657:3657] CHIP:DMG: Cluster 200, Attribute fffc is dirty - [1660745929.335311][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFC (expanded=0) - - - - ./chip-tool pumpconfigurationandcontrol read max-pressure 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148412.273866][2336:2336] CHIP:IM: Received Read request - [1651148412.273922][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148412.273950][2336:2336] CHIP:DMG: { - [1651148412.273972][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148412.273999][2336:2336] CHIP:DMG: [ - [1651148412.274024][2336:2336] CHIP:DMG: AttributePathIB = - [1651148412.274063][2336:2336] CHIP:DMG: { - [1651148412.274093][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148412.274126][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148412.274156][2336:2336] CHIP:DMG: Attribute = 0x0000_0000, - [1651148412.274186][2336:2336] CHIP:DMG: } - [1651148412.274216][2336:2336] CHIP:DMG: - [1651148412.274242][2336:2336] CHIP:DMG: ], - [1651148412.274271][2336:2336] CHIP:DMG: - [1651148412.274298][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148412.274325][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148412.274349][2336:2336] CHIP:DMG: }, - [1651148412.274424][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool pumpconfigurationandcontrol read max-speed 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148440.471321][2336:2336] CHIP:IM: Received Read request - [1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148440.471416][2336:2336] CHIP:DMG: { - [1651148440.471438][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148440.471481][2336:2336] CHIP:DMG: [ - [1651148440.471507][2336:2336] CHIP:DMG: AttributePathIB = - [1651148440.471546][2336:2336] CHIP:DMG: { - [1651148440.471571][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148440.471609][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148440.471642][2336:2336] CHIP:DMG: Attribute = 0x0000_0001, - [1651148440.471681][2336:2336] CHIP:DMG: } - [1651148440.471719][2336:2336] CHIP:DMG: - [1651148440.471745][2336:2336] CHIP:DMG: ], - [1651148440.471770][2336:2336] CHIP:DMG: - [1651148440.471806][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148440.471831][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148440.471867][2336:2336] CHIP:DMG: }, - [1651148440.471947][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148440.472042][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool pumpconfigurationandcontrol read max-flow 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651148472.518933][2336:2336] CHIP:IM: Received Read request - [1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148472.519023][2336:2336] CHIP:DMG: { - [1651148472.519071][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148472.519104][2336:2336] CHIP:DMG: [ - [1651148472.519163][2336:2336] CHIP:DMG: AttributePathIB = - [1651148472.519218][2336:2336] CHIP:DMG: { - [1651148472.519286][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148472.519328][2336:2336] CHIP:DMG: Cluster = 0x200, - [1651148472.519364][2336:2336] CHIP:DMG: Attribute = 0x0000_0002, - [1651148472.519400][2336:2336] CHIP:DMG: } - [1651148472.519459][2336:2336] CHIP:DMG: - [1651148472.519521][2336:2336] CHIP:DMG: ], - [1651148472.519555][2336:2336] CHIP:DMG: - [1651148472.519584][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148472.519666][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148472.519695][2336:2336] CHIP:DMG: }, - [1651148472.519802][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148472.519971][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - - [1651570515.206834][9246:9246] CHIP:IM: Received Read request - [1651570515.206917][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651570515.206966][9246:9246] CHIP:DMG: { - [1651570515.207006][9246:9246] CHIP:DMG: AttributePathIBs = - [1651570515.207053][9246:9246] CHIP:DMG: [ - [1651570515.207098][9246:9246] CHIP:DMG: AttributePathIB = - [1651570515.207154][9246:9246] CHIP:DMG: { - [1651570515.207210][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651570515.207265][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651570515.207322][9246:9246] CHIP:DMG: Attribute = 0x0000_0011, - [1651570515.207381][9246:9246] CHIP:DMG: } - [1651570515.207436][9246:9246] CHIP:DMG: - [1651570515.207483][9246:9246] CHIP:DMG: ], - [1651570515.207535][9246:9246] CHIP:DMG: - [1651570515.207587][9246:9246] CHIP:DMG: isFabricFiltered = true, - [1651570515.207634][9246:9246] CHIP:DMG: InteractionModelRevision = 1 - [1651570515.207677][9246:9246] CHIP:DMG: } - - ./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651570975.559213][9246:9246] CHIP:IM: Received Read request - [1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651570975.559295][9246:9246] CHIP:DMG: { - [1651570975.559317][9246:9246] CHIP:DMG: AttributePathIBs = - [1651570975.559343][9246:9246] CHIP:DMG: [ - [1651570975.559367][9246:9246] CHIP:DMG: AttributePathIB = - [1651570975.559400][9246:9246] CHIP:DMG: { - [1651570975.559428][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651570975.559465][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651570975.559602][9246:9246] CHIP:DMG: Attribute = 0x0000_0012, - [1651570975.559626][9246:9246] CHIP:DMG: } - [1651570975.559655][9246:9246] CHIP:DMG: - [1651570975.559681][9246:9246] CHIP:DMG: ], - [1651570975.559710][9246:9246] CHIP:DMG: - - ./chip-tool pumpconfigurationandcontrol read capacity 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571009.295069][9246:9246] CHIP:IM: Received Read request - [1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage = - [1651571009.295203][9246:9246] CHIP:DMG: { - [1651571009.295244][9246:9246] CHIP:DMG: AttributePathIBs = - [1651571009.295293][9246:9246] CHIP:DMG: [ - [1651571009.295339][9246:9246] CHIP:DMG: AttributePathIB = - [1651571009.295387][9246:9246] CHIP:DMG: { - [1651571009.295438][9246:9246] CHIP:DMG: Endpoint = 0x1, - [1651571009.295493][9246:9246] CHIP:DMG: Cluster = 0x200, - [1651571009.295548][9246:9246] CHIP:DMG: Attribute = 0x0000_0013, - [1651571009.295597][9246:9246] CHIP:DMG: } - [1651571009.295649][9246:9246] CHIP:DMG: - [1651571009.295696][9246:9246] CHIP:DMG: ], - [1651571009.295747][9246:9246] CHIP:DMG: - - ./chip-tool pumpconfigurationandcontrol read operation-mode 1 1 - - verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command - - [1651571334.617100][9337:9337] CHIP:IM: Received Read request - [1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage = - [1651571334.617181][9337:9337] CHIP:DMG: { - [1651571334.617213][9337:9337] CHIP:DMG: AttributePathIBs = - [1651571334.617250][9337:9337] CHIP:DMG: [ - [1651571334.617291][9337:9337] CHIP:DMG: AttributePathIB = - [1651571334.617338][9337:9337] CHIP:DMG: { - [1651571334.617368][9337:9337] CHIP:DMG: Endpoint = 0x1, - [1651571334.617404][9337:9337] CHIP:DMG: Cluster = 0x200, - [1651571334.617433][9337:9337] CHIP:DMG: Attribute = 0x0000_0020, - [1651571334.617467][9337:9337] CHIP:DMG: } - [1651571334.617499][9337:9337] CHIP:DMG: - [1651571334.617537][9337:9337] CHIP:DMG: ], - [1651571334.617567][9337:9337] CHIP:DMG: " - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: PCC.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-const-speed 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - - ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read speed 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read power 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol read control-mode 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: PCC.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pumpconfigurationandcontrol write control-mode 0 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol write lifetime-running-hours 1 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - - ./chip-tool pumpconfigurationandcontrol write lifetime-energy-consumed 1 1 1 - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_PCC_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_PCC_3_1_Simulated.yaml new file mode 100644 index 00000000000000..3eb8f82c0146ff --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_PCC_3_1_Simulated.yaml @@ -0,0 +1,494 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 15.1.1. [TC-PCC-3.1] Global attributes with server as DUT + +PICS: + - PCC.C + - PCC.C.AM-READ + - PCC.C.AO-READ + - PCC.C.AM-WRITE + - PCC.C.AO-WRITE + +config: + nodeId: 0x12344321 + cluster: "Pump Configuration and Control" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + #Read Mandatory attributes + - label: "Read attribute MaxPressure" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "MaxPressure" + + - label: "Read attribute MaxSpeed" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "MaxSpeed" + + - label: "Read attribute MaxFlow" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "MaxFlow" + + - label: "Read attribute EffectiveOperationMode" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "EffectiveOperationMode" + + - label: "Read attribute EffectiveControlMode" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "EffectiveControlMode" + + - label: "Read attribute Capacity" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "Capacity" + + - label: "Read attribute OperationMode" + PICS: PCC.C.AM-READ + wait: "readAttribute" + attribute: "OperationMode" + + #Read Optional attributes + - label: "Read attribute MinConstPressure" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinConstPressure" + + - label: "Read attribute MaxConstPressure" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxConstPressure" + + - label: "Read attribute MinCompPressure" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinCompPressure" + + - label: "Read attribute MaxCompPressure" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxCompPressure" + + - label: "Read attribute MinConstSpeed" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinConstSpeed" + + - label: "Read attribute MaxConstSpeed" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxConstSpeed" + + - label: "Read attribute MinConstFlow" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinConstFlow" + + - label: "Read attribute MaxConstFlow" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxConstFlow" + + - label: "Read attribute MinConstTemp" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MinConstTemp" + + - label: "Read attribute MaxConstTemp" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "MaxConstTemp" + + - label: "Read attribute PumpStatus" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "PumpStatus" + + - label: "Read attribute Speed" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "Speed" + + - label: "Read attribute LifetimeRunningHours" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "LifetimeRunningHours" + + - label: "Read attribute Power" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "Power" + + - label: "Read attribute LifetimeEnergyConsumed" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "LifetimeEnergyConsumed" + + - label: "Read attribute ControlMode" + PICS: PCC.C.AO-READ + wait: "readAttribute" + attribute: "ControlMode" + + #Write attributes + - label: "Write attribute LifetimeRunningHours" + PICS: PCC.C.AO-WRITE + wait: "writeAttribute" + attribute: "LifetimeRunningHours" + arguments: + value: + + - label: "Write attribute LifetimeEnergyConsumed" + PICS: PCC.C.AO-WRITE + wait: "writeAttribute" + attribute: "LifetimeEnergyConsumed" + arguments: + value: + + - label: "Write attribute OperationMode" + PICS: PCC.C.AO-WRITE + wait: "writeAttribute" + attribute: "OperationMode" + arguments: + value: + + - label: "Write attribute ControlMode" + PICS: PCC.C.AO-WRITE + wait: "writeAttribute" + attribute: "ControlMode" + arguments: + value: + + - label: + "Configure TH such that it implements mandatory and none of the + optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList.Commission DUT to TH again" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + ./chip-tool pumpconfigurationandcontrol read attribute-list 1 1 + + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1660745892.540246][3657:3657] CHIP:IM: Received Read request + [1660745892.540323][3657:3657] CHIP:DMG: ReadRequestMessage = + [1660745892.540346][3657:3657] CHIP:DMG: { + [1660745892.540364][3657:3657] CHIP:DMG: AttributePathIBs = + [1660745892.540401][3657:3657] CHIP:DMG: [ + [1660745892.540422][3657:3657] CHIP:DMG: AttributePathIB = + [1660745892.540452][3657:3657] CHIP:DMG: { + [1660745892.540487][3657:3657] CHIP:DMG: Endpoint = 0x1, + [1660745892.540517][3657:3657] CHIP:DMG: Cluster = 0x200, + [1660745892.540556][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFB, + [1660745892.540582][3657:3657] CHIP:DMG: } + [1660745892.540616][3657:3657] CHIP:DMG: + [1660745892.540638][3657:3657] CHIP:DMG: ], + [1660745892.540673][3657:3657] CHIP:DMG: + [1660745892.540696][3657:3657] CHIP:DMG: isFabricFiltered = true, + [1660745892.540726][3657:3657] CHIP:DMG: InteractionModelRevision = 1 + [1660745892.540747][3657:3657] CHIP:DMG: }, + [1660745892.540821][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports] + [1660745892.540929][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1660745892.540954][3657:3657] CHIP:DMG: Cluster 200, Attribute fffb is dirty + [1660745892.540982][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0) + + ./chip-tool pumpconfigurationandcontrol read feature-map 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1660745929.334567][3657:3657] CHIP:IM: Received Read request + [1660745929.334641][3657:3657] CHIP:DMG: ReadRequestMessage = + [1660745929.334677][3657:3657] CHIP:DMG: { + [1660745929.334696][3657:3657] CHIP:DMG: AttributePathIBs = + [1660745929.334728][3657:3657] CHIP:DMG: [ + [1660745929.334750][3657:3657] CHIP:DMG: AttributePathIB = + [1660745929.334778][3657:3657] CHIP:DMG: { + [1660745929.334814][3657:3657] CHIP:DMG: Endpoint = 0x1, + [1660745929.334853][3657:3657] CHIP:DMG: Cluster = 0x200, + [1660745929.334884][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFC, + [1660745929.334920][3657:3657] CHIP:DMG: } + [1660745929.334947][3657:3657] CHIP:DMG: + [1660745929.334978][3657:3657] CHIP:DMG: ], + [1660745929.335006][3657:3657] CHIP:DMG: + [1660745929.335037][3657:3657] CHIP:DMG: isFabricFiltered = true, + [1660745929.335059][3657:3657] CHIP:DMG: InteractionModelRevision = 1 + [1660745929.335079][3657:3657] CHIP:DMG: }, + [1660745929.335155][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports] + [1660745929.335256][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1660745929.335291][3657:3657] CHIP:DMG: Cluster 200, Attribute fffc is dirty + [1660745929.335311][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFC (expanded=0) + + + + ./chip-tool pumpconfigurationandcontrol read max-pressure 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651148412.273866][2336:2336] CHIP:IM: Received Read request + [1651148412.273922][2336:2336] CHIP:DMG: ReadRequestMessage = + [1651148412.273950][2336:2336] CHIP:DMG: { + [1651148412.273972][2336:2336] CHIP:DMG: AttributePathIBs = + [1651148412.273999][2336:2336] CHIP:DMG: [ + [1651148412.274024][2336:2336] CHIP:DMG: AttributePathIB = + [1651148412.274063][2336:2336] CHIP:DMG: { + [1651148412.274093][2336:2336] CHIP:DMG: Endpoint = 0x1, + [1651148412.274126][2336:2336] CHIP:DMG: Cluster = 0x200, + [1651148412.274156][2336:2336] CHIP:DMG: Attribute = 0x0000_0000, + [1651148412.274186][2336:2336] CHIP:DMG: } + [1651148412.274216][2336:2336] CHIP:DMG: + [1651148412.274242][2336:2336] CHIP:DMG: ], + [1651148412.274271][2336:2336] CHIP:DMG: + [1651148412.274298][2336:2336] CHIP:DMG: isFabricFiltered = true, + [1651148412.274325][2336:2336] CHIP:DMG: InteractionModelRevision = 1 + [1651148412.274349][2336:2336] CHIP:DMG: }, + [1651148412.274424][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] + + ./chip-tool pumpconfigurationandcontrol read max-speed 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651148440.471321][2336:2336] CHIP:IM: Received Read request + [1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage = + [1651148440.471416][2336:2336] CHIP:DMG: { + [1651148440.471438][2336:2336] CHIP:DMG: AttributePathIBs = + [1651148440.471481][2336:2336] CHIP:DMG: [ + [1651148440.471507][2336:2336] CHIP:DMG: AttributePathIB = + [1651148440.471546][2336:2336] CHIP:DMG: { + [1651148440.471571][2336:2336] CHIP:DMG: Endpoint = 0x1, + [1651148440.471609][2336:2336] CHIP:DMG: Cluster = 0x200, + [1651148440.471642][2336:2336] CHIP:DMG: Attribute = 0x0000_0001, + [1651148440.471681][2336:2336] CHIP:DMG: } + [1651148440.471719][2336:2336] CHIP:DMG: + [1651148440.471745][2336:2336] CHIP:DMG: ], + [1651148440.471770][2336:2336] CHIP:DMG: + [1651148440.471806][2336:2336] CHIP:DMG: isFabricFiltered = true, + [1651148440.471831][2336:2336] CHIP:DMG: InteractionModelRevision = 1 + [1651148440.471867][2336:2336] CHIP:DMG: }, + [1651148440.471947][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] + [1651148440.472042][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + ./chip-tool pumpconfigurationandcontrol read max-flow 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651148472.518933][2336:2336] CHIP:IM: Received Read request + [1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage = + [1651148472.519023][2336:2336] CHIP:DMG: { + [1651148472.519071][2336:2336] CHIP:DMG: AttributePathIBs = + [1651148472.519104][2336:2336] CHIP:DMG: [ + [1651148472.519163][2336:2336] CHIP:DMG: AttributePathIB = + [1651148472.519218][2336:2336] CHIP:DMG: { + [1651148472.519286][2336:2336] CHIP:DMG: Endpoint = 0x1, + [1651148472.519328][2336:2336] CHIP:DMG: Cluster = 0x200, + [1651148472.519364][2336:2336] CHIP:DMG: Attribute = 0x0000_0002, + [1651148472.519400][2336:2336] CHIP:DMG: } + [1651148472.519459][2336:2336] CHIP:DMG: + [1651148472.519521][2336:2336] CHIP:DMG: ], + [1651148472.519555][2336:2336] CHIP:DMG: + [1651148472.519584][2336:2336] CHIP:DMG: isFabricFiltered = true, + [1651148472.519666][2336:2336] CHIP:DMG: InteractionModelRevision = 1 + [1651148472.519695][2336:2336] CHIP:DMG: }, + [1651148472.519802][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] + [1651148472.519971][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + + ./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + + [1651570515.206834][9246:9246] CHIP:IM: Received Read request + [1651570515.206917][9246:9246] CHIP:DMG: ReadRequestMessage = + [1651570515.206966][9246:9246] CHIP:DMG: { + [1651570515.207006][9246:9246] CHIP:DMG: AttributePathIBs = + [1651570515.207053][9246:9246] CHIP:DMG: [ + [1651570515.207098][9246:9246] CHIP:DMG: AttributePathIB = + [1651570515.207154][9246:9246] CHIP:DMG: { + [1651570515.207210][9246:9246] CHIP:DMG: Endpoint = 0x1, + [1651570515.207265][9246:9246] CHIP:DMG: Cluster = 0x200, + [1651570515.207322][9246:9246] CHIP:DMG: Attribute = 0x0000_0011, + [1651570515.207381][9246:9246] CHIP:DMG: } + [1651570515.207436][9246:9246] CHIP:DMG: + [1651570515.207483][9246:9246] CHIP:DMG: ], + [1651570515.207535][9246:9246] CHIP:DMG: + [1651570515.207587][9246:9246] CHIP:DMG: isFabricFiltered = true, + [1651570515.207634][9246:9246] CHIP:DMG: InteractionModelRevision = 1 + [1651570515.207677][9246:9246] CHIP:DMG: } + + ./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651570975.559213][9246:9246] CHIP:IM: Received Read request + [1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage = + [1651570975.559295][9246:9246] CHIP:DMG: { + [1651570975.559317][9246:9246] CHIP:DMG: AttributePathIBs = + [1651570975.559343][9246:9246] CHIP:DMG: [ + [1651570975.559367][9246:9246] CHIP:DMG: AttributePathIB = + [1651570975.559400][9246:9246] CHIP:DMG: { + [1651570975.559428][9246:9246] CHIP:DMG: Endpoint = 0x1, + [1651570975.559465][9246:9246] CHIP:DMG: Cluster = 0x200, + [1651570975.559602][9246:9246] CHIP:DMG: Attribute = 0x0000_0012, + [1651570975.559626][9246:9246] CHIP:DMG: } + [1651570975.559655][9246:9246] CHIP:DMG: + [1651570975.559681][9246:9246] CHIP:DMG: ], + [1651570975.559710][9246:9246] CHIP:DMG: + + ./chip-tool pumpconfigurationandcontrol read capacity 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651571009.295069][9246:9246] CHIP:IM: Received Read request + [1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage = + [1651571009.295203][9246:9246] CHIP:DMG: { + [1651571009.295244][9246:9246] CHIP:DMG: AttributePathIBs = + [1651571009.295293][9246:9246] CHIP:DMG: [ + [1651571009.295339][9246:9246] CHIP:DMG: AttributePathIB = + [1651571009.295387][9246:9246] CHIP:DMG: { + [1651571009.295438][9246:9246] CHIP:DMG: Endpoint = 0x1, + [1651571009.295493][9246:9246] CHIP:DMG: Cluster = 0x200, + [1651571009.295548][9246:9246] CHIP:DMG: Attribute = 0x0000_0013, + [1651571009.295597][9246:9246] CHIP:DMG: } + [1651571009.295649][9246:9246] CHIP:DMG: + [1651571009.295696][9246:9246] CHIP:DMG: ], + [1651571009.295747][9246:9246] CHIP:DMG: + + ./chip-tool pumpconfigurationandcontrol read operation-mode 1 1 + + verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command + + [1651571334.617100][9337:9337] CHIP:IM: Received Read request + [1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage = + [1651571334.617181][9337:9337] CHIP:DMG: { + [1651571334.617213][9337:9337] CHIP:DMG: AttributePathIBs = + [1651571334.617250][9337:9337] CHIP:DMG: [ + [1651571334.617291][9337:9337] CHIP:DMG: AttributePathIB = + [1651571334.617338][9337:9337] CHIP:DMG: { + [1651571334.617368][9337:9337] CHIP:DMG: Endpoint = 0x1, + [1651571334.617404][9337:9337] CHIP:DMG: Cluster = 0x200, + [1651571334.617433][9337:9337] CHIP:DMG: Attribute = 0x0000_0020, + [1651571334.617467][9337:9337] CHIP:DMG: } + [1651571334.617499][9337:9337] CHIP:DMG: + [1651571334.617537][9337:9337] CHIP:DMG: ], + [1651571334.617567][9337:9337] CHIP:DMG: " + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT reads all supported optional attributes from TH one at a time in + a manufacturer specific order" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + + ./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-const-speed 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + + ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read speed 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read power 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol read control-mode 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT writes a suitable value to all supported optional attributes on + the TH one at a time in a manufacturer specific order" + verification: | + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + + + ./chip-tool pumpconfigurationandcontrol write control-mode 0 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol write lifetime-running-hours 1 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + + ./chip-tool pumpconfigurationandcontrol write lifetime-energy-consumed 1 1 1 + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml index b075887c8329ff..d127bd3fbb3322 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml @@ -30,7 +30,41 @@ tests: initiatorSessionId destinationId resumptionID initiatorResumeMIC initiatorEphPubKey initiatorSEDParams" verification: | - Verify that the Responder receives the Sigma1 message from Initiator + On Initiator(chip-tool) verify that, Initiator(chip-tool) constructs and sends a TLV-encoded Sigma1 message to Responder with resumption containing + initiatorRandom + initiatorSessionId + destinationId + resumptionID + initiatorResumeMIC + initiatorEphPubKey + initiatorSEDParams + here is the log to verify on chip-tool + + 1683884120.041635][5134:5136] CHIP:DMG: Decrypted Payload (182 bytes) = + [1683884120.041641][5134:5136] CHIP:DMG: { + [1683884120.041647][5134:5136] CHIP:DMG: data = 153001202445b334fd30bc8c53955932724b371c085cbe9322cc9cd5a1f2e1094034a1462502faae300320adde97e1cb85749bebb3ed17b9ff3132eca00f7b374e482575322683ab460adc300441046c30cdef1fcbf383e11df64a3d6820ade9a6850b4eb401a99c4be5242ae5a0a0f5473b2ff098976de6bb2ae4e126138ebcc97cf44d8651ae0048ceed2681c8b9300610164874f435aa47c7505ca5ad59ba8974300710df3d4e94f1014d0e037c74eabce4accc18 + [1683884120.041655][5134:5136] CHIP:DMG: } + [1683884120.041660][5134:5136] CHIP:DMG: + [1683884120.041689][5134:5136] CHIP:DMG: Parameters = + [1683884120.041695][5134:5136] CHIP:DMG: { + [1683884120.041704][5134:5136] CHIP:DMG: InitiatorRandom (32) = 2445B334FD30BC8C53955932724B371C085CBE9322CC9CD5A1F2E1094034A146 + [1683884120.041711][5134:5136] CHIP:DMG: InitiatorSessionId = 44794 + [1683884120.041720][5134:5136] CHIP:DMG: DestinationId (32) = ADDE97E1CB85749BEBB3ED17B9FF3132ECA00F7B374E482575322683AB460ADC + [1683884120.041730][5134:5136] CHIP:DMG: InitiatorEphPubKey (65) = 046C30CDEF1FCBF383E11DF64A3D6820ADE9A6850B4EB401A99C4BE5242AE5A0A0F5473B2FF098976DE6BB2AE4E126138EBCC97CF44D8651AE0048CEED2681C8B9 + [1683884120.041766][5134:5136] CHIP:DMG: ResumptionID (16) = 164874F435AA47C7505CA5AD59BA8974 + [1683884120.041775][5134:5136] CHIP:DMG: InitiatorResumeMIC (16) = DF3D4E94F1014D0E037C74EABCE4ACCC + [1683884120.041782][5134:5136] CHIP:DMG: } + [1683884120.041787][5134:5136] CHIP:DMG: + [1683884120.041794][5134:5136] CHIP:DMG: + [1683884120.041883][5134:5136] CHIP:SC: Sent Sigma1 msg + + + On Responder(all-clusters-app), Verify that responder received the Sigma1 message from Initiator(chip-tool) + + [1683884120.042774][5117:5117] CHIP:IN: CASE Server received Sigma1 message . Starting handshake. EC 0x558aa452e2e0 + [1683884120.042783][5117:5117] CHIP:IN: CASE Server disabling CASE session setups + [1683884120.042798][5117:5117] CHIP:SC: Received Sigma1 msg + [1683884120.042819][5117:5117] CHIP:SC: Peer assigned session key ID 44794 disabled: true - label: @@ -38,10 +72,88 @@ tests: following values resumptionID responderSessionID sigma2ResumeMIC responderMRPParams" verification: | - Verify that the message is properly formatted: I Flag is set to 0 S flag and DIZ fields of message flags are set to 0 Encryption Type of security flags is set to 0 The Session Key Type field is set to 0 The Protocol ID field is set to 0x0000 and The Protocol Opcode field is set to 0x33 Verify that the resumptionID is of Octet String maximum of length 16 bytes Verify that the responderSessionID is of uint16 Verify that the sigma2ResumeMIC is of Octet String maximum of length 16 bytes Verify that the responderSEDParams is from any one of the following: SLEEPY_IDLE_INTERVAL Verify that it is of uint32 SLEEPY_ACTIVE_INTERVAL Verify that it is of uint32 + On initiator(chip-tool) verify that the Sigma2_Resume message and extracts the following values + resumptionID + responderSessionID + sigma2ResumeMIC + And + Verify that the message is properly formatted: + + I Flag is set to 1 + S flag and DIZ fields of message flags are set to 0 + Encryption Type of security flags is set to 0 + The Session Key Type field is set to 0 + The Protocol ID field is set to 0x0000 and + The Protocol Opcode field is set to 0x33 + resumptionID is of Octet String maximum of length 16 bytes + responderSessionID is of uint16 + sigma2ResumeMIC is of Octet String maximum of length 16 bytes + responderSEDParams is from any one of the following: + SLEEPY_IDLE_INTERVAL - Verify that it is of uint32 + SLEEPY_ACTIVE_INTERVAL - Verify that it is of uint32 + + here is the log to verify on chip-tool + + [1683884120.044173][5134:5136] CHIP:DMG: << from UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:5540 | 8440488 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '2' Resume (0x33) / Session = 0 / Exchange = 29430] + [1683884120.044205][5134:5136] CHIP:DMG: Header Flags = + [1683884120.044210][5134:5136] CHIP:DMG: { + [1683884120.044219][5134:5136] CHIP:DMG: Message (0x01) = + [1683884120.044224][5134:5136] CHIP:DMG: { + [1683884120.044229][5134:5136] CHIP:DMG: DestinationNodeId = A8F9BB8984959B9C + [1683884120.044234][5134:5136] CHIP:DMG: } + [1683884120.044244][5134:5136] CHIP:DMG: Exchange (0x06) = + [1683884120.044248][5134:5136] CHIP:DMG: { + [1683884120.044253][5134:5136] CHIP:DMG: AckMsg = 265414754 + [1683884120.044258][5134:5136] CHIP:DMG: NeedsAck = true + [1683884120.044262][5134:5136] CHIP:DMG: } + [1683884120.044271][5134:5136] CHIP:DMG: } + [1683884120.044276][5134:5136] CHIP:DMG: + [1683884120.044287][5134:5136] CHIP:DMG: Encrypted Payload (70 bytes) = + [1683884120.044292][5134:5136] CHIP:DMG: { + [1683884120.044300][5134:5136] CHIP:DMG: data = 01000000a8ca80009c9b958489bbf9a80633f672000062e8d10f1530011098f83a1529d6cfa34f386cdbbbd842613002106223c9bf3f0d1fa0e4122f921711543a2503e59318 + [1683884120.044308][5134:5136] CHIP:DMG: buffer_ptr = 139986540250736 + [1683884120.044313][5134:5136] CHIP:DMG: } + [1683884120.044318][5134:5136] CHIP:DMG: + [1683884120.044327][5134:5136] CHIP:DMG: Decrypted Payload (44 bytes) = + [1683884120.044333][5134:5136] CHIP:DMG: { + [1683884120.044337][5134:5136] CHIP:DMG: data = 1530011098f83a1529d6cfa34f386cdbbbd842613002106223c9bf3f0d1fa0e4122f921711543a2503e59318 + [1683884120.044345][5134:5136] CHIP:DMG: } + [1683884120.044351][5134:5136] CHIP:DMG: + [1683884120.044371][5134:5136] CHIP:DMG: Parameters = + [1683884120.044377][5134:5136] CHIP:DMG: { + [1683884120.044385][5134:5136] CHIP:DMG: ResumptionID (16) = 98F83A1529D6CFA34F386CDBBBD84261 + [1683884120.044392][5134:5136] CHIP:DMG: Sigma2ResumeMIC (16) = 6223C9BF3F0D1FA0E4122F921711543A + [1683884120.044399][5134:5136] CHIP:DMG: ResponderSessionId = 37861 + [1683884120.044406][5134:5136] CHIP:DMG: } + [1683884120.044411][5134:5136] CHIP:DMG: + [1683884120.044419][5134:5136] CHIP:DMG: + [1683884120.044432][5134:5136] CHIP:DMG: Additional Fields = + [1683884120.044441][5134:5136] CHIP:DMG: { + [1683884120.044449][5134:5136] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:5540 + [1683884120.044455][5134:5136] CHIP:DMG: } + [1683884120.044461][5134:5136] CHIP:DMG: disabled: true - label: "Initiator sends SigmaFinished message to Responder" verification: | + On Responder(all-clusters-app), verify that responder(all-clusters-app) received the SigmaFinished(The status report should be GeneralCode:SUCCESS, + ProtocolId:SECURE_CHANNEL, and ProtocolCode:SESSION_ESTABLISHMENT_SUCCESS). message from Initiator + [1683884120.046690][5117:5117] CHIP:DMG: Parameters = + [1683884120.046692][5117:5117] CHIP:DMG: { + [1683884120.046694][5117:5117] CHIP:DMG: GeneralStatusCode = 0 + [1683884120.046696][5117:5117] CHIP:DMG: ProtocolId = 0 + [1683884120.046698][5117:5117] CHIP:DMG: ProtocolCode = 0 + [1683884120.046701][5117:5117] CHIP:DMG: } + [1683884120.046703][5117:5117] CHIP:DMG: + [1683884120.046706][5117:5117] CHIP:DMG: + [1683884120.046711][5117:5117] CHIP:DMG: Additional Fields = + [1683884120.046713][5117:5117] CHIP:DMG: { + [1683884120.046715][5117:5117] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:38377 + [1683884120.046718][5117:5117] CHIP:DMG: } + [1683884120.046720][5117:5117] CHIP:DMG: + [1683884120.046725][5117:5117] CHIP:EM: >>> [E:29430r S:0 M:265414755 (Ack:8440488)] (U) Msg RX from 0:A8F9BB8984959B9C [0000] --- Type 0000:40 (SecureChannel:StatusReport) + [1683884120.046729][5117:5117] CHIP:EM: Found matching exchange: 29430r, Delegate: 0x558aa3e3ef18 + [1683884120.046735][5117:5117] CHIP:EM: Rxd Ack; Removing MessageCounter:8440488 from Retrans Table on exchange 29430r + [1683884120.046743][5117:5117] CHIP:SC: Success status report received. Session was established disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml index 8b3e7a82c9ac4f..bd04f242522dc4 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml @@ -315,16 +315,10 @@ tests: avahi-browse -rt _matterc._udp - + eth0 IPv6 DD200C20D25AE5F7 _matterc._udp local - + eth0 IPv4 DD200C20D25AE5F7 _matterc._udp local - = eth0 IPv6 DD200C20D25AE5F7 _matterc._udp local - hostname = [matter-te-7.local] - address = [fd00::e7] - port = [11111] - txt = ["CM=0" "D=840"] - = eth0 IPv4 DD200C20D25AE5F7 _matterc._udp local - hostname = [matter-te-7.local] - address = [192.168.3.53] - port = [11111] - txt = ["CM=0" "D=840"] + + wlp0s20f3 IPv6 FD37FE5156C56632 _matterc._udp local + = wlp0s20f3 IPv6 FD37FE5156C56632 _matterc._udp local + hostname = [8C1D96786A130000.local] + address = [fe80::e9f6:2c08:2794:357d] + port = [5540] + txt = ["PI=" "PH=36" "CM=2" "D=3840" "T=1" "DT=65535" "VP=65521+32769"] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml index 650cf3e562717e..69b942fd24fd52 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml @@ -152,11 +152,11 @@ tests: { GroupKeySetID: 0x01a3, GroupKeySecurityPolicy: 0, - EpochKey0: "0x00000000000000000000000000000001", + EpochKey0: "hex:00000000000000000000000000000001", EpochStartTime0: 111, - EpochKey1: "0x00000000000000000000000000000002", + EpochKey1: "hex:00000000000000000000000000000002", EpochStartTime1: 222, - EpochKey2: "0x00000000000000000000000000000003", + EpochKey2: "hex:00000000000000000000000000000003", EpochStartTime2: 333, } @@ -217,11 +217,11 @@ tests: { GroupKeySetID: 0x01a3, GroupKeySecurityPolicy: 0, - EpochKey0: "0xd0d1d2d3d4d5d6d7d8d9dadbdcdddedf", + EpochKey0: "hex:d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", EpochStartTime0: 2220000, - EpochKey1: "0xd1d1d2d3d4d5d6d7d8d9dadbdcdddedf", + EpochKey1: "hex:d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", EpochStartTime1: 2220001, - EpochKey2: "0xd2d1d2d3d4d5d6d7d8d9dadbdcdddedf", + EpochKey2: "hex:d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", EpochStartTime2: 2220002, } diff --git a/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml index 3c369674678d3c..bd8ba4c7e72f92 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml @@ -34,55 +34,89 @@ tests: - label: "Precondition" verification: | - Group Member is commissioned with Admin TH supports Groups Cluster and Onoff Cluster - Execute this step before executing the test steps. - - ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 1 0 - - Verify success response on the TH Log: - - [1652330385.328196][3240:3245] CHIP:DMG: StatusIB = - [1652330385.328229][3240:3245] CHIP:DMG: { - [1652330385.328264][3240:3245] CHIP:DMG: status = 0x00 (SUCCESS), - [1652330385.328298][3240:3245] CHIP:DMG: }, + Group Member is commissioned with Admin + DUT supports Groups Cluster disabled: true - label: "TH should have the ACL entry with the AuthMode as Group by DUT" verification: | - ./chip-tool accesscontrol read acl 1 0 - - - Verify the Read Request Message for the data sent in the above command on TH(Reference app)log: + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 1 0 - [1653571830.010685][3949:3949] CHIP:IM: Received Read request - [1653571830.010772][3949:3949] CHIP:DMG: ReadRequestMessage = - [1653571830.010822][3949:3949] CHIP:DMG: { - [1653571830.010863][3949:3949] CHIP:DMG: AttributePathIBs = - [1653571830.010911][3949:3949] CHIP:DMG: [ - [1653571830.010957][3949:3949] CHIP:DMG: AttributePathIB = - [1653571830.011020][3949:3949] CHIP:DMG: { - [1653571830.011072][3949:3949] CHIP:DMG: Endpoint = 0x0, - [1653571830.011132][3949:3949] CHIP:DMG: Cluster = 0x1f, - [1653571830.011191][3949:3949] CHIP:DMG: Attribute = 0x0000_0000, - [1653571830.011246][3949:3949] CHIP:DMG: } - [1653571830.011299][3949:3949] CHIP:DMG: - [1653571830.011350][3949:3949] CHIP:DMG: ], - [1653571830.011401][3949:3949] CHIP:DMG: - [1653571830.011451][3949:3949] CHIP:DMG: isFabricFiltered = true, - [1653571830.011499][3949:3949] CHIP:DMG: InteractionModelRevision = 1 - [1653571830.011543][3949:3949] CHIP:DMG: }, - [1653571830.011711][3949:3949] CHIP:DMG: IM RH moving to [GeneratingReports] - [1653571830.011855][3949:3949] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1653571830.011907][3949:3949] CHIP:DMG: Cluster 1f, Attribute 0 is dirty - [1653571830.011947][3949:3949] CHIP:DMG: Reading attribute: Cluster=0x0000_001F Endpoint=0 AttributeId=0x0000_0000 (expanded=0) - [1653571830.011995][3949:3949] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001F e=0 p=a - [1653571830.012053][3949:3949] CHIP:DMG: AccessControl: allowed + Verify the Write Request Message for the data sent in the above command on TH(Reference app)log: + + [1683887175.961550][8333:8333] CHIP:DMG: WriteRequestMessage = + [1683887175.961564][8333:8333] CHIP:DMG: { + [1683887175.961574][8333:8333] CHIP:DMG: suppressResponse = false, + [1683887175.961586][8333:8333] CHIP:DMG: timedRequest = false, + [1683887175.961593][8333:8333] CHIP:DMG: AttributeDataIBs = + [1683887175.961610][8333:8333] CHIP:DMG: [ + [1683887175.961619][8333:8333] CHIP:DMG: AttributeDataIB = + [1683887175.961631][8333:8333] CHIP:DMG: { + [1683887175.961641][8333:8333] CHIP:DMG: AttributePathIB = + [1683887175.961653][8333:8333] CHIP:DMG: { + [1683887175.961665][8333:8333] CHIP:DMG: Endpoint = 0x0, + [1683887175.961679][8333:8333] CHIP:DMG: Cluster = 0x1f, + [1683887175.961691][8333:8333] CHIP:DMG: Attribute = 0x0000_0000, + [1683887175.961702][8333:8333] CHIP:DMG: } + [1683887175.961716][8333:8333] CHIP:DMG: + [1683887175.961727][8333:8333] CHIP:DMG: Data = [ + [1683887175.961738][8333:8333] CHIP:DMG: + [1683887175.961750][8333:8333] CHIP:DMG: ], + [1683887175.961760][8333:8333] CHIP:DMG: }, + [1683887175.961786][8333:8333] CHIP:DMG: + [1683887175.961795][8333:8333] CHIP:DMG: AttributeDataIB = + [1683887175.961806][8333:8333] CHIP:DMG: { + [1683887175.961815][8333:8333] CHIP:DMG: AttributePathIB = + [1683887175.961826][8333:8333] CHIP:DMG: { + [1683887175.961837][8333:8333] CHIP:DMG: Endpoint = 0x0, + [1683887175.961849][8333:8333] CHIP:DMG: Cluster = 0x1f, + [1683887175.961860][8333:8333] CHIP:DMG: Attribute = 0x0000_0000, + [1683887175.961872][8333:8333] CHIP:DMG: ListIndex = Null, + [1683887175.961882][8333:8333] CHIP:DMG: } + [1683887175.961897][8333:8333] CHIP:DMG: + [1683887175.961906][8333:8333] CHIP:DMG: Data = + [1683887175.961917][8333:8333] CHIP:DMG: { + [1683887175.961931][8333:8333] CHIP:DMG: 0x1 = 5, + [1683887175.961943][8333:8333] CHIP:DMG: 0x2 = 2, + [1683887175.961954][8333:8333] CHIP:DMG: 0x3 = [ + [1683887175.961968][8333:8333] CHIP:DMG: 112233, + [1683887175.961981][8333:8333] CHIP:DMG: ], + [1683887175.961994][8333:8333] CHIP:DMG: 0x4 = NULL + [1683887175.962005][8333:8333] CHIP:DMG: }, + [1683887175.962014][8333:8333] CHIP:DMG: }, + [1683887175.962044][8333:8333] CHIP:DMG: + [1683887175.962053][8333:8333] CHIP:DMG: AttributeDataIB = + [1683887175.962063][8333:8333] CHIP:DMG: { + [1683887175.962072][8333:8333] CHIP:DMG: AttributePathIB = + [1683887175.962083][8333:8333] CHIP:DMG: { + [1683887175.962094][8333:8333] CHIP:DMG: Endpoint = 0x0, + [1683887175.962106][8333:8333] CHIP:DMG: Cluster = 0x1f, + [1683887175.962118][8333:8333] CHIP:DMG: Attribute = 0x0000_0000, + [1683887175.962129][8333:8333] CHIP:DMG: ListIndex = Null, + [1683887175.962139][8333:8333] CHIP:DMG: } + [1683887175.962152][8333:8333] CHIP:DMG: + [1683887175.962162][8333:8333] CHIP:DMG: Data = + [1683887175.962173][8333:8333] CHIP:DMG: { + [1683887175.962184][8333:8333] CHIP:DMG: 0x1 = 4, + [1683887175.962196][8333:8333] CHIP:DMG: 0x2 = 3, + [1683887175.962207][8333:8333] CHIP:DMG: 0x3 = [ + [1683887175.962220][8333:8333] CHIP:DMG: 1, + [1683887175.962232][8333:8333] CHIP:DMG: ], + [1683887175.962243][8333:8333] CHIP:DMG: 0x4 = NULL + [1683887175.962255][8333:8333] CHIP:DMG: }, + [1683887175.962264][8333:8333] CHIP:DMG: }, + [1683887175.962282][8333:8333] CHIP:DMG: + [1683887175.962291][8333:8333] CHIP:DMG: ], + [1683887175.962323][8333:8333] CHIP:DMG: + [1683887175.962333][8333:8333] CHIP:DMG: moreChunkedMessages = false, + [1683887175.962343][8333:8333] CHIP:DMG: InteractionModelRevision = 1 + [1683887175.962352][8333:8333] CHIP:DMG: }, disabled: true - label: "DUT generates fabric-unique GroupID, GroupName, random key, EpochKey0 - and GroupKeySetID. Admin sets GroupKeySecurityPolicy = TrustFirst (1) - GroupKeyMulticastPolicy = PerGroupID (0) EpochStartTime0 = 0" + and GroupKeySetID. Admin sets GroupKeySecurityPolicy = TrustFirst (0) + EpochStartTime0 = 0" verification: | ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": @@ -211,7 +245,6 @@ tests: Verify TH recieves AddGroup command on TH(Reference app)log: - [1651471107.658967][4012:4012] CHIP:EM: Received message of type 0x8 with protocolId (0, 1) and MessageCounter:1630629 on exchange 50068r [1651471107.659020][4012:4012] CHIP:EM: Handling via exchange: 50068r, Delegate: 0xaaaaca97a088 [1651471107.659108][4012:4012] CHIP:DMG: InvokeRequestMessage = @@ -251,7 +284,6 @@ tests: verification: | ./chip-tool groups view-group 0x0001 1 0 - Verify TH recieves ViewGroup command on TH(Reference app)log: [1651471144.500809][4012:4012] CHIP:EM: Received message of type 0x8 with protocolId (0, 1) and MessageCounter:14671135 on exchange 13105r @@ -290,10 +322,8 @@ tests: verification: | ./chip-tool groupkeymanagement key-set-read 42 1 0 - Verify TH recieves KeySetRead command on TH(Reference app)log: - [1651471175.521361][4012:4012] CHIP:EM: Received message of type 0x8 with protocolId (0, 1) and MessageCounter:1040181 on exchange 26813r [1651471175.521414][4012:4012] CHIP:EM: Handling via exchange: 26813r, Delegate: 0xaaaaca97a088 [1651471175.521500][4012:4012] CHIP:DMG: InvokeRequestMessage = @@ -332,7 +362,6 @@ tests: verification: | ./chip-tool groupkeymanagement read group-key-map 1 0 - Verify TH recieves GroupKeyMap command on TH(Reference app)log: [1651471203.692194][4012:4012] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:11804966 on exchange 25369r @@ -368,7 +397,6 @@ tests: verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify TH recieves GroupTable command on TH(Reference app)log: [1651471240.121662][4012:4012] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:3204235 on exchange 21658r diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml index 5fdaab51527caa..5230980dfc9773 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml @@ -44,7 +44,7 @@ tests: [1645743053317] [97806:20280749] CHIP: [ZCL] OTA Provider received QueryImage [1645743053317] [97806:20280749] CHIP: [ZCL] VendorID: 0xfff1 [1645743053317] [97806:20280749] CHIP: [ZCL] ProductID: 32769 - [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 0 + [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 2 [1645743053317] [97806:20280749] CHIP: [ZCL] ProtocolsSupported: [ [1645743053317] [97806:20280749] CHIP: [ZCL] 0 [1645743053317] [97806:20280749] CHIP: [ZCL] ] @@ -79,7 +79,7 @@ tests: [1645743053317] [97806:20280749] CHIP: [ZCL] OTA Provider received QueryImage [1645743053317] [97806:20280749] CHIP: [ZCL] VendorID: 0xfff1 [1645743053317] [97806:20280749] CHIP: [ZCL] ProductID: 32769 - [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 0 + [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 2 [1645743053317] [97806:20280749] CHIP: [ZCL] ProtocolsSupported: [ [1645743053317] [97806:20280749] CHIP: [ZCL] 0 [1645743053317] [97806:20280749] CHIP: [ZCL] ] diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml index c3a09d26ccd417..a167392dc46690 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml @@ -153,11 +153,7 @@ tests: "Force an error during the download of the OTA image to the DUT. Wait for the Idle timeout which should be no less than 5 minutes." verification: | - ./chip-tool interactive start - - Subscribe to StateTransition and DownloadError events using command - - otasoftwareupdaterequestor subscribe-event-by-id 0,2 30 60 0x1234567890 0 + ../chip-tool interactive start Trigger OTA query using command @@ -165,8 +161,11 @@ tests: where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Force an error during the download of the OTA image to the DUT. Wait for the Idle timeout which should be no less than 5 minutes. + + otasoftwareupdaterequestor subscribe-event download-error 5 10 0x1234567890 0 --timeout 65535 + Verify that the chip-tool receives a DownloadError event notification on BDX Idle timeout which should be no less than 5 minutes. - Verify that the chip-tool receives a StateTransition event notification for the state change to Idle. [1651520178426] [98732:38086919] CHIP: [TOO] DownloadError: { [1651520178426] [98732:38086919] CHIP: [TOO] SoftwareVersion: 2 @@ -175,6 +174,10 @@ tests: [1651520178426] [98732:38086919] CHIP: [TOO] PlatformCode: null [1651520178426] [98732:38086919] CHIP: [TOO] } + otasoftwareupdaterequestor subscribe-event-by-id 0 30 60 0x1234567890 0 + + Verify that the chip-tool receives a StateTransition event notification for the state change to Idle. + [1654558704063] [57765:69159905] CHIP: [TOO] StateTransition: { [1654558704064] [57765:69159905] CHIP: [TOO] PreviousState: 4 [1654558704064] [57765:69159905] CHIP: [TOO] NewState: 1 diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml index 01347878eaf370..0d0f9abf4ad9f7 100644 --- a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml @@ -128,25 +128,12 @@ tests: switch to next position - Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - Raspi device doesn't support more than 2 position ,so this step is not verifiable by using raspi device - echo '{"Name":"SwitchLatched","NewPosition":2}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - - - - - Verify SwitchLatched event with NewPosition set to 2 on DUT(all-cluster-app) log: - - [1659600438.058928][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":2}" - [1659600438.059436][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409d - [1659600438.059519][7312:7312] CHIP:-: The latching switch is moved to a new position:2 - [1659600438.059644][7312:7312] CHIP:ZCL: SwitchServer: OnSwitchLatch - [1659600438.059857][7312:7312] CHIP:EVL: LogEvent event number: 0x0000000000020006 priority: 1, endpoint id: 0x1 cluster id: 0x0000_003B event id: 0x0 Sys timestamp: 0x0000000000F10746 - - In the current SDK development, Max number of positions are configured as 2, hence the current test step should fail as its reached more than the numberof position. If the DUT supports more number of positions, then for the above command, it should increase to the next level. Below is the sample command to execute , if the DUT supports more than 2 NumberOfPositions. + In the current SDK development, Max number of positions is configured as 2, hence the current test step should fail as NewPosition reached more than the Max NumberOfPositions. + If the DUT supports more number of positions, then for the command in previous step, position should increase to the next level. Below is the sample command to execute, if the DUT supports NumberOfPositions > 2 . ./chip-tool switch read current-position 1 1 - Verify current position value inTH(chip-tool) Log: + Verify CurrentPosition value in TH(chip-tool) Log: [1659600502.023560][4306:4311] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 391463069 [1659600502.023631][4306:4311] CHIP:TOO: current position: 2 @@ -158,9 +145,6 @@ tests: Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - Raspi device doesn't support more than 2 position ,so this step is not verifiable by using raspi device - - In Raspi platform to change the switch to third position use the below sample command, its required to use equivalent command on the respective DUT. Open one more terminal on DUT side to execute the echo command . echo '{"Name":"SwitchLatched","NewPosition":3}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) diff --git a/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TMP_3_1_Simulated.yaml similarity index 66% rename from src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_TMP_3_1_Simulated.yaml index 4b1016302f882e..fcef638b9e000a 100644 --- a/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TMP_3_1_Simulated.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.3.1. [TC-TMP-3.1] Attributes with client as DUT +name: 6.3.1. [TC-TMP-3.1] Attributes with client as DUT PICS: - TMP.C @@ -24,336 +24,40 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Temperature Measurement" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: TMP.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool temperaturemeasurement read measured-value 1 1 - - Verify DUT receives measured-value attribute response on the TH(all-clusters-app) Log: - - [1666954221.588215][6038:6038] CHIP:EM: Handling via exchange: 61353r, Delegate: 0xaaaab1cb0288 - [1666954221.588336][6038:6038] CHIP:IM: Received Read request - [1666954221.588533][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666954221.588600][6038:6038] CHIP:DMG: { - [1666954221.588676][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954221.588745][6038:6038] CHIP:DMG: [ - [1666954221.588807][6038:6038] CHIP:DMG: AttributePathIB = - [1666954221.588882][6038:6038] CHIP:DMG: { - [1666954221.588981][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954221.589072][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954221.589182][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666954221.589262][6038:6038] CHIP:DMG: } - [1666954221.589339][6038:6038] CHIP:DMG: - [1666954221.589435][6038:6038] CHIP:DMG: ], - [1666954221.589507][6038:6038] CHIP:DMG: - [1666954221.589601][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954221.589667][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954221.589740][6038:6038] CHIP:DMG: }, - [1666954221.589918][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666954221.590155][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666954221.590285][6038:6038] CHIP:DMG: Cluster 402, Attribute 0 is dirty - [1666954221.590353][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0402 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1666954221.590427][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0402 e=1 p=v - [1666954221.590505][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954221.590657][6038:6038] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666954221.591348][6038:6038] CHIP:EM: <<< [E:61353r M:156426147 (Ack:236640405)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666954221.591460][6038:6038] CHIP:IN: (S) Sending msg 156426147 on secure session with LSID: 10249 - [1666954221.592165][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:51491 | 156426147 | [Interaction Model (1) / Report Data (0x05) / Session = 44743 / Exchange = 61353] - [1666954221.592264][6038:6038] CHIP:DMG: Header Flags = - [1666954221.592323][6038:6038] CHIP:DMG: { - [1666954221.592410][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954221.592468][6038:6038] CHIP:DMG: { - [1666954221.592527][6038:6038] CHIP:DMG: AckMsg = 236640405 - [1666954221.592608][6038:6038] CHIP:DMG: NeedsAck = true - [1666954221.592663][6038:6038] CHIP:DMG: } - [1666954221.592735][6038:6038] CHIP:DMG: } - [1666954221.592812][6038:6038] CHIP:DMG: - [1666954221.592882][6038:6038] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666954221.592939][6038:6038] CHIP:DMG: { - [1666954221.593017][6038:6038] CHIP:DMG: data = 00c7ae00a3df5209eb10c8543f9f63cc4380c9de03442267ea8a2ea787d7df96e9242ac9f9578869efafd4d96ac6ea9912c5840697d305cdae772279ac2986cff9d7ef6def54 - [1666954221.593074][6038:6038] CHIP:DMG: buffer_ptr = 187650273994768 - [1666954221.593149][6038:6038] CHIP:DMG: } - [1666954221.593203][6038:6038] CHIP:DMG: - [1666954221.593395][6038:6038] CHIP:DMG: ReportDataMessage = - [1666954221.593463][6038:6038] CHIP:DMG: { - [1666954221.593559][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954221.593638][6038:6038] CHIP:DMG: [ - [1666954221.593701][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954221.593791][6038:6038] CHIP:DMG: { - [1666954221.593887][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954221.593969][6038:6038] CHIP:DMG: { - [1666954221.594077][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954221.594159][6038:6038] CHIP:DMG: AttributePathIB = - [1666954221.594267][6038:6038] CHIP:DMG: { - [1666954221.594364][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954221.594485][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954221.594605][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666954221.594700][6038:6038] CHIP:DMG: } - [1666954221.594936][6038:6038] CHIP:DMG: - [1666954221.595033][6038:6038] CHIP:DMG: Data = NULL - [1666954221.595141][6038:6038] CHIP:DMG: }, - [1666954221.595230][6038:6038] CHIP:DMG: - [1666954221.595330][6038:6038] CHIP:DMG: }, - [1666954221.595413][6038:6038] CHIP:DMG: - - - - ./chip-tool temperaturemeasurement read max-measured-value 1 1 - - Verify DUT receives max-measured-value attribute response on the TH(all-clusters-app) Log: - - [1666954278.448366][6038:6038] CHIP:EM: Handling via exchange: 21178r, Delegate: 0xaaaab1cb0288 - [1666954278.448461][6038:6038] CHIP:IM: Received Read request - [1666954278.448656][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666954278.448748][6038:6038] CHIP:DMG: { - [1666954278.448805][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954278.448871][6038:6038] CHIP:DMG: [ - [1666954278.448954][6038:6038] CHIP:DMG: AttributePathIB = - [1666954278.449042][6038:6038] CHIP:DMG: { - [1666954278.449141][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954278.449231][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954278.449332][6038:6038] CHIP:DMG: Attribute = 0x0000_0002, - [1666954278.449414][6038:6038] CHIP:DMG: } - [1666954278.449514][6038:6038] CHIP:DMG: - [1666954278.449585][6038:6038] CHIP:DMG: ], - [1666954278.449678][6038:6038] CHIP:DMG: - [1666954278.449748][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954278.449814][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954278.449896][6038:6038] CHIP:DMG: }, - [1666954278.450091][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666954278.450331][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666954278.450404][6038:6038] CHIP:DMG: Cluster 402, Attribute 2 is dirty - [1666954278.450484][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0402 Endpoint=1 AttributeId=0x0000_0002 (expanded=0) - [1666954278.450555][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0402 e=1 p=v - [1666954278.450632][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954278.450801][6038:6038] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666954278.451408][6038:6038] CHIP:EM: <<< [E:21178r M:267608691 (Ack:111962127)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666954278.451507][6038:6038] CHIP:IN: (S) Sending msg 267608691 on secure session with LSID: 10250 - [1666954278.452188][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:35964 | 267608691 | [Interaction Model (1) / Report Data (0x05) / Session = 3253 / Exchange = 21178] - [1666954278.452283][6038:6038] CHIP:DMG: Header Flags = - [1666954278.452341][6038:6038] CHIP:DMG: { - [1666954278.452428][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954278.452484][6038:6038] CHIP:DMG: { - [1666954278.452544][6038:6038] CHIP:DMG: AckMsg = 111962127 - [1666954278.452599][6038:6038] CHIP:DMG: NeedsAck = true - [1666954278.452653][6038:6038] CHIP:DMG: } - [1666954278.452724][6038:6038] CHIP:DMG: } - [1666954278.452779][6038:6038] CHIP:DMG: - [1666954278.452875][6038:6038] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666954278.452933][6038:6038] CHIP:DMG: { - [1666954278.452989][6038:6038] CHIP:DMG: data = 00b50c007362f30f8c319b86108c203de6b15bb5aee7f4449c8da8249d202801c603da44efc405b836200d02e138ace4753dc10d023e14e2a7fbc935ea84271f8bd4e8355b9e - [1666954278.453069][6038:6038] CHIP:DMG: buffer_ptr = 187650273995120 - [1666954278.453123][6038:6038] CHIP:DMG: } - [1666954278.453176][6038:6038] CHIP:DMG: - [1666954278.453356][6038:6038] CHIP:DMG: ReportDataMessage = - [1666954278.453446][6038:6038] CHIP:DMG: { - [1666954278.453502][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954278.453609][6038:6038] CHIP:DMG: [ - [1666954278.453674][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954278.453783][6038:6038] CHIP:DMG: { - [1666954278.453866][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954278.453977][6038:6038] CHIP:DMG: { - [1666954278.454069][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954278.454178][6038:6038] CHIP:DMG: AttributePathIB = - [1666954278.454270][6038:6038] CHIP:DMG: { - [1666954278.454389][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954278.454510][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954278.454602][6038:6038] CHIP:DMG: Attribute = 0x0000_0002, - [1666954278.454748][6038:6038] CHIP:DMG: } - [1666954278.454850][6038:6038] CHIP:DMG: - [1666954278.454940][6038:6038] CHIP:DMG: Data = NULL - [1666954278.455046][6038:6038] CHIP:DMG: }, - [1666954278.455140][6038:6038] CHIP:DMG: - [1666954278.455243][6038:6038] CHIP:DMG: }, - [1666954278.455348][6038:6038] CHIP:DMG: - - - ./chip-tool temperaturemeasurement read min-measured-value 1 1 - - Verify DUT receives min-measured-value attribute response on the TH(all-clusters-app) Log: - - [1666954332.559234][6038:6038] CHIP:EM: Handling via exchange: 57613r, Delegate: 0xaaaab1cb0288 - [1666954332.559333][6038:6038] CHIP:IM: Received Read request - [1666954332.559503][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666954332.559569][6038:6038] CHIP:DMG: { - [1666954332.559624][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954332.559690][6038:6038] CHIP:DMG: [ - [1666954332.559752][6038:6038] CHIP:DMG: AttributePathIB = - [1666954332.559826][6038:6038] CHIP:DMG: { - [1666954332.559905][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954332.559993][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954332.560075][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954332.560158][6038:6038] CHIP:DMG: } - [1666954332.560234][6038:6038] CHIP:DMG: - [1666954332.560304][6038:6038] CHIP:DMG: ], - [1666954332.560375][6038:6038] CHIP:DMG: - [1666954332.560442][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954332.560508][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954332.560567][6038:6038] CHIP:DMG: }, - [1666954332.560741][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666954332.560958][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666954332.561029][6038:6038] CHIP:DMG: Cluster 402, Attribute 1 is dirty - [1666954332.561085][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0402 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) - [1666954332.561152][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0402 e=1 p=v - [1666954332.561229][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954332.561346][6038:6038] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666954332.561877][6038:6038] CHIP:EM: <<< [E:57613r M:155267020 (Ack:205919022)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666954332.561980][6038:6038] CHIP:IN: (S) Sending msg 155267020 on secure session with LSID: 10251 - [1666954332.562650][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:50559 | 155267020 | [Interaction Model (1) / Report Data (0x05) / Session = 12732 / Exchange = 57613] - [1666954332.562798][6038:6038] CHIP:DMG: Header Flags = - [1666954332.562860][6038:6038] CHIP:DMG: { - [1666954332.562948][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954332.563006][6038:6038] CHIP:DMG: { - [1666954332.563066][6038:6038] CHIP:DMG: AckMsg = 205919022 - [1666954332.563122][6038:6038] CHIP:DMG: NeedsAck = true - [1666954332.563176][6038:6038] CHIP:DMG: } - [1666954332.563247][6038:6038] CHIP:DMG: } - [1666954332.563302][6038:6038] CHIP:DMG: - [1666954332.563370][6038:6038] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666954332.563426][6038:6038] CHIP:DMG: { - [1666954332.563480][6038:6038] CHIP:DMG: data = 00bc3100cc2f41098721290d6330018166438d3eb9610a6439dca612e88539eda9070b897cdda515590dea7eb28d3bd17d1c432779a0839ee6ce2bfee2e9d56a3921cd1120d5 - [1666954332.563538][6038:6038] CHIP:DMG: buffer_ptr = 187650273996032 - [1666954332.563592][6038:6038] CHIP:DMG: } - [1666954332.563643][6038:6038] CHIP:DMG: - [1666954332.563805][6038:6038] CHIP:DMG: ReportDataMessage = - [1666954332.563873][6038:6038] CHIP:DMG: { - [1666954332.563927][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954332.564012][6038:6038] CHIP:DMG: [ - [1666954332.564076][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954332.564164][6038:6038] CHIP:DMG: { - [1666954332.564236][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954332.564324][6038:6038] CHIP:DMG: { - [1666954332.564401][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954332.564482][6038:6038] CHIP:DMG: AttributePathIB = - [1666954332.564575][6038:6038] CHIP:DMG: { - [1666954332.564663][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954332.564754][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954332.564844][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954332.564928][6038:6038] CHIP:DMG: } - [1666954332.565025][6038:6038] CHIP:DMG: - [1666954332.565114][6038:6038] CHIP:DMG: Data = NULL - [1666954332.565202][6038:6038] CHIP:DMG: }, - [1666954332.565286][6038:6038] CHIP:DMG: - [1666954332.565365][6038:6038] CHIP:DMG: }, - [1666954332.565447][6038:6038] CHIP:DMG: - [1666954332.565509][6038:6038] CHIP:DMG: ], - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: TMP.C.AO-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - ./chip-tool temperaturemeasurement read tolerance 1 1 + - label: "Read attribute: MeasuredValue" + wait: "readAttribute" + attribute: "MeasuredValue" - Verify DUT receives tolerance attribute response on the TH(all-clusters-app) Log: + - label: "Read attribute: MinMeasuredValue" + wait: "readAttribute" + attribute: "MinMeasuredValue" - [1666954393.403159][6038:6038] CHIP:EM: Handling via exchange: 106r, Delegate: 0xaaaab1cb0288 - [1666954393.403257][6038:6038] CHIP:IM: Received Read request - [1666954393.403429][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666954393.403495][6038:6038] CHIP:DMG: { - [1666954393.403550][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954393.403615][6038:6038] CHIP:DMG: [ - [1666954393.403677][6038:6038] CHIP:DMG: AttributePathIB = - [1666954393.403755][6038:6038] CHIP:DMG: { - [1666954393.403827][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954393.403918][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954393.404006][6038:6038] CHIP:DMG: Attribute = 0x0000_0003, - [1666954393.404088][6038:6038] CHIP:DMG: } - [1666954393.404161][6038:6038] CHIP:DMG: - [1666954393.404226][6038:6038] CHIP:DMG: ], - [1666954393.404297][6038:6038] CHIP:DMG: - [1666954393.404364][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954393.404429][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954393.404488][6038:6038] CHIP:DMG: }, - [1666954393.404662][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666954393.404878][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666954393.404950][6038:6038] CHIP:DMG: Cluster 402, Attribute 3 is dirty - [1666954393.405005][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0402 Endpoint=1 AttributeId=0x0000_0003 (expanded=0) - [1666954393.405074][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0402 e=1 p=v - [1666954393.405151][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954393.405271][6038:6038] CHIP:DMG: Sending report (payload has 37 bytes)... - [1666954393.405794][6038:6038] CHIP:EM: <<< [E:106r M:174603774 (Ack:130242108)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666954393.405896][6038:6038] CHIP:IN: (S) Sending msg 174603774 on secure session with LSID: 10252 - [1666954393.406557][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:54157 | 174603774 | [Interaction Model (1) / Report Data (0x05) / Session = 59256 / Exchange = 106] - [1666954393.406652][6038:6038] CHIP:DMG: Header Flags = - [1666954393.406709][6038:6038] CHIP:DMG: { - [1666954393.406827][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954393.406884][6038:6038] CHIP:DMG: { - [1666954393.406944][6038:6038] CHIP:DMG: AckMsg = 130242108 - [1666954393.406999][6038:6038] CHIP:DMG: NeedsAck = true - [1666954393.407053][6038:6038] CHIP:DMG: } - [1666954393.407124][6038:6038] CHIP:DMG: } - [1666954393.407179][6038:6038] CHIP:DMG: - [1666954393.407249][6038:6038] CHIP:DMG: Encrypted Payload (71 bytes) = - [1666954393.407306][6038:6038] CHIP:DMG: { - [1666954393.407362][6038:6038] CHIP:DMG: data = 0078e700fe3d680a78c30adbb9dbcd27299e1d40bd1ec2b4c5c21fd5f5ab093ed1b0f014837492b99fedbee02d2b85b6af85f84d52bd90a1066c17454c09c635c52ca002fe8596 - [1666954393.407420][6038:6038] CHIP:DMG: buffer_ptr = 187650273997008 - [1666954393.407473][6038:6038] CHIP:DMG: } - [1666954393.407525][6038:6038] CHIP:DMG: - [1666954393.407689][6038:6038] CHIP:DMG: ReportDataMessage = - [1666954393.407757][6038:6038] CHIP:DMG: { - [1666954393.407811][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954393.407896][6038:6038] CHIP:DMG: [ - [1666954393.407960][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954393.408047][6038:6038] CHIP:DMG: { - [1666954393.408120][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954393.408208][6038:6038] CHIP:DMG: { - [1666954393.408300][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954393.408381][6038:6038] CHIP:DMG: AttributePathIB = - [1666954393.408473][6038:6038] CHIP:DMG: { - [1666954393.408568][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954393.408666][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954393.408765][6038:6038] CHIP:DMG: Attribute = 0x0000_0003, - [1666954393.408856][6038:6038] CHIP:DMG: } - [1666954393.408948][6038:6038] CHIP:DMG: - [1666954393.409045][6038:6038] CHIP:DMG: Data = 0, - [1666954393.409295][6038:6038] CHIP:DMG: }, - [1666954393.409395][6038:6038] CHIP:DMG: - [1666954393.409466][6038:6038] CHIP:DMG: - disabled: true + - label: "Read attribute: MaxMeasuredValue" + wait: "readAttribute" + attribute: "MaxMeasuredValue" - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: TMP.C.AM-WRITE - verification: | - There is no writable mandatory attibute for this cluster - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: TMP.C.AO-WRITE - verification: | - There is no writable Optional attibute for this cluster - disabled: true + - label: "Read attribute: Tolerance" + wait: "readAttribute" + attribute: "Tolerance" - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" + AttributeList.Commission DUT to TH again" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) To verify all below steps use all-clusters-minimal-app - ./chip-tool temperaturemeasurement read measured-value 1 1 + ./chip-tool temperaturemeasurement read measured-value 1 1 Verify DUT receives measured-value attribute response on the TH(all-clusters-minimal-app) Log: [1666954493.877646][6087:6087] CHIP:EM: Handling via exchange: 25543r, Delegate: 0xaaaab0ad80e0 @@ -847,12 +551,19 @@ tests: [1666955301.651628][6087:6087] CHIP:DMG: }, [1666955301.651708][6087:6087] CHIP:DMG: [1666955301.651769][6087:6087] CHIP:DMG: ], - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: TMP.C.AO-READ verification: | .Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -922,12 +633,27 @@ tests: [1666955343.063081][6087:6087] CHIP:DMG: }, [1666955343.063167][6087:6087] CHIP:DMG: [1666955343.063236][6087:6087] CHIP:DMG: }, - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: TMP.C.AO-WRITE verification: | - There is no writable mandatory attibute for this cluster - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_2_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_2_1.yaml index 3650f474548981..58da8b42f3f8af 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_2_1.yaml @@ -76,6 +76,13 @@ tests: response: saveAs: MaxCoolSetpointLimit + - label: "Saving value for comparision in step 17 read MaxHeatSetpointLimit" + PICS: TSTAT.S.A0016 + command: "readAttribute" + attribute: "MaxHeatSetpointLimit" + response: + saveAs: MaxHeatSetpointLimit + - label: "Saving value for comparision in step 13 read attribute OccupiedCoolingSetpoint" @@ -326,7 +333,7 @@ tests: maxValue: 3000 - label: "Reads attribute from DUT: MinHeatSetpointLimit" - PICS: TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0017 + PICS: TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0017 && TSTAT.S.A0003 command: "readAttribute" attribute: "MinHeatSetpointLimit" response: @@ -335,10 +342,25 @@ tests: minValue: 700 maxValue: MinCoolSetpointLimit - MinSetpointDeadBand - - label: "Read attribute MinHeatSetpointLimit from the DUT" - PICS: TSTAT.S.A0015 && !TSTAT.S.F05 + - label: + "Reads MinHeatSetpointLimit attribute from Server DUT and verifies + that the value is within range" + command: "readAttribute" + attribute: "MinHeatSetpointLimit" + PICS: TSTAT.S.A0015 && TSTAT.S.A0016 && TSTAT.S.A0003 && !TSTAT.S.F05 + response: + constraints: + type: int16s + minValue: AbsMinHeat + maxValue: MaxHeatSetpointLimit + + #Using hard coded values when optional attributes are not available + - label: + "Reads MinHeatSetpointLimit attribute from Server DUT and verifies + that the value is within range" command: "readAttribute" attribute: "MinHeatSetpointLimit" + PICS: TSTAT.S.A0003 && !TSTAT.S.A0015 && !TSTAT.S.A0016 && !TSTAT.S.F05 response: constraints: type: int16s diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml index da09da42148124..c3df4a41e8221f 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml @@ -343,7 +343,7 @@ tests: attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0015 arguments: - value: 600 + value: 100 response: error: CONSTRAINT_ERROR @@ -527,7 +527,7 @@ tests: attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 arguments: - value: 1002 + value: 500 response: error: CONSTRAINT_ERROR @@ -704,7 +704,7 @@ tests: attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 arguments: - value: 500 + value: 100 response: error: CONSTRAINT_ERROR @@ -1087,7 +1087,7 @@ tests: attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 arguments: - value: 500 + value: 100 response: error: CONSTRAINT_ERROR @@ -1260,7 +1260,7 @@ tests: attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 arguments: - value: 1000 + value: 500 response: error: CONSTRAINT_ERROR @@ -1430,7 +1430,7 @@ tests: attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 arguments: - value: 1000 + value: 500 response: error: CONSTRAINT_ERROR @@ -1666,12 +1666,42 @@ tests: attribute: "ControlSequenceOfOperation" PICS: TSTAT.S.F00 || TSTAT.S.F01 response: - value: 4 constraints: type: enum8 minValue: 0 maxValue: 5 + #Uncomment once anyOf is supported + #- label: + # "Reads ControlSequenceOfOperation from Server DUT, if TSTAT.S.F01 is + # true" + # command: "readAttribute" + # attribute: "ControlSequenceOfOperation" + # PICS: TSTAT.S.F01 && !TSTAT.S.F00 + # response: + # constraints: + # anyOf: [0, 1] + + #- label: + # "Reads ControlSequenceOfOperation from Server DUT, if TSTAT.S.F00 is + # true" + # command: "readAttribute" + # attribute: "ControlSequenceOfOperation" + # PICS: TSTAT.S.F00 && !TSTAT.S.F01 + # response: + # constraints: + # anyOf: [2, 3] + + #- label: + # "Reads ControlSequenceOfOperation from Server DUT, if both TSTAT.S.F01 + # and TSTAT.S.F01 are true" + # command: "readAttribute" + # attribute: "ControlSequenceOfOperation" + # PICS: TSTAT.S.F00 && TSTAT.S.F01 + # response: + # constraints: + # anyOf: [4, 5] + - label: "Write Attribute command for ControlSequenceOfOperation with a new valid value" diff --git a/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TSUIC_3_1_Simulated.yaml similarity index 57% rename from src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_TSUIC_3_1_Simulated.yaml index cbfe05303d8a7d..dd1aa9b26296bb 100644 --- a/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSUIC_3_1_Simulated.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 13.3.1. [TC-TSUIC-3.1] Attributes with client as DUT +name: 12.3.1. [TC-TSUIC-3.1] Attributes with client as DUT PICS: - TSUIC.C @@ -24,438 +24,52 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Thermostat User Interface Configuration" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: TSUIC.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool thermostatuserinterfaceconfiguration read temperature-display-mode 1 1 - Verify DUT receives temperature-display-mode attribute response on the TH(all-clusters-app) Log: - - [1666953485.298483][6038:6038] CHIP:EM: Handling via exchange: 23149r, Delegate: 0xaaaab1cb0288 - [1666953485.298577][6038:6038] CHIP:IM: Received Read request - [1666953485.298808][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666953485.298877][6038:6038] CHIP:DMG: { - [1666953485.298932][6038:6038] CHIP:DMG: AttributePathIBs = - [1666953485.298997][6038:6038] CHIP:DMG: [ - [1666953485.299059][6038:6038] CHIP:DMG: AttributePathIB = - [1666953485.299136][6038:6038] CHIP:DMG: { - [1666953485.299209][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953485.299298][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953485.299388][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666953485.299465][6038:6038] CHIP:DMG: } - [1666953485.299538][6038:6038] CHIP:DMG: - [1666953485.299765][6038:6038] CHIP:DMG: ], - [1666953485.299839][6038:6038] CHIP:DMG: - [1666953485.299907][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666953485.299971][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666953485.300031][6038:6038] CHIP:DMG: }, - [1666953485.300205][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666953485.300427][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666953485.300500][6038:6038] CHIP:DMG: Cluster 204, Attribute 0 is dirty - [1666953485.300556][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0204 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1666953485.300624][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=v - [1666953485.300700][6038:6038] CHIP:DMG: AccessControl: allowed - [1666953485.300818][6038:6038] CHIP:DMG: Sending report (payload has 37 bytes)... - [1666953485.301352][6038:6038] CHIP:EM: <<< [E:23149r M:152501921 (Ack:31557778)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666953485.301454][6038:6038] CHIP:IN: (S) Sending msg 152501921 on secure session with LSID: 10244 - [1666953485.302108][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:58532 | 152501921 | [Interaction Model (1) / Report Data (0x05) / Session = 19379 / Exchange = 23149] - [1666953485.302203][6038:6038] CHIP:DMG: Header Flags = - [1666953485.302260][6038:6038] CHIP:DMG: { - [1666953485.302348][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666953485.302404][6038:6038] CHIP:DMG: { - [1666953485.302464][6038:6038] CHIP:DMG: AckMsg = 31557778 - [1666953485.302520][6038:6038] CHIP:DMG: NeedsAck = true - [1666953485.302574][6038:6038] CHIP:DMG: } - [1666953485.302646][6038:6038] CHIP:DMG: } - [1666953485.302702][6038:6038] CHIP:DMG: - [1666953485.302817][6038:6038] CHIP:DMG: Encrypted Payload (71 bytes) = - [1666953485.302873][6038:6038] CHIP:DMG: { - [1666953485.302928][6038:6038] CHIP:DMG: data = 00b34b00a1fe160992f993f298cb0a4c374aac67892015d1735721a480259f29e2b1c6180b4da4fed0e15fc273973f7231e5b82c62e6e1140db009dfbcbea30e47adfa1b3b6055 - [1666953485.302986][6038:6038] CHIP:DMG: buffer_ptr = 187650273988816 - [1666953485.303039][6038:6038] CHIP:DMG: } - [1666953485.303091][6038:6038] CHIP:DMG: - [1666953485.303250][6038:6038] CHIP:DMG: ReportDataMessage = - [1666953485.303317][6038:6038] CHIP:DMG: { - [1666953485.303371][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666953485.303456][6038:6038] CHIP:DMG: [ - [1666953485.303520][6038:6038] CHIP:DMG: AttributeReportIB = - [1666953485.303607][6038:6038] CHIP:DMG: { - [1666953485.303679][6038:6038] CHIP:DMG: AttributeDataIB = - [1666953485.303766][6038:6038] CHIP:DMG: { - [1666953485.303856][6038:6038] CHIP:DMG: DataVersion = 0x721f63ed, - [1666953485.303938][6038:6038] CHIP:DMG: AttributePathIB = - [1666953485.304025][6038:6038] CHIP:DMG: { - [1666953485.304121][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953485.304218][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953485.304319][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666953485.304414][6038:6038] CHIP:DMG: } - [1666953485.304504][6038:6038] CHIP:DMG: - [1666953485.304593][6038:6038] CHIP:DMG: Data = 0, - [1666953485.304682][6038:6038] CHIP:DMG: }, - [1666953485.304769][6038:6038] CHIP:DMG: - [1666953485.304839][6038:6038] CHIP:DMG: }, - [1666953485.304924][6038:6038] CHIP:DMG: - [1666953485.304991][6038:6038] CHIP:DMG: ], - - - ./chip-tool thermostatuserinterfaceconfiguration read keypad-lockout 1 1 - Verify DUT receives keypad-lockout attribute response on the TH(all-clusters-app) Log: - - [1666953657.435774][6038:6038] CHIP:EM: Handling via exchange: 26217r, Delegate: 0xaaaab1cb0288 - [1666953657.435876][6038:6038] CHIP:IM: Received Read request - [1666953657.436070][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666953657.436160][6038:6038] CHIP:DMG: { - [1666953657.436217][6038:6038] CHIP:DMG: AttributePathIBs = - [1666953657.436300][6038:6038] CHIP:DMG: [ - [1666953657.436400][6038:6038] CHIP:DMG: AttributePathIB = - [1666953657.436494][6038:6038] CHIP:DMG: { - [1666953657.436575][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953657.436693][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953657.436809][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666953657.436899][6038:6038] CHIP:DMG: } - [1666953657.437003][6038:6038] CHIP:DMG: - [1666953657.437079][6038:6038] CHIP:DMG: ], - [1666953657.437151][6038:6038] CHIP:DMG: - [1666953657.437249][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666953657.437316][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666953657.437402][6038:6038] CHIP:DMG: }, - [1666953657.437608][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666953657.437851][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666953657.437958][6038:6038] CHIP:DMG: Cluster 204, Attribute 1 is dirty - [1666953657.438013][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0204 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) - [1666953657.438083][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=v - [1666953657.438187][6038:6038] CHIP:DMG: AccessControl: allowed - [1666953657.438312][6038:6038] CHIP:DMG: Sending report (payload has 37 bytes)... - [1666953657.439020][6038:6038] CHIP:EM: <<< [E:26217r M:17307888 (Ack:7084691)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666953657.439141][6038:6038] CHIP:IN: (S) Sending msg 17307888 on secure session with LSID: 10245 - [1666953657.439898][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:46916 | 17307888 | [Interaction Model (1) / Report Data (0x05) / Session = 42670 / Exchange = 26217] - [1666953657.440006][6038:6038] CHIP:DMG: Header Flags = - [1666953657.440066][6038:6038] CHIP:DMG: { - [1666953657.440156][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666953657.440212][6038:6038] CHIP:DMG: { - [1666953657.440273][6038:6038] CHIP:DMG: AckMsg = 7084691 - [1666953657.440360][6038:6038] CHIP:DMG: NeedsAck = true - [1666953657.440416][6038:6038] CHIP:DMG: } - [1666953657.440491][6038:6038] CHIP:DMG: } - [1666953657.440569][6038:6038] CHIP:DMG: - [1666953657.440641][6038:6038] CHIP:DMG: Encrypted Payload (71 bytes) = - [1666953657.440698][6038:6038] CHIP:DMG: { - [1666953657.440775][6038:6038] CHIP:DMG: data = 00aea600f01808016f3a0abf125ab2e176e43c36dabe0c90fc8b3c1f3a5c3b29526965dd5e436fc4445e7add48a31b55e2308e06e8b7236f5bc12ec179f3be99e511c955806e9a - [1666953657.440834][6038:6038] CHIP:DMG: buffer_ptr = 187650273983904 - [1666953657.440888][6038:6038] CHIP:DMG: } - [1666953657.440963][6038:6038] CHIP:DMG: - [1666953657.441162][6038:6038] CHIP:DMG: ReportDataMessage = - [1666953657.441232][6038:6038] CHIP:DMG: { - [1666953657.441307][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666953657.441390][6038:6038] CHIP:DMG: [ - [1666953657.441453][6038:6038] CHIP:DMG: AttributeReportIB = - [1666953657.441550][6038:6038] CHIP:DMG: { - [1666953657.441644][6038:6038] CHIP:DMG: AttributeDataIB = - [1666953657.441738][6038:6038] CHIP:DMG: { - [1666953657.441854][6038:6038] CHIP:DMG: DataVersion = 0x721f63ed, - [1666953657.441949][6038:6038] CHIP:DMG: AttributePathIB = - [1666953657.442069][6038:6038] CHIP:DMG: { - [1666953657.442168][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953657.442296][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953657.442414][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666953657.442512][6038:6038] CHIP:DMG: } - [1666953657.442636][6038:6038] CHIP:DMG: - [1666953657.442802][6038:6038] CHIP:DMG: Data = 0, - [1666953657.442898][6038:6038] CHIP:DMG: }, - [1666953657.442997][6038:6038] CHIP:DMG: - [1666953657.443093][6038:6038] CHIP:DMG: }, - [1666953657.443182][6038:6038] CHIP:DMG: - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: TSUIC.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool thermostatuserinterfaceconfiguration read schedule-programming-visibility 1 1 - Verify DUT receives schedule-programming-visibility attribute response on the TH(all-clusters-app) Log: - - [1666953796.399850][6038:6038] CHIP:EM: Handling via exchange: 58771r, Delegate: 0xaaaab1cb0288 - [1666953796.399946][6038:6038] CHIP:IM: Received Read request - [1666953796.400142][6038:6038] CHIP:DMG: ReadRequestMessage = - [1666953796.400232][6038:6038] CHIP:DMG: { - [1666953796.400288][6038:6038] CHIP:DMG: AttributePathIBs = - [1666953796.400352][6038:6038] CHIP:DMG: [ - [1666953796.400435][6038:6038] CHIP:DMG: AttributePathIB = - [1666953796.400514][6038:6038] CHIP:DMG: { - [1666953796.400614][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953796.400703][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953796.400804][6038:6038] CHIP:DMG: Attribute = 0x0000_0002, - [1666953796.400882][6038:6038] CHIP:DMG: } - [1666953796.400980][6038:6038] CHIP:DMG: - [1666953796.401052][6038:6038] CHIP:DMG: ], - [1666953796.401123][6038:6038] CHIP:DMG: - [1666953796.401212][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666953796.401277][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666953796.401362][6038:6038] CHIP:DMG: }, - [1666953796.401557][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666953796.401769][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666953796.401866][6038:6038] CHIP:DMG: Cluster 204, Attribute 2 is dirty - [1666953796.401923][6038:6038] CHIP:DMG: Reading attribute: Cluster=0x0000_0204 Endpoint=1 AttributeId=0x0000_0002 (expanded=0) - [1666953796.402020][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=v - [1666953796.402096][6038:6038] CHIP:DMG: AccessControl: allowed - [1666953796.402240][6038:6038] CHIP:DMG: Sending report (payload has 37 bytes)... - [1666953796.402872][6038:6038] CHIP:EM: <<< [E:58771r M:9565618 (Ack:39080088)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666953796.402973][6038:6038] CHIP:IN: (S) Sending msg 9565618 on secure session with LSID: 10246 - [1666953796.403657][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:44687 | 9565618 | [Interaction Model (1) / Report Data (0x05) / Session = 52855 / Exchange = 58771] - [1666953796.403751][6038:6038] CHIP:DMG: Header Flags = - [1666953796.403809][6038:6038] CHIP:DMG: { - [1666953796.403896][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666953796.403953][6038:6038] CHIP:DMG: { - [1666953796.404014][6038:6038] CHIP:DMG: AckMsg = 39080088 - [1666953796.404093][6038:6038] CHIP:DMG: NeedsAck = true - [1666953796.404147][6038:6038] CHIP:DMG: } - [1666953796.404219][6038:6038] CHIP:DMG: } - [1666953796.404296][6038:6038] CHIP:DMG: - [1666953796.404365][6038:6038] CHIP:DMG: Encrypted Payload (71 bytes) = - [1666953796.404422][6038:6038] CHIP:DMG: { - [1666953796.404501][6038:6038] CHIP:DMG: data = 0077ce00b2f59100f2c40451e6d0ad9269be7e9666e5fdab77718cd5b87845a9816958afe63ebec62e757270f9b127bba1d5b39cab81e43e7426c59d615ba3995fa645e3b8ac48 - [1666953796.404559][6038:6038] CHIP:DMG: buffer_ptr = 187650273992768 - [1666953796.404613][6038:6038] CHIP:DMG: } - [1666953796.404686][6038:6038] CHIP:DMG: - [1666953796.404871][6038:6038] CHIP:DMG: ReportDataMessage = - [1666953796.404938][6038:6038] CHIP:DMG: { - [1666953796.404993][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666953796.405077][6038:6038] CHIP:DMG: [ - [1666953796.405140][6038:6038] CHIP:DMG: AttributeReportIB = - [1666953796.405259][6038:6038] CHIP:DMG: { - [1666953796.405341][6038:6038] CHIP:DMG: AttributeDataIB = - [1666953796.405449][6038:6038] CHIP:DMG: { - [1666953796.405538][6038:6038] CHIP:DMG: DataVersion = 0x721f63ed, - [1666953796.405643][6038:6038] CHIP:DMG: AttributePathIB = - [1666953796.405729][6038:6038] CHIP:DMG: { - [1666953796.405825][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953796.405919][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953796.406009][6038:6038] CHIP:DMG: Attribute = 0x0000_0002, - [1666953796.406106][6038:6038] CHIP:DMG: } - [1666953796.406195][6038:6038] CHIP:DMG: - [1666953796.406283][6038:6038] CHIP:DMG: Data = 0, - [1666953796.406370][6038:6038] CHIP:DMG: }, - [1666953796.406462][6038:6038] CHIP:DMG: - [1666953796.406541][6038:6038] CHIP:DMG: }, - [1666953796.406623][6038:6038] CHIP:DMG: - [1666953796.406689][6038:6038] CHIP:DMG: ], - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: TSUIC.C.AM-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool thermostatuserinterfaceconfiguration write temperature-display-mode 1 1 1 - Verify DUT receives temperature-display-mode attribute write response on the TH(all-clusters-app) Log: - - [1666953918.439285][6038:6038] CHIP:EM: Handling via exchange: 882r, Delegate: 0xaaaab1cb0288 - [1666953918.439380][6038:6038] CHIP:IM: Received Write request - [1666953918.439463][6038:6038] CHIP:DMG: IM WH moving to [Initialized] - [1666953918.439584][6038:6038] CHIP:DMG: WriteRequestMessage = - [1666953918.439670][6038:6038] CHIP:DMG: { - [1666953918.439729][6038:6038] CHIP:DMG: suppressResponse = false, - [1666953918.439817][6038:6038] CHIP:DMG: timedRequest = false, - [1666953918.439882][6038:6038] CHIP:DMG: AttributeDataIBs = - [1666953918.439956][6038:6038] CHIP:DMG: [ - [1666953918.440043][6038:6038] CHIP:DMG: AttributeDataIB = - [1666953918.440130][6038:6038] CHIP:DMG: { - [1666953918.440229][6038:6038] CHIP:DMG: AttributePathIB = - [1666953918.440318][6038:6038] CHIP:DMG: { - [1666953918.440431][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953918.440519][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953918.440635][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666953918.440715][6038:6038] CHIP:DMG: } - [1666953918.440828][6038:6038] CHIP:DMG: - [1666953918.440914][6038:6038] CHIP:DMG: Data = 1, - [1666953918.441019][6038:6038] CHIP:DMG: }, - [1666953918.441100][6038:6038] CHIP:DMG: - [1666953918.441191][6038:6038] CHIP:DMG: ], - [1666953918.441266][6038:6038] CHIP:DMG: - [1666953918.441351][6038:6038] CHIP:DMG: moreChunkedMessages = false, - [1666953918.441415][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666953918.441496][6038:6038] CHIP:DMG: }, - [1666953918.441707][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o - [1666953918.441790][6038:6038] CHIP:DMG: AccessControl: allowed - [1666953918.441903][6038:6038] CHIP:DMG: Endpoint 1, Cluster 0x0000_0204 update version to 721f63ee - [1666953918.441990][6038:6038] CHIP:DMG: IM WH moving to [AddStatus] - [1666953918.442581][6038:6038] CHIP:EM: <<< [E:882r M:83356626 (Ack:126694797)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:07 (IM:WriteResponse) - [1666953918.442682][6038:6038] CHIP:IN: (S) Sending msg 83356626 on secure session with LSID: 10247 - [1666953918.443427][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be36%eth0]:55372 | 83356626 | [Interaction Model (1) / Write Response (0x07) / Session = 58974 / Exchange = 882] - [1666953918.443524][6038:6038] CHIP:DMG: Header Flags = - [1666953918.443582][6038:6038] CHIP:DMG: { - [1666953918.443668][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666953918.443724][6038:6038] CHIP:DMG: { - [1666953918.443783][6038:6038] CHIP:DMG: AckMsg = 126694797 - [1666953918.443862][6038:6038] CHIP:DMG: NeedsAck = true - [1666953918.443917][6038:6038] CHIP:DMG: } - [1666953918.443989][6038:6038] CHIP:DMG: } - [1666953918.444066][6038:6038] CHIP:DMG: - [1666953918.444134][6038:6038] CHIP:DMG: Encrypted Payload (63 bytes) = - [1666953918.444190][6038:6038] CHIP:DMG: { - [1666953918.444268][6038:6038] CHIP:DMG: data = 005ee600d2ebf704a2d1eef3e80b3cd6fc318475b505396944b68956c6193547fae35c13aa5addb94918cde20924b6de44bb5aa1a9baa93cbf6a575805ee59 - [1666953918.444327][6038:6038] CHIP:DMG: buffer_ptr = 187650273993776 - [1666953918.444380][6038:6038] CHIP:DMG: } - [1666953918.444452][6038:6038] CHIP:DMG: - [1666953918.444570][6038:6038] CHIP:DMG: WriteResponseMessage = - [1666953918.444636][6038:6038] CHIP:DMG: { - [1666953918.444715][6038:6038] CHIP:DMG: AttributeStatusIBs = - [1666953918.444792][6038:6038] CHIP:DMG: [ - [1666953918.444877][6038:6038] CHIP:DMG: AttributeStatusIB = - [1666953918.444955][6038:6038] CHIP:DMG: { - [1666953918.445046][6038:6038] CHIP:DMG: AttributePathIB = - [1666953918.445135][6038:6038] CHIP:DMG: { - [1666953918.445246][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666953918.445334][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666953918.445443][6038:6038] CHIP:DMG: Attribute = 0x0000_0000, - [1666953918.445520][6038:6038] CHIP:DMG: } - [1666953918.445625][6038:6038] CHIP:DMG: - [1666953918.445703][6038:6038] CHIP:DMG: StatusIB = - [1666953918.445811][6038:6038] CHIP:DMG: { - [1666953918.445901][6038:6038] CHIP:DMG: status = 0x00 (SUCCESS), - [1666953918.446008][6038:6038] CHIP:DMG: }, - [1666953918.446096][6038:6038] CHIP:DMG: - [1666953918.446187][6038:6038] CHIP:DMG: }, - [1666953918.446269][6038:6038] CHIP:DMG: - [1666953918.446505][6038:6038] CHIP:DMG: ], - - - - ./chip-tool thermostatuserinterfaceconfiguration write keypad-lockout 1 1 1 - Verify DUT receives keypad-lockout attribute write response on the TH(all-clusters-app) Log: - - [1666954081.095820][6038:6038] CHIP:EM: Handling via exchange: 14149r, Delegate: 0xaaaab1cb0288 - [1666954081.095923][6038:6038] CHIP:IM: Received Write request - [1666954081.096012][6038:6038] CHIP:DMG: IM WH moving to [Initialized] - [1666954081.096146][6038:6038] CHIP:DMG: WriteRequestMessage = - [1666954081.096237][6038:6038] CHIP:DMG: { - [1666954081.096297][6038:6038] CHIP:DMG: suppressResponse = false, - [1666954081.096395][6038:6038] CHIP:DMG: timedRequest = false, - [1666954081.096460][6038:6038] CHIP:DMG: AttributeDataIBs = - [1666954081.096557][6038:6038] CHIP:DMG: [ - [1666954081.096623][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954081.096712][6038:6038] CHIP:DMG: { - [1666954081.096803][6038:6038] CHIP:DMG: AttributePathIB = - [1666954081.096890][6038:6038] CHIP:DMG: { - [1666954081.097001][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954081.097091][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666954081.097203][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954081.097286][6038:6038] CHIP:DMG: } - [1666954081.097397][6038:6038] CHIP:DMG: - [1666954081.097485][6038:6038] CHIP:DMG: Data = 1, - [1666954081.097588][6038:6038] CHIP:DMG: }, - [1666954081.097665][6038:6038] CHIP:DMG: - [1666954081.097750][6038:6038] CHIP:DMG: ], - [1666954081.097827][6038:6038] CHIP:DMG: - [1666954081.097914][6038:6038] CHIP:DMG: moreChunkedMessages = false, - [1666954081.097983][6038:6038] CHIP:DMG: InteractionModelRevision = 1 - [1666954081.098043][6038:6038] CHIP:DMG: }, - [1666954081.098262][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=m - [1666954081.098373][6038:6038] CHIP:DMG: AccessControl: allowed - [1666954081.098468][6038:6038] CHIP:DMG: Endpoint 1, Cluster 0x0000_0204 update version to 721f63ef - [1666954081.098558][6038:6038] CHIP:DMG: IM WH moving to [AddStatus] - [1666954081.099417][6038:6038] CHIP:EM: <<< [E:14149r M:188310810 (Ack:192095418)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:07 (IM:WriteResponse) - [1666954081.099539][6038:6038] CHIP:IN: (S) Sending msg 188310810 on secure session with LSID: 10248 - [1666954081.100278][6038:6038] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:54947 | 188310810 | [Interaction Model (1) / Write Response (0x07) / Session = 58271 / Exchange = 14149] - [1666954081.100389][6038:6038] CHIP:DMG: Header Flags = - [1666954081.100448][6038:6038] CHIP:DMG: { - [1666954081.100538][6038:6038] CHIP:DMG: Exchange (0x06) = - [1666954081.100596][6038:6038] CHIP:DMG: { - [1666954081.100656][6038:6038] CHIP:DMG: AckMsg = 192095418 - [1666954081.100743][6038:6038] CHIP:DMG: NeedsAck = true - [1666954081.100801][6038:6038] CHIP:DMG: } - [1666954081.100874][6038:6038] CHIP:DMG: } - [1666954081.100953][6038:6038] CHIP:DMG: - [1666954081.101024][6038:6038] CHIP:DMG: Encrypted Payload (63 bytes) = - [1666954081.101081][6038:6038] CHIP:DMG: { - [1666954081.101162][6038:6038] CHIP:DMG: data = 009fe3001a65390bee9f15b7c3ba064f6d214eda423567e2f537826a8ac4c161d069d8e561e8a31603898254f6a37a0048bc6ec2b932c37b8c1cab699b98b9 - [1666954081.101219][6038:6038] CHIP:DMG: buffer_ptr = 187650273994464 - [1666954081.101274][6038:6038] CHIP:DMG: } - [1666954081.101348][6038:6038] CHIP:DMG: - [1666954081.101477][6038:6038] CHIP:DMG: WriteResponseMessage = - [1666954081.101572][6038:6038] CHIP:DMG: { - [1666954081.101627][6038:6038] CHIP:DMG: AttributeStatusIBs = - [1666954081.101740][6038:6038] CHIP:DMG: [ - [1666954081.101806][6038:6038] CHIP:DMG: AttributeStatusIB = - [1666954081.101908][6038:6038] CHIP:DMG: { - [1666954081.101985][6038:6038] CHIP:DMG: AttributePathIB = - [1666954081.102092][6038:6038] CHIP:DMG: { - [1666954081.102180][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954081.102294][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666954081.102383][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954081.102484][6038:6038] CHIP:DMG: } - [1666954081.102580][6038:6038] CHIP:DMG: - [1666954081.102686][6038:6038] CHIP:DMG: StatusIB = - [1666954081.102814][6038:6038] CHIP:DMG: { - [1666954081.102924][6038:6038] CHIP:DMG: status = 0x00 (SUCCESS), - [1666954081.103008][6038:6038] CHIP:DMG: }, - [1666954081.103112][6038:6038] CHIP:DMG: - [1666954081.103187][6038:6038] CHIP:DMG: }, - [1666954081.103287][6038:6038] CHIP:DMG: - [1666954081.103352][6038:6038] CHIP:DMG: ], - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: TSUIC.C.AO-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool thermostatuserinterfaceconfiguration write schedule-programming-visibility 1 1 1 - Verify DUT receives schedule-programming-visibility attribute write response on the TH(all-clusters-app) Log: - [1658143828.619738][13946:13946] CHIP:DMG: WriteRequestMessage = - [1658143828.619764][13946:13946] CHIP:DMG: { - [1658143828.619787][13946:13946] CHIP:DMG: suppressResponse = false, - [1658143828.619814][13946:13946] CHIP:DMG: timedRequest = false, - [1658143828.619838][13946:13946] CHIP:DMG: AttributeDataIBs = - [1658143828.619867][13946:13946] CHIP:DMG: [ - [1658143828.619891][13946:13946] CHIP:DMG: AttributeDataIB = - [1658143828.619919][13946:13946] CHIP:DMG: { - [1658143828.619944][13946:13946] CHIP:DMG: AttributePathIB = - [1658143828.619980][13946:13946] CHIP:DMG: { - [1658143828.620011][13946:13946] CHIP:DMG: Endpoint = 0x1, - [1658143828.620045][13946:13946] CHIP:DMG: Cluster = 0x204, - [1658143828.620078][13946:13946] CHIP:DMG: Attribute = 0x0000_0002, - [1658143828.620108][13946:13946] CHIP:DMG: } - [1658143828.620140][13946:13946] CHIP:DMG: - [1658143828.620172][13946:13946] CHIP:DMG: Data = 1, - [1658143828.620200][13946:13946] CHIP:DMG: }, - [1658143828.620228][13946:13946] CHIP:DMG: - [1658143828.620252][13946:13946] CHIP:DMG: ], - [1658143828.620280][13946:13946] CHIP:DMG: - [1658143828.620305][13946:13946] CHIP:DMG: moreChunkedMessages = false, - [1658143828.620330][13946:13946] CHIP:DMG: InteractionModelRevision = 1 - [1658143828.620353][13946:13946] CHIP:DMG: }, - [1658143828.620434][13946:13946] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=m - disabled: true + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT reads TemperatureDisplayMode attribute from TH" + wait: "readAttribute" + attribute: "TemperatureDisplayMode" + + - label: "DUT reads KeypadLockout attribute from TH" + wait: "readAttribute" + attribute: "KeypadLockout" + + - label: "DUT reads ScheduleProgrammingVisibility attribute from TH" + wait: "readAttribute" + attribute: "ScheduleProgrammingVisibility" + + - label: "DUT writes TemperatureDisplayMode attribute from TH" + wait: "writeAttribute" + attribute: "TemperatureDisplayMode" + arguments: + value: + + - label: "DUT writes KeypadLockout attribute from TH" + wait: "writeAttribute" + attribute: "KeypadLockout" + arguments: + value: + + - label: "DUT writes ScheduleProgrammingVisibility attribute from TH" + wait: "writeAttribute" + attribute: "ScheduleProgrammingVisibility" + arguments: + value: - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" + AttributeList.Commission DUT to TH again" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool thermostatuserinterfaceconfiguration read temperature-display-mode 1 1 Verify DUT receives temperature-display-mode attribute response on the TH(all-clusters-minimal-app) Log: @@ -595,7 +209,7 @@ tests: [1666952951.998925][5988:5988] CHIP:DMG: ], - ./chip-tool thermostatuserinterfaceconfiguration read feature-map 1 1 + ./chip-tool thermostatuserinterfaceconfiguration read feature-map 1 1 Verify DUT receives feature-map attribute response on the TH(all-clusters-minimal-app) Log: [1666953011.987486][5988:5988] CHIP:EM: Handling via exchange: 41581r, Delegate: 0xaaaad96680e0 @@ -840,12 +454,19 @@ tests: [1676893524.775877][14579:14579] CHIP:DMG: SuppressResponse = true, [1676893524.775891][14579:14579] CHIP:DMG: InteractionModelRevision = 1 [1676893524.775903][14579:14579] CHIP:DMG: } - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: TSUIC.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -917,12 +538,19 @@ tests: [1666953130.736616][5988:5988] CHIP:DMG: }, [1666953130.736709][5988:5988] CHIP:DMG: [1666953130.736927][5988:5988] CHIP:DMG: }, - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: TSUIC.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -996,4 +624,12 @@ tests: [1666953180.794294][5988:5988] CHIP:DMG: }, [1666953180.794379][5988:5988] CHIP:DMG: [1666953180.794440][5988:5988] CHIP:DMG: ], - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml index ed18c5e8034497..485598ece27edd 100644 --- a/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 92.1. [TC-ULABEL-1.1] Global Attributes [DUT-server] +name: 95.1.1. [TC-ULABEL-1.1] Global Attributes with DUT as Server PICS: - ULABEL.S diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml index 278218e2046a30..6b069a63acca1a 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml @@ -165,7 +165,7 @@ tests: # The value of bit 0..1 must be 01b & if (LF) value of bit 2..3 must be 01b else 00b & if (TL) value of bit 4..5 must be 01b else 00b # Only 3 possibilities are possible here : 05h = 5, 11h = 17 or 15h = 21 then check a range for simplicity [5 - 21] - label: "3a: TH reads OperationalStatus attribute's bit 0..1" - PICS: WNCV.S.A000a + PICS: WNCV.S.A000a && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -176,7 +176,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" - PICS: WNCV.S.A000a && WNCV.S.F00 + PICS: WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -187,7 +187,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" - PICS: WNCV.S.A000a && !WNCV.S.F00 + PICS: WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -197,7 +197,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" - PICS: WNCV.S.A000a && WNCV.S.F01 + PICS: WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -208,7 +208,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" - PICS: WNCV.S.A000a && !WNCV.S.F01 + PICS: WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -216,6 +216,25 @@ tests: type: bitmap8 hasMasksClear: [0x10, 0x20] + #Issue https://github.com/CHIP-Specifications/chip-test-scripts/issues/509 + - label: "3a: TH reads OperationalStatus attribute from DUT" + verification: | + ./chip-tool windowcovering read operational-status 1 1 + + Verify "OperationalStatus " on the TH(Chip-tool) Log: is currently not zero and is in opening mode + + [1650883032.948262][8712:8718] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0102 Attribute 0x0000_000A DataVersion: 366273196 + [1650883032.948351][8712:8718] CHIP:TOO: OperationalStatus: 21 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + ### Depending on the DUT specs we might prefer a arguments here - label: "3a2: DUT updates its attributes" cluster: "DelayCommands" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml index 18a3eea567c2e2..c68bddd1a20142 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml @@ -165,7 +165,7 @@ tests: # The value of bit 0..1 must be 10b & if (LF) value of bit 2..3 must be 10b else 00b & if (TL) value of bit 4..5 must be 10b else 00b # Only 3 possibilities are possible here : 0Ah = 10, 22h = 34 or 2Ah = 42 then check a range for simplicity [10 - 42] - label: "3a: TH reads OperationalStatus attribute's bit 0..1" - PICS: WNCV.S.A000a + PICS: WNCV.S.A000a && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -176,7 +176,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" - PICS: WNCV.S.A000a && WNCV.S.F00 + PICS: WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -187,7 +187,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" - PICS: WNCV.S.A000a && !WNCV.S.F00 + PICS: WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -197,7 +197,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" - PICS: WNCV.S.A000a && WNCV.S.F01 + PICS: WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -208,7 +208,7 @@ tests: - label: "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" - PICS: WNCV.S.A000a && !WNCV.S.F01 + PICS: WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "OperationalStatus" response: @@ -216,6 +216,27 @@ tests: type: bitmap8 hasMasksClear: [0x10, 0x20] + #Issue https://github.com/CHIP-Specifications/chip-test-scripts/issues/509 + - label: "3a: TH reads OperationalStatus attribute from DUT" + verification: | + ./chip-tool windowcovering read operational-status 1 1 + + Verify "OperationalStatus " on the TH(Chip-tool) Log: is currently not zero and is in closing mode + + CHIP:DMG: Data = 42, + CHIP:DMG: } + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0102 Attribute 0x0000_000ADataVersion: 324132078 + CHIP:TOO: OperationalStatus: 42 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + ### Depending on the DUT specs we might prefer a arguments here - label: "3a2: DUT updates its attributes" cluster: "DelayCommands" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml deleted file mode 100644 index 984bf6562e462f..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml +++ /dev/null @@ -1,161 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.4.7. [TC-WNCV-6.1] Basic Commands Verification [DUT as Client] - -PICS: - - WNCV.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Precondition" - verification: | - TH must support at least one of these (0xFFFC) FeatureMap attribute’s flag WNCV.S.F00(LF) and/or WNCV.S.F01(TL) - disabled: true - - - label: "Check UpOrOpen command" - verification: | - - disabled: true - - - label: "DUT sends UpOrOpen command to TH" - PICS: WNCV.C.C00.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool windowcovering up-or-open 1 1 - - Verify the " DUT responds with request response" on TH(all-clusters-app): - - 1659945239.794637][2742:2742] CHIP:DMG: InvokeRequestMessage = - [1659945239.794680][2742:2742] CHIP:DMG: { - [1659945239.794718][2742:2742] CHIP:DMG: suppressResponse = false, - [1659945239.794762][2742:2742] CHIP:DMG: timedRequest = false, - [1659945239.794801][2742:2742] CHIP:DMG: InvokeRequests = - [1659945239.794851][2742:2742] CHIP:DMG: [ - [1659945239.794891][2742:2742] CHIP:DMG: CommandDataIB = - [1659945239.794936][2742:2742] CHIP:DMG: { - [1659945239.794997][2742:2742] CHIP:DMG: CommandPathIB = - [1659945239.795055][2742:2742] CHIP:DMG: { - [1659945239.795112][2742:2742] CHIP:DMG: EndpointId = 0x1, - [1659945239.795177][2742:2742] CHIP:DMG: ClusterId = 0x102, - [1659945239.795239][2742:2742] CHIP:DMG: CommandId = 0x0, - [1659945239.795297][2742:2742] CHIP:DMG: }, - [1659945239.795353][2742:2742] CHIP:DMG: - [1659945239.795403][2742:2742] CHIP:DMG: CommandFields = - [1659945239.795451][2742:2742] CHIP:DMG: { - [1659945239.795500][2742:2742] CHIP:DMG: }, - [1659945239.795547][2742:2742] CHIP:DMG: }, - [1659945239.795594][2742:2742] CHIP:DMG: - disabled: true - - - label: "Check DownOrClose command" - verification: | - - disabled: true - - - label: "DUT sends DownOrClose command to TH" - PICS: WNCV.C.C01.Tx - verification: | - ./chip-tool windowcovering down-or-close 1 1 - - - - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - [1659945343.976313][2742:2742] CHIP:DMG: InvokeRequestMessage = - [1659945343.976344][2742:2742] CHIP:DMG: { - [1659945343.976367][2742:2742] CHIP:DMG: suppressResponse = false, - [1659945343.976399][2742:2742] CHIP:DMG: timedRequest = false, - [1659945343.976424][2742:2742] CHIP:DMG: InvokeRequests = - [1659945343.976454][2742:2742] CHIP:DMG: [ - [1659945343.976479][2742:2742] CHIP:DMG: CommandDataIB = - [1659945343.976510][2742:2742] CHIP:DMG: { - [1659945343.976539][2742:2742] CHIP:DMG: CommandPathIB = - [1659945343.976571][2742:2742] CHIP:DMG: { - [1659945343.976605][2742:2742] CHIP:DMG: EndpointId = 0x1, - [1659945343.976639][2742:2742] CHIP:DMG: ClusterId = 0x102, - [1659945343.976672][2742:2742] CHIP:DMG: CommandId = 0x1, - [1659945343.976701][2742:2742] CHIP:DMG: }, - [1659945343.976734][2742:2742] CHIP:DMG: - [1659945343.976764][2742:2742] CHIP:DMG: CommandFields = - [1659945343.976792][2742:2742] CHIP:DMG: { - [1659945343.976823][2742:2742] CHIP:DMG: }, - [1659945343.976852][2742:2742] CHIP:DMG: }, - [1659945343.976882][2742:2742] CHIP:DMG: - [1659945343.976906][2742:2742] CHIP:DMG: ], - [1659945343.976936][2742:2742] CHIP:DMG: - [1659945343.976960][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945343.976984][2742:2742] CHIP:DMG: }, - disabled: true - - - label: "Check StopMotion command" - verification: | - - disabled: true - - - label: "DUT sends a StopMotion command to TH" - PICS: WNCV.C.C02.Tx - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool windowcovering stop-motion 1 1 - - - Verify the " DUT responds with request response" on TH(all-clusters-app): - - [1661859427.618059][2477:2477] CHIP:DMG: InvokeRequestMessage = - [1661859427.618086][2477:2477] CHIP:DMG: { - [1661859427.618112][2477:2477] CHIP:DMG: suppressResponse = false, - [1661859427.618140][2477:2477] CHIP:DMG: timedRequest = false, - [1661859427.618165][2477:2477] CHIP:DMG: InvokeRequests = - [1661859427.618196][2477:2477] CHIP:DMG: [ - [1661859427.618221][2477:2477] CHIP:DMG: CommandDataIB = - [1661859427.618252][2477:2477] CHIP:DMG: { - [1661859427.618279][2477:2477] CHIP:DMG: CommandPathIB = - [1661859427.618312][2477:2477] CHIP:DMG: { - [1661859427.618347][2477:2477] CHIP:DMG: EndpointId = 0x1, - [1661859427.618383][2477:2477] CHIP:DMG: ClusterId = 0x102, - [1661859427.618420][2477:2477] CHIP:DMG: CommandId = 0x2, - [1661859427.618452][2477:2477] CHIP:DMG: }, - [1661859427.618487][2477:2477] CHIP:DMG: - [1661859427.618516][2477:2477] CHIP:DMG: CommandFields = - [1661859427.618551][2477:2477] CHIP:DMG: { - [1661859427.618583][2477:2477] CHIP:DMG: }, - [1661859427.618613][2477:2477] CHIP:DMG: }, - [1661859427.618645][2477:2477] CHIP:DMG: - [1661859427.618670][2477:2477] CHIP:DMG: ], - [1661859427.618700][2477:2477] CHIP:DMG: - [1661859427.618724][2477:2477] CHIP:DMG: InteractionModelRevision = 1 - [1661859427.618747][2477:2477] CHIP:DMG: }, - [1661859427.618814][2477:2477] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0102 e=1 p=o - [1661859427.618853][2477:2477] CHIP:DMG: AccessControl: allowed - [1661859427.618882][2477:2477] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0102 Command=0x0000_0002 - [1661859427.618914][2477:2477] CHIP:ZCL: StopMotion command received - [1661859427.618961][2477:2477] CHIP:DMG: Endpoint 1, Cluster 0x0000_0102 update version to f31db - - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - TH receives the DownOrClose command and knows this attribute for this cluster and provides a plausable value, DUT processes the values and operates normally - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml new file mode 100644 index 00000000000000..c008fa5ade2f07 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml @@ -0,0 +1,40 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: 3.4.7. [TC-WNCV-6.1] Basic Commands Verification with client as DUT + +PICS: + - WNCV.C + +config: + nodeId: 0x12344321 + cluster: "Window Covering" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: "DUT sends UpOrOpen command to TH" + wait: "UpOrOpen" + PICS: WNCV.C.C00.Tx + + - label: "DUT sends DownOrClose command to TH" + wait: "DownOrClose" + PICS: WNCV.C.C01.Tx + + - label: "DUT sends StopMotion command to TH" + wait: "StopMotion" + PICS: WNCV.C.C02.Tx diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml deleted file mode 100644 index d97d7b954dd7b4..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.4.8. [TC-WNCV-7.1] GoToPercentage Commands Verification [DUT as Client] - -PICS: - - WNCV.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Precondition" - verification: | - TH must support at least one of these (0xFFFC) FeatureMap attribute’s flags WNCV.S.F00(LF) & WNCV.S.F02(PA_LF) and/or WNCV.S.F01(TL) & WNCV.S.F04(PA_TL) - disabled: true - - - label: "Check GoToLiftPercentage command 50%" - verification: | - - disabled: true - - - label: "DUT sends GoToLiftPercentage command with 50% to TH" - PICS: WNCV.C.C05.Tx - verification: | - DUT sends GoToLiftPercentage command with 50% to TH - - - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool windowcovering go-to-lift-percentage 5000 1 1 - - Verify the "DUT responds with right request response" - - [1659945446.669477][2742:2742] CHIP:DMG: InvokeRequestMessage = - [1659945446.669520][2742:2742] CHIP:DMG: { - [1659945446.669555][2742:2742] CHIP:DMG: suppressResponse = false, - [1659945446.669599][2742:2742] CHIP:DMG: timedRequest = false, - [1659945446.669639][2742:2742] CHIP:DMG: InvokeRequests = - [1659945446.669688][2742:2742] CHIP:DMG: [ - [1659945446.669729][2742:2742] CHIP:DMG: CommandDataIB = - [1659945446.669773][2742:2742] CHIP:DMG: { - [1659945446.669815][2742:2742] CHIP:DMG: CommandPathIB = - [1659945446.669866][2742:2742] CHIP:DMG: { - [1659945446.669919][2742:2742] CHIP:DMG: EndpointId = 0x1, - [1659945446.669975][2742:2742] CHIP:DMG: ClusterId = 0x102, - [1659945446.670033][2742:2742] CHIP:DMG: CommandId = 0x5, - [1659945446.670084][2742:2742] CHIP:DMG: }, - [1659945446.670137][2742:2742] CHIP:DMG: - [1659945446.670191][2742:2742] CHIP:DMG: CommandFields = - [1659945446.670247][2742:2742] CHIP:DMG: { - [1659945446.670302][2742:2742] CHIP:DMG: 0x0 = 5000, - [1659945446.670361][2742:2742] CHIP:DMG: }, - [1659945446.670409][2742:2742] CHIP:DMG: }, - [1659945446.670460][2742:2742] CHIP:DMG: - [1659945446.670499][2742:2742] CHIP:DMG: ], - [1659945446.670548][2742:2742] CHIP:DMG: - [1659945446.670587][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945446.670626][2742:2742] CHIP:DMG: }, - disabled: true - - - label: "Check GoToTiltPercentage command 50%" - verification: | - - disabled: true - - - label: "DUT sends GoToTiltPercentage command with 50% to TH" - PICS: WNCV.C.C08.Tx - verification: | - DUT sends GoToTiltPercentage command with 50% to TH - - - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool windowcovering go-to-tilt-percentage 5000 1 1 - - - Verify the "DUT responds with right request response" - - [1659945481.649337][2742:2742] CHIP:DMG: InvokeRequestMessage = - [1659945481.649367][2742:2742] CHIP:DMG: { - [1659945481.649393][2742:2742] CHIP:DMG: suppressResponse = false, - [1659945481.649424][2742:2742] CHIP:DMG: timedRequest = false, - [1659945481.649452][2742:2742] CHIP:DMG: InvokeRequests = - [1659945481.649487][2742:2742] CHIP:DMG: [ - [1659945481.649515][2742:2742] CHIP:DMG: CommandDataIB = - [1659945481.649551][2742:2742] CHIP:DMG: { - [1659945481.649582][2742:2742] CHIP:DMG: CommandPathIB = - [1659945481.649622][2742:2742] CHIP:DMG: { - [1659945481.649660][2742:2742] CHIP:DMG: EndpointId = 0x1, - [1659945481.649702][2742:2742] CHIP:DMG: ClusterId = 0x102, - [1659945481.649743][2742:2742] CHIP:DMG: CommandId = 0x8, - [1659945481.649778][2742:2742] CHIP:DMG: }, - [1659945481.649819][2742:2742] CHIP:DMG: - [1659945481.649856][2742:2742] CHIP:DMG: CommandFields = - [1659945481.649892][2742:2742] CHIP:DMG: { - [1659945481.649929][2742:2742] CHIP:DMG: 0x0 = 5000, - [1659945481.649970][2742:2742] CHIP:DMG: }, - [1659945481.650002][2742:2742] CHIP:DMG: }, - [1659945481.650037][2742:2742] CHIP:DMG: - [1659945481.650065][2742:2742] CHIP:DMG: ], - [1659945481.650099][2742:2742] CHIP:DMG: - [1659945481.650126][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945481.650153][2742:2742] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml new file mode 100644 index 00000000000000..2c2bf77473dc90 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml @@ -0,0 +1,40 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: + 36.4.8. [TC-WNCV-7.1] GoToPercentage Commands Verification with client as + DUT + +PICS: + - WNCV.C + +config: + nodeId: 0x12344321 + cluster: "Window Covering" + endpoint: 0 + +tests: + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + + - label: + "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT" + wait: "GoToLiftPercentage" + PICS: WNCV.C.C05.Tx + + - label: + "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT" + wait: "GoToTiltPercentage" + PICS: WNCV.C.C08.Tx diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 5b5fc568fb1847..3cb6b999f9ea01 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -309,7 +309,7 @@ CC.C.F04=0 APPLAUNCHER.S=1 APPLAUNCHER.S.A0000=1 APPLAUNCHER.S.A0001=1 -APPLAUNCHER.S.AP=1 +APPLAUNCHER.S.F00=1 APPLAUNCHER.C=1 APPLAUNCHER.C.C00.Tx=1 @@ -320,9 +320,9 @@ APPLAUNCHER.S.C01.Rsp=1 APPLAUNCHER.S.C02.Rsp=1 KEYPADINPUT.S=1 -KEYPADINPUT.S.LK=1 -KEYPADINPUT.S.NK=1 -KEYPADINPUT.S.NV=1 +KEYPADINPUT.S.F01=1 +KEYPADINPUT.S.F02=1 +KEYPADINPUT.S.F00=1 KEYPADINPUT.S.C00.Rsp=1 KEYPADINPUT.C.C00.Tx=1 @@ -344,7 +344,7 @@ MEDIAINPUT.S.C00.Rsp=1 MEDIAINPUT.S.C01.Rsp=1 MEDIAINPUT.S.C02.Rsp=1 MEDIAINPUT.S.C03.Rsp=1 -MEDIAINPUT.S.NU=1 +MEDIAINPUT.S.F00=1 MEDIAINPUT.C=1 MEDIAINPUT.C.C00.Tx=1 @@ -359,8 +359,8 @@ CHANNEL.S.A0002=1 CHANNEL.S.C00.Rsp=1 CHANNEL.S.C02.Rsp=1 CHANNEL.S.C03.Rsp=1 -CHANNEL.S.LI=1 -CHANNEL.S.CL=0 +CHANNEL.S.F01=1 +CHANNEL.S.F00=0 CHANNEL.C=1 CHANNEL.C.C00.Tx=1 @@ -388,8 +388,8 @@ MEDIAPLAYBACK.S.C08.Rsp=1 MEDIAPLAYBACK.S.C09.Rsp=1 MEDIAPLAYBACK.S.C0b.Rsp=1 -MEDIAPLAYBACK.S.AS=1 -MEDIAPLAYBACK.S.VS=1 +MEDIAPLAYBACK.S.F00=1 +MEDIAPLAYBACK.S.F01=1 MEDIAPLAYBACK.C=1 MEDIAPLAYBACK.C.C00.Tx=1 @@ -412,7 +412,7 @@ AUDIOOUTPUT.S.C01.Rsp=1 AUDIOOUTPUT.C=1 AUDIOOUTPUT.C.C00.Tx=1 AUDIOOUTPUT.C.C01.Tx=1 -AUDIOOUTPUT.S.NU=0 +AUDIOOUTPUT.S.F00=0 TGTNAV.S=1 TGTNAV.S.A0000=1 @@ -439,8 +439,8 @@ CONTENTLAUNCHER.S.A0000=1 CONTENTLAUNCHER.S.A0001=1 CONTENTLAUNCHER.S.A0000=1 CONTENTLAUNCHER.S.A0001=1 -CONTENTLAUNCHER.S.CS=0 -CONTENTLAUNCHER.S.UP=1 +CONTENTLAUNCHER.S.F00=0 +CONTENTLAUNCHER.S.F01=1 CONTENTLAUNCHER.S.C00.Rsp=1 CONTENTLAUNCHER.S.C01.Rsp=1 @@ -459,8 +459,8 @@ ALOGIN.C.C00.Tx=1 KEYPADINPUT.C=1 MC.S=1 -MC.S.UDC=1 -MC.S.UDCLOGIN=1 +MC.S.M.UDC=1 +MC.S.M.UDCLOGIN=1 MC.C=1 # Level Control Cluster diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json index 63380e81651c69..f552cecf1cb2d4 100644 --- a/src/app/tests/suites/ciTests.json +++ b/src/app/tests/suites/ciTests.json @@ -103,7 +103,6 @@ "Test_TC_MEDIAPLAYBACK_1_7", "Test_TC_AUDIOOUTPUT_1_8", "Test_TC_TGTNAV_1_9", - "Test_TC_TGTNAV_8_2", "Test_TC_APBSC_1_10", "Test_TC_CONTENTLAUNCHER_1_11", "Test_TC_ALOGIN_1_12", diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index 1dc3116a25925c..d988b42b75c216 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -107,7 +107,7 @@ "Test_TC_DGGEN_3_1" ], "Identify": ["Test_TC_I_3_2"], - "IlluminanceMeasurement": ["Test_TC_ILL_3_1"], + "IlluminanceMeasurement": [], "InteractionDataModel": [ "Test_TC_IDM_1_1", "Test_TC_IDM_1_2", @@ -151,7 +151,8 @@ "Test_TC_CONTENTLAUNCHER_10_7", "Test_TC_MC_11_1", "Test_TC_MC_11_2", - "Test_TC_ALOGIN_12_2" + "Test_TC_ALOGIN_12_2", + "Test_TC_TGTNAV_8_2" ], "MultipleFabrics": [ "Test_TC_CADMIN_1_1", @@ -237,24 +238,17 @@ "SoftwareDiagnostics": [ "Test_TC_DGSW_2_1", "Test_TC_DGSW_2_2", - "Test_TC_DGSW_2_3", - "Test_TC_DGSW_3_2" + "Test_TC_DGSW_2_3" ], - "EthernetNetworkDiagnostics": ["Test_TC_DGETH_3_2"], - "WiFiNetworkDiagnostics": ["Test_TC_DGWIFI_2_2", "Test_TC_DGWIFI_3_2"], - "WindowCovering": ["Test_TC_WNCV_6_1", "Test_TC_WNCV_7_1"], + "EthernetNetworkDiagnostics": [], + "WiFiNetworkDiagnostics": ["Test_TC_DGWIFI_2_2"], + "WindowCovering": [], "FlowMeasurement": ["Test_TC_FLW_2_2"], "OccupancySensing": ["Test_TC_OCC_3_1"], "PowerSource": ["Test_TC_PS_2_2"], "BooleanState": ["Test_TC_BOOL_2_2"], "ColorControl": [ "Test_TC_CC_2_2", - "Test_TC_CC_3_4", - "Test_TC_CC_4_5", - "Test_TC_CC_5_4", - "Test_TC_CC_6_4", - "Test_TC_CC_7_5", - "Test_TC_CC_9_4", "Test_TC_CC_3_1", "Test_TC_CC_7_1", "Test_TC_CC_9_1", @@ -270,19 +264,16 @@ "Test_TC_DRLK_3_3" ], "LocalizationConfiguration": ["Test_TC_LCFG_2_1"], - "LevelControl": ["Test_TC_LVL_2_3", "Test_TC_LVL_7_1", "Test_TC_LVL_8_1"], - "OnOff": ["Test_TC_OO_2_3", "Test_TC_OO_3_1", "Test_TC_OO_3_2"], + "LevelControl": ["Test_TC_LVL_7_1", "Test_TC_LVL_8_1"], + "OnOff": ["Test_TC_OO_2_3"], "RelativeHumidityMeasurement": ["Test_TC_RH_2_2"], "Switch": ["Test_TC_SWTCH_2_2", "Test_TC_SWTCH_3_2"], - "TemperatureMeasurement": ["Test_TC_TMP_2_2", "Test_TC_TMP_3_1"], + "TemperatureMeasurement": ["Test_TC_TMP_2_2"], "Thermostat": ["Test_TC_TSTAT_3_1", "Test_TC_TSTAT_3_2"], - "ThermostatUserConfiguration": ["Test_TC_TSUIC_3_1"], + "ThermostatUserConfiguration": [], "ThreadNetworkDiagnostics": [ "Test_TC_DGTHREAD_2_5", - "Test_TC_DGTHREAD_3_1", - "Test_TC_DGTHREAD_3_2", - "Test_TC_DGTHREAD_3_3", - "Test_TC_DGTHREAD_3_4" + "Test_TC_DGTHREAD_3_1" ], "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_2_2", "Test_TC_ACT_3_2"], "TimeFormatLocalization": ["Test_TC_LTIME_2_1", "Test_TC_LTIME_3_1"], @@ -295,7 +286,7 @@ "Test_TC_S_2_3", "Test_TC_S_3_1" ], - "PumpConfigurationControl": ["Test_TC_PCC_3_1"], + "PumpConfigurationControl": [], "AccessControl": ["Test_TC_ACL_2_5", "Test_TC_ACL_2_6"], "UserLabel": [], "BridgedDeviceBasicInformation": [ diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index f0325c29f5e748..688b47fe0e9a2d 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -117,7 +117,6 @@ class TestList : public Command printf("Test_TC_MEDIAPLAYBACK_1_7\n"); printf("Test_TC_AUDIOOUTPUT_1_8\n"); printf("Test_TC_TGTNAV_1_9\n"); - printf("Test_TC_TGTNAV_8_2\n"); printf("Test_TC_APBSC_1_10\n"); printf("Test_TC_CONTENTLAUNCHER_1_11\n"); printf("Test_TC_ALOGIN_1_12\n"); @@ -375,13 +374,11 @@ class ManualTestList : public Command printf("Test_TC_DLOG_2_2\n"); printf("Test_TC_DLOG_3_1\n"); printf("Test_TC_DESC_2_1\n"); - printf("Test_TC_DGETH_3_2\n"); printf("Test_TC_CGEN_2_2\n"); printf("Test_TC_DGGEN_2_2\n"); printf("Test_TC_DGGEN_2_3\n"); printf("Test_TC_DGGEN_3_1\n"); printf("Test_TC_I_3_2\n"); - printf("Test_TC_ILL_3_1\n"); printf("Test_TC_IDM_1_1\n"); printf("Test_TC_IDM_1_2\n"); printf("Test_TC_IDM_2_1\n"); @@ -423,6 +420,7 @@ class ManualTestList : public Command printf("Test_TC_MC_11_1\n"); printf("Test_TC_MC_11_2\n"); printf("Test_TC_ALOGIN_12_2\n"); + printf("Test_TC_TGTNAV_8_2\n"); printf("Test_TC_CADMIN_1_1\n"); printf("Test_TC_CADMIN_1_2\n"); printf("Test_TC_CADMIN_1_7\n"); @@ -498,22 +496,12 @@ class ManualTestList : public Command printf("Test_TC_DGSW_2_1\n"); printf("Test_TC_DGSW_2_2\n"); printf("Test_TC_DGSW_2_3\n"); - printf("Test_TC_DGSW_3_2\n"); printf("Test_TC_DGWIFI_2_2\n"); - printf("Test_TC_DGWIFI_3_2\n"); - printf("Test_TC_WNCV_6_1\n"); - printf("Test_TC_WNCV_7_1\n"); printf("Test_TC_FLW_2_2\n"); printf("Test_TC_OCC_3_1\n"); printf("Test_TC_PS_2_2\n"); printf("Test_TC_BOOL_2_2\n"); printf("Test_TC_CC_2_2\n"); - printf("Test_TC_CC_3_4\n"); - printf("Test_TC_CC_4_5\n"); - printf("Test_TC_CC_5_4\n"); - printf("Test_TC_CC_6_4\n"); - printf("Test_TC_CC_7_5\n"); - printf("Test_TC_CC_9_4\n"); printf("Test_TC_CC_3_1\n"); printf("Test_TC_CC_7_1\n"); printf("Test_TC_CC_9_1\n"); @@ -526,25 +514,17 @@ class ManualTestList : public Command printf("Test_TC_DRLK_3_2\n"); printf("Test_TC_DRLK_3_3\n"); printf("Test_TC_LCFG_2_1\n"); - printf("Test_TC_LVL_2_3\n"); printf("Test_TC_LVL_7_1\n"); printf("Test_TC_LVL_8_1\n"); printf("Test_TC_OO_2_3\n"); - printf("Test_TC_OO_3_1\n"); - printf("Test_TC_OO_3_2\n"); printf("Test_TC_RH_2_2\n"); printf("Test_TC_SWTCH_2_2\n"); printf("Test_TC_SWTCH_3_2\n"); printf("Test_TC_TMP_2_2\n"); - printf("Test_TC_TMP_3_1\n"); printf("Test_TC_TSTAT_3_1\n"); printf("Test_TC_TSTAT_3_2\n"); - printf("Test_TC_TSUIC_3_1\n"); printf("Test_TC_DGTHREAD_2_5\n"); printf("Test_TC_DGTHREAD_3_1\n"); - printf("Test_TC_DGTHREAD_3_2\n"); - printf("Test_TC_DGTHREAD_3_3\n"); - printf("Test_TC_DGTHREAD_3_4\n"); printf("Test_TC_ACT_2_1\n"); printf("Test_TC_ACT_2_2\n"); printf("Test_TC_ACT_3_2\n"); @@ -558,7 +538,6 @@ class ManualTestList : public Command printf("Test_TC_S_2_2\n"); printf("Test_TC_S_2_3\n"); printf("Test_TC_S_3_1\n"); - printf("Test_TC_PCC_3_1\n"); printf("Test_TC_ACL_2_5\n"); printf("Test_TC_ACL_2_6\n"); printf("Test_TC_BRBINFO_2_2\n"); @@ -5707,7 +5686,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand class Test_TC_ACL_2_7Suite : public TestCommand { public: - Test_TC_ACL_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_7", 18, credsIssuerConfig) + Test_TC_ACL_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_7", 23, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -5818,11 +5797,19 @@ class Test_TC_ACL_2_7Suite : public TestCommand break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -5840,7 +5827,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand } } break; - case 13: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -5865,7 +5852,11 @@ class Test_TC_ACL_2_7Suite : public TestCommand } } break; - case 14: + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: switch (mTestSubStepIndex) { case 0: @@ -5893,7 +5884,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand break; } break; - case 15: + case 18: switch (mTestSubStepIndex) { case 0: @@ -5928,12 +5919,20 @@ class Test_TC_ACL_2_7Suite : public TestCommand break; } break; - case 16: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 17: + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -6028,17 +6027,29 @@ class Test_TC_ACL_2_7Suite : public TestCommand } case 8: { LogStep(8, "Read the TH2 commissioner node ID"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; return GetCommissionerNodeId(kIdentityBeta, value); } case 9: { LogStep(9, "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 10: { - LogStep(10, + LogStep(10, "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -6060,11 +6071,11 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 11: { - LogStep(11, + case 12: { + LogStep(12, "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6089,34 +6100,66 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 12: { - LogStep(12, "Step 8:TH1 reads AccessControl cluster Extension attribute"); + case 13: { + LogStep(13, + "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " + "AccessControlExtensionStruct containing 1 element"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "Step 8:TH1 reads AccessControl cluster Extension attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 9:TH2 reads AccessControl cluster Extension attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 15: { + LogStep(15, "Step 9:TH2 reads AccessControl cluster Extension attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Step 10:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + case 16: { + LogStep(16, "Step 9:TH2 reads AccessControl cluster Extension attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "Step 10:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 1; return ReadEvent(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlExtensionChanged::Id, false, chip::NullOptional); } - case 15: { - LogStep(15, "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); - VerifyOrDo(!ShouldSkip("ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 18: { + LogStep(18, "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + VerifyOrDo(!ShouldSkip("ACL.S.E01 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 1; return ReadEvent(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlExtensionChanged::Id, false, chip::NullOptional); } - case 16: { - LogStep(16, "TH1 writes Extension attribute value as empty list"); + case 19: { + LogStep(19, "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 20: { + LogStep(20, "TH1 writes Extension attribute value as empty list"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6125,9 +6168,9 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 17: { - LogStep(17, "TH2 writes Extension attribute value as empty list"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 21: { + LogStep(21, "TH2 writes Extension attribute value as empty list"); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6135,6 +6178,16 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } + case 22: { + LogStep(22, "TH2 writes Extension attribute value as empty list"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -6143,7 +6196,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand class Test_TC_ACL_2_8Suite : public TestCommand { public: - Test_TC_ACL_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_8", 18, credsIssuerConfig) + Test_TC_ACL_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_8", 23, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -6250,11 +6303,19 @@ class Test_TC_ACL_2_8Suite : public TestCommand break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6284,7 +6345,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand } } break; - case 13: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6314,7 +6375,11 @@ class Test_TC_ACL_2_8Suite : public TestCommand } } break; - case 14: + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: switch (mTestSubStepIndex) { case 0: @@ -6428,7 +6493,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand break; } break; - case 15: + case 18: switch (mTestSubStepIndex) { case 0: @@ -6542,12 +6607,20 @@ class Test_TC_ACL_2_8Suite : public TestCommand break; } break; - case 16: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 17: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -6642,17 +6715,29 @@ class Test_TC_ACL_2_8Suite : public TestCommand } case 8: { LogStep(8, "Read the TH2 commissioner node ID"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; return GetCommissionerNodeId(kIdentityBeta, value); } case 9: { LogStep(9, "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + LogStep(10, "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6684,9 +6769,9 @@ class Test_TC_ACL_2_8Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 11: { - LogStep(11, "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 12: { + LogStep(12, "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6717,52 +6802,136 @@ class Test_TC_ACL_2_8Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 12: { - LogStep(12, "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 13: { + LogStep(13, "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 15: { + LogStep(15, "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + case 16: { + LogStep(16, "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 3; return ReadEvent(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlEntryChanged::Id, false, chip::NullOptional); } - case 15: { - LogStep(15, "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); - VerifyOrDo(!ShouldSkip("ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 18: { + LogStep(18, "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + VerifyOrDo(!ShouldSkip("ACL.S.E00 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 3; return ReadEvent(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlEntryChanged::Id, false, chip::NullOptional); } - case 16: { - LogStep(16, "TH1 writes ACL attribute value is an empty list"); + case 19: { + LogStep(19, "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 20: { + LogStep(20, "TH1 writes ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; - value = chip::app::DataModel::List(); + { + auto * listHolder_0 = + new ListHolder(1); + listFreer.add(listHolder_0); + + listHolder_0->mList[0].privilege = + static_cast(5); + listHolder_0->mList[0].authMode = + static_cast(2); + listHolder_0->mList[0].subjects.SetNonNull(); + + { + auto * listHolder_3 = new ListHolder(1); + listFreer.add(listHolder_3); + listHolder_3->mList[0] = TH1CommissionerNodeId; + listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); + } + listHolder_0->mList[0].targets.SetNull(); + listHolder_0->mList[0].fabricIndex = 1U; + + value = chip::app::DataModel::List( + listHolder_0->mList, 1); + } return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 17: { - LogStep(17, "TH2 writes ACL attribute value is an empty list"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 21: { + LogStep(21, "TH2 writes ACL attribute default value"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; - value = chip::app::DataModel::List(); + { + auto * listHolder_0 = + new ListHolder(1); + listFreer.add(listHolder_0); + + listHolder_0->mList[0].privilege = + static_cast(5); + listHolder_0->mList[0].authMode = + static_cast(2); + listHolder_0->mList[0].subjects.SetNonNull(); + + { + auto * listHolder_3 = new ListHolder(1); + listFreer.add(listHolder_3); + listHolder_3->mList[0] = TH2CommissionerNodeId; + listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); + } + listHolder_0->mList[0].targets.SetNull(); + listHolder_0->mList[0].fabricIndex = 1U; + + value = chip::app::DataModel::List( + listHolder_0->mList, 1); + } return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } + case 22: { + LogStep(22, "TH2 writes ACL attribute default value"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -7080,7 +7249,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand class Test_TC_ACL_2_10Suite : public TestCommand { public: - Test_TC_ACL_2_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_10", 31, credsIssuerConfig) + Test_TC_ACL_2_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_10", 35, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -7191,6 +7360,7 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -7200,14 +7370,13 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -7219,8 +7388,20 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -7238,7 +7419,7 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 20: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -7282,30 +7463,36 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 21: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 22: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; - case 23: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 24: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 25: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); } break; - case 26: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; - case 27: + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -7323,14 +7510,14 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 28: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 30: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; default: @@ -7427,17 +7614,29 @@ class Test_TC_ACL_2_10Suite : public TestCommand } case 8: { LogStep(8, "Read the TH2 commissioner node ID"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; return GetCommissionerNodeId(kIdentityBeta, value); } case 9: { LogStep(9, "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 5:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + LogStep(10, "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "Step 5:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7484,9 +7683,9 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 11: { - LogStep(11, "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 12: { + LogStep(12, "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7532,8 +7731,18 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 12: { - LogStep(12, + case 13: { + LogStep(13, "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "Step 7:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_EMPTY"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -7555,11 +7764,11 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 13: { - LogStep(13, + case 15: { + LogStep(15, "Step 8:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_SINGLE"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7584,15 +7793,27 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 14: { - LogStep(14, "Step 9: Reboot DUT"); + case 16: { + LogStep(16, + "Step 8:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " + "AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_SINGLE"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "Step 9: Reboot DUT"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::SystemCommands::Commands::Reboot::Type value; return Reboot(kIdentityAlpha, value); } - case 15: { - LogStep(15, "Step 9: Reboot DUT"); + case 18: { + LogStep(18, "Step 9: Reboot DUT"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -7602,24 +7823,24 @@ class Test_TC_ACL_2_10Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 16: { - LogStep(16, "TH1 Connects to the device again"); + case 19: { + LogStep(19, "TH1 Connects to the device again"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; return WaitForCommissionee(kIdentityAlpha, value); } - case 17: { - LogStep(17, "TH2 Connects to the device again"); + case 20: { + LogStep(20, "TH2 Connects to the device again"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; return WaitForCommissionee(kIdentityBeta, value); } - case 18: { - LogStep(18, "Step 10:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 21: { + LogStep(21, "Step 10:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7666,23 +7887,33 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 19: { - LogStep(19, + case 22: { + LogStep(22, "Step 11:TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 23: { + LogStep(23, "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 24: { + LogStep(24, "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 25: { + LogStep(25, "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); + VerifyOrDo(!ShouldSkip("ACL.S.A0001 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7707,9 +7938,9 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 22: { - LogStep(22, "Step 14: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); - VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 26: { + LogStep(26, "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); @@ -7717,29 +7948,19 @@ class Test_TC_ACL_2_10Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 23: { - LogStep(23, "TH2 writes Extension attibute value as empty list"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::DataModel::List value; - - value = chip::app::DataModel::List(); - return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, - chip::NullOptional, chip::NullOptional); - } - case 24: { - LogStep(24, "TH2 writes ACL attribute value is an empty list"); - VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 27: { + LogStep(27, "Step 14: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::DataModel::List value; - - value = chip::app::DataModel::List(); - return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, - chip::NullOptional, chip::NullOptional); + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } - case 25: { - LogStep(25, "Step 15:TH1 removes fabric F2 from DUT"); - VerifyOrDo(!ShouldSkip("OPCREDS.S.C0a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 28: { + LogStep(28, "Step 15:TH1 removes fabric F2 from DUT"); + VerifyOrDo(!ShouldSkip("OPCREDS.S.C0a.Rsp && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type value; value.fabricIndex = TH2FabricIndex; @@ -7749,8 +7970,18 @@ class Test_TC_ACL_2_10Suite : public TestCommand ); } - case 26: { - LogStep(26, "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 29: { + LogStep(29, "Step 15:TH1 removes fabric F2 from DUT"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && OPCREDS.S.C0a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7797,16 +8028,16 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 27: { - LogStep(27, + case 31: { + LogStep(31, "Step 17:TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "Step 18: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); + case 32: { + LogStep(32, "Step 18: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -7815,8 +8046,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "TH1 writes Extension attribute value as empty list"); + case 33: { + LogStep(33, "TH1 writes Extension attribute value as empty list"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7825,8 +8056,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 30: { - LogStep(30, "TH1 writes ACL attribute value is an empty list"); + case 34: { + LogStep(34, "TH1 writes ACL attribute value is an empty list"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -11111,7 +11342,7 @@ class Test_TC_BIND_1_1Suite : public TestCommand class Test_TC_CC_1_1Suite : public TestCommand { public: - Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 48, credsIssuerConfig) + Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 78, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -11307,7 +11538,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; case 18: @@ -11316,7 +11547,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16386UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; case 19: @@ -11325,7 +11556,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; case 20: @@ -11334,7 +11565,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16388UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; case 21: @@ -11343,7 +11574,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16389UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); } break; case 22: @@ -11352,7 +11583,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16390UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); } break; case 23: @@ -11361,7 +11592,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16395UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); } break; case 24: @@ -11370,7 +11601,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16396UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); } break; case 25: @@ -11379,7 +11610,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16397UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); } break; case 26: @@ -11388,10 +11619,280 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16400UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 27UL)); } break; case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 32UL)); + } + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 33UL)); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 34UL)); + } + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 36UL)); + } + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 37UL)); + } + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 38UL)); + } + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); + } + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); + } + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); + } + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 48UL)); + } + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 49UL)); + } + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 50UL)); + } + break; + case 39: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 51UL)); + } + break; + case 40: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 52UL)); + } + break; + case 41: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 54UL)); + } + break; + case 42: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 55UL)); + } + break; + case 43: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 56UL)); + } + break; + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 58UL)); + } + break; + case 45: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 59UL)); + } + break; + case 46: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 60UL)); + } + break; + case 47: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); + } + break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16386UL)); + } + break; + case 49: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); + } + break; + case 50: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16388UL)); + } + break; + case 51: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16389UL)); + } + break; + case 52: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16390UL)); + } + break; + case 53: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16395UL)); + } + break; + case 54: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16396UL)); + } + break; + case 55: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16397UL)); + } + break; + case 56: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16400UL)); + } + break; + case 57: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11403,7 +11904,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 58: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11412,7 +11913,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 29: + case 59: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11421,7 +11922,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 30: + case 60: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11430,7 +11931,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 31: + case 61: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11439,7 +11940,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 32: + case 62: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11448,7 +11949,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 33: + case 63: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11457,7 +11958,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 34: + case 64: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11466,7 +11967,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 35: + case 65: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11475,7 +11976,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 36: + case 66: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11484,7 +11985,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 37: + case 67: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11493,7 +11994,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; - case 38: + case 68: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11502,7 +12003,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 39: + case 69: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11511,7 +12012,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 64UL)); } break; - case 40: + case 70: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11520,7 +12021,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65UL)); } break; - case 41: + case 71: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11529,7 +12030,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 66UL)); } break; - case 42: + case 72: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11538,7 +12039,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 67UL)); } break; - case 43: + case 73: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11547,7 +12048,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 68UL)); } break; - case 44: + case 74: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11556,7 +12057,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 71UL)); } break; - case 45: + case 75: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11565,7 +12066,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 75UL)); } break; - case 46: + case 76: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11574,7 +12075,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 76UL)); } break; - case 47: + case 77: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -11704,186 +12205,366 @@ class Test_TC_CC_1_1Suite : public TestCommand true, chip::NullOptional); } case 17: { - LogStep(17, "Read the optional attribute(EnhancedCurrentHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "Read the optional attribute(NumberOfPrimaries) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Read the optional attribute(ColorLoopActive) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Read the optional attribute(Primary1X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 19: { - LogStep(19, "Read the optional attribute(ColorLoopDirection) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(19, "Read the optional attribute(Primary1Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 20: { - LogStep(20, "Read the optional attribute(ColorLoopTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(20, "Read the optional attribute(Primary1Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 21: { - LogStep(21, "Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(21, "Read the optional attribute(Primary2X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 22: { - LogStep(22, "Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(22, "Read the optional attribute(Primary2Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 23: { - LogStep(23, "Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(23, "Read the optional attribute(Primary2Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 24: { - LogStep(24, "Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(24, "Read the optional attribute(Primary3X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 25: { - LogStep(25, "Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(25, "Read the optional attribute(Primary3Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 26: { - LogStep(26, "Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(26, "Read the optional attribute(Primary3Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 27: { - LogStep(27, "Read the global attribute: EventList"); + LogStep(27, "Read the optional attribute(Primary4X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 28: { + LogStep(28, "Read the optional attribute(Primary4Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 29: { + LogStep(29, "Read the optional attribute(Primary4Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 30: { + LogStep(30, "Read the optional attribute(Primary5X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 31: { + LogStep(31, "Read the optional attribute(Primary5Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 32: { + LogStep(32, "Read the optional attribute(Primary5Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 33: { + LogStep(33, "Read the optional attribute(Primary6X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 34: { + LogStep(34, "Read the optional attribute(Primary6Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 35: { + LogStep(35, "Read the optional attribute(Primary6Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 36: { + LogStep(36, "Read the optional attribute(WhitePointX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 37: { + LogStep(37, "Read the optional attribute(WhitePointY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 38: { + LogStep(38, "Read the optional attribute(ColorPointRX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 39: { + LogStep(39, "Read the optional attribute(ColorPointRY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 40: { + LogStep(40, "Read the optional attribute(ColorPointRIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 41: { + LogStep(41, "Read the optional attribute(ColorPointGX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 42: { + LogStep(42, "Read the optional attribute(ColorPointGY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 43: { + LogStep(43, "Read the optional attribute(ColorPointGIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0038"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 44: { + LogStep(44, "Read the optional attribute(ColorPointBX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 45: { + LogStep(45, "Read the optional attribute(ColorPointBY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 46: { + LogStep(46, "Read the optional attribute(ColorPointBIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 47: { + LogStep(47, "Read the optional attribute(EnhancedCurrentHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 48: { + LogStep(48, "Read the optional attribute(ColorLoopActive) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 49: { + LogStep(49, "Read the optional attribute(ColorLoopDirection) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 50: { + LogStep(50, "Read the optional attribute(ColorLoopTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 51: { + LogStep(51, "Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 52: { + LogStep(52, "Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 53: { + LogStep(53, "Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 54: { + LogStep(54, "Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 55: { + LogStep(55, "Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 56: { + LogStep(56, "Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 57: { + LogStep(57, "Read the global attribute: EventList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EventList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "Read the optional command(MoveToHue) in AcceptedCommandList"); + case 58: { + LogStep(58, "Read the optional command(MoveToHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 29: { - LogStep(29, "Read the optional command(MoveHue) in AcceptedCommandList"); + case 59: { + LogStep(59, "Read the optional command(MoveHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, "Read the optional command(StepHue) in AcceptedCommandList"); + case 60: { + LogStep(60, "Read the optional command(StepHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 31: { - LogStep(31, "Read the optional command(MoveToSaturation) in AcceptedCommandList"); + case 61: { + LogStep(61, "Read the optional command(MoveToSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, "Read the optional command(MoveSaturation) in AcceptedCommandList"); + case 62: { + LogStep(62, "Read the optional command(MoveSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 33: { - LogStep(33, "Read the optional command(StepSaturation) in AcceptedCommandList"); + case 63: { + LogStep(63, "Read the optional command(StepSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 34: { - LogStep(34, "Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList"); + case 64: { + LogStep(64, "Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 35: { - LogStep(35, "Read the optional command(MoveToColor) in AcceptedCommandList"); + case 65: { + LogStep(65, "Read the optional command(MoveToColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 36: { - LogStep(36, "Read the optional command(MoveColor) in AcceptedCommandList"); + case 66: { + LogStep(66, "Read the optional command(MoveColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 37: { - LogStep(37, "Read the optional command(StepColor) in AcceptedCommandList"); + case 67: { + LogStep(67, "Read the optional command(StepColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C09.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 38: { - LogStep(38, "Read the optional command(MoveToColorTemperature) in AcceptedCommandList"); + case 68: { + LogStep(68, "Read the optional command(MoveToColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C0a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 39: { - LogStep(39, "Read the optional command(EnhancedMoveToHue) in AcceptedCommandList"); + case 69: { + LogStep(69, "Read the optional command(EnhancedMoveToHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 40: { - LogStep(40, "Read the optional command(EnhancedMoveHue) in AcceptedCommandList"); + case 70: { + LogStep(70, "Read the optional command(EnhancedMoveHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 41: { - LogStep(41, "Read the optional command(EnhancedStepHue) in AcceptedCommandList"); + case 71: { + LogStep(71, "Read the optional command(EnhancedStepHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C42.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 42: { - LogStep(42, "Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList"); + case 72: { + LogStep(72, "Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C43.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 43: { - LogStep(43, "Read the optional command(ColorLoopSet) in AcceptedCommandList"); + case 73: { + LogStep(73, "Read the optional command(ColorLoopSet) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 44: { - LogStep(44, "Read the optional command(StopMoveStep) in AcceptedCommandList"); + case 74: { + LogStep(74, "Read the optional command(StopMoveStep) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 45: { - LogStep(45, "Read the optional command(MoveColorTemperature) in AcceptedCommandList"); + case 75: { + LogStep(75, "Read the optional command(MoveColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C4b.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 46: { - LogStep(46, "Read the optional command(StepColorTemperature) in AcceptedCommandList"); + case 76: { + LogStep(76, "Read the optional command(StepColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C4c.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 47: { - LogStep(47, "Read the global attribute: GeneratedCommandList"); + case 77: { + LogStep(77, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -24727,6 +25408,10 @@ class Test_TC_DGETH_1_1Suite : public TestCommand shouldContinue = true; break; case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24735,7 +25420,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24747,10 +25432,6 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; @@ -24883,21 +25564,36 @@ class Test_TC_DGETH_1_1Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 16: { - LogStep(16, "TH reads AcceptedCommandList from DUT"); + LogStep(16, + "TH reads EventList attribute from DUT. 1.The list MAY contain values in the Manufacturer Extensible " + "Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), " + "these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid range: " + "(0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the " + "allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DGETH.S.Afffa"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip("( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "TH reads AcceptedCommandList from DUT"); + case 18: { + LogStep(18, "TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip("DGETH.S.Afff9 && !DGETH.S.F00 && !DGETH.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " @@ -24912,8 +25608,8 @@ class Test_TC_DGETH_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -24927,21 +25623,6 @@ class Test_TC_DGETH_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 20: { - LogStep(20, - "TH reads EventList attribute from DUT. 1.The list MAY contain values in the Manufacturer Extensible " - "Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), " - "these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid range: " - "(0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the " - "allowed MEI range (0x0001 - 0xFFF1)"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DGETH.S.Afffa"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } } return CHIP_NO_ERROR; } @@ -32728,26 +33409,26 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !KEYPADINPUT.S.NV && KEYPADINPUT.S.LK && !KEYPADINPUT.S.NK "), + VerifyOrDo(!ShouldSkip(" !KEYPADINPUT.S.F00 && KEYPADINPUT.S.F01 && !KEYPADINPUT.S.F02 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.NV"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given (KEYPADINPUT.S.F00(NV)) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.LK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Given (KEYPADINPUT.S.F01(LK)) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Given (KEYPADINPUT.S.F02(NK)) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -32937,13 +33618,13 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.AP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !APPLAUNCHER.S.AP "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !APPLAUNCHER.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -33149,13 +33830,13 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !MEDIAINPUT.S.NU "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !MEDIAINPUT.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given MEDIAINPUT.S.NU ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.NU"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given MEDIAINPUT.S.F00(NU) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -33584,19 +34265,19 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("( !CHANNEL.S.CL && !CHANNEL.S.LI )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given CHANNEL.S.CL ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.CL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given CCHANNEL.S.F00(CL) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Given CHANNEL.S.LI ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.LI"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Given CHANNEL.S.F01(LI) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -33643,13 +34324,13 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand } case 12: { LogStep(12, "Read the global attribute: GeneratedCommandList"); - VerifyOrDo(!ShouldSkip("( !CHANNEL.S.CL && !CHANNEL.S.LI )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 13: { LogStep(13, "Read the global attribute: GeneratedCommandList"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CHANNEL.S.F00 || CHANNEL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -33942,19 +34623,20 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !MEDIAPLAYBACK.S.AS && !MEDIAPLAYBACK.S.VS "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !MEDIAPLAYBACK.S.F00 && !MEDIAPLAYBACK.S.F01 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.AS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given MEDIAPLAYBACK.S.F00(AS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.VS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Given MEDIAPLAYBACK.S.F01(VS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -34071,7 +34753,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand { public: Test_TC_AUDIOOUTPUT_1_8Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_AUDIOOUTPUT_1_8", 7, credsIssuerConfig) + TestCommand("Test_TC_AUDIOOUTPUT_1_8", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -34123,11 +34805,19 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 3UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); } break; case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 2UL)); + } + break; + case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34143,7 +34833,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 4: + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34152,7 +34842,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34164,7 +34854,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34205,26 +34895,33 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); + VerifyOrDo(!ShouldSkip("AUDIOOUTPUT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AttributeList::Id, true, + LogStep(3, "Read the global attribute: FeatureMap"); + VerifyOrDo(!ShouldSkip(" !AUDIOOUTPUT.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AcceptedCommandList"); + LogStep(4, "Read the global attribute: AttributeList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Read the global attribute: GeneratedCommandList"); + case 6: { + LogStep(6, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Read the global attribute: EventList"); + case 7: { + LogStep(7, "Read the global attribute: EventList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::EventList::Id, true, chip::NullOptional); } @@ -34408,61 +35105,6 @@ class Test_TC_TGTNAV_1_9Suite : public TestCommand } }; -class Test_TC_TGTNAV_8_2Suite : public TestCommand -{ -public: - Test_TC_TGTNAV_8_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TGTNAV_8_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_TGTNAV_8_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_APBSC_1_10Suite : public TestCommand { public: @@ -34855,20 +35497,20 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("( !CONTENTLAUNCHER.S.CS && !CONTENTLAUNCHER.S.UP )"), + VerifyOrDo(!ShouldSkip("( !CONTENTLAUNCHER.S.F00 && !CONTENTLAUNCHER.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.CS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given CONTENTLAUNCHER.S.F00 (CS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.UP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Given CONTENTLAUNCHER.S.F01(UP) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -35240,7 +35882,7 @@ class Test_TC_KEYPADINPUT_3_2Suite : public TestCommand } case 1: { LogStep(1, "TH sends CEC Settings Keys(0x0A) to DUT"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(10); @@ -35251,7 +35893,7 @@ class Test_TC_KEYPADINPUT_3_2Suite : public TestCommand } case 2: { LogStep(2, "TH sends CEC Home Keys(0x09) to DUT"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(9); @@ -35402,7 +36044,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 1: { LogStep(1, "Send Numbers1"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(33); @@ -35413,7 +36055,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 2: { LogStep(2, "Send Numbers2"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(34); @@ -35424,7 +36066,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 3: { LogStep(3, "Send Numbers3"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(35); @@ -35435,7 +36077,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 4: { LogStep(4, "Send Numbers4"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(36); @@ -35446,7 +36088,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 5: { LogStep(5, "Send Numbers5"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(37); @@ -35457,7 +36099,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 6: { LogStep(6, "Send Numbers6"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(38); @@ -35468,7 +36110,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 7: { LogStep(7, "Send Numbers7"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(39); @@ -35479,7 +36121,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 8: { LogStep(8, "Send Numbers8"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(40); @@ -35490,7 +36132,7 @@ class Test_TC_KEYPADINPUT_3_3Suite : public TestCommand } case 9: { LogStep(9, "Send Numbers9"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::KeypadInput::Commands::SendKey::Type value; value.keyCode = static_cast(41); @@ -38994,7 +39636,7 @@ class Test_TC_ALOGIN_12_1Suite : public TestCommand class Test_TC_MOD_1_1Suite : public TestCommand { public: - Test_TC_MOD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_1_1", 9, credsIssuerConfig) + Test_TC_MOD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_1_1", 10, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -39095,6 +39737,18 @@ class Test_TC_MOD_1_1Suite : public TestCommand } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39103,7 +39757,7 @@ class Test_TC_MOD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39172,12 +39826,17 @@ class Test_TC_MOD_1_1Suite : public TestCommand chip::NullOptional); } case 7: { - LogStep(7, "Read the global attribute: AcceptedCommandList"); + LogStep(7, "Read the global attribute: EventList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Read the global attribute: GeneratedCommandList"); + case 9: { + LogStep(9, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -45534,17 +46193,23 @@ class Test_TC_SC_5_1Suite : public TestCommand static_cast(0); value.groupKeySet.epochKey0.SetNonNull(); value.groupKeySet.epochKey0.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0x00000000000000000000000000000001garbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01garbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime0.SetNonNull(); value.groupKeySet.epochStartTime0.Value() = 111ULL; value.groupKeySet.epochKey1.SetNonNull(); value.groupKeySet.epochKey1.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0x00000000000000000000000000000002garbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02garbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime1.SetNonNull(); value.groupKeySet.epochStartTime1.Value() = 222ULL; value.groupKeySet.epochKey2.SetNonNull(); value.groupKeySet.epochKey2.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0x00000000000000000000000000000003garbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03garbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 333ULL; @@ -45574,17 +46239,23 @@ class Test_TC_SC_5_1Suite : public TestCommand static_cast(0); value.groupKeySet.epochKey0.SetNonNull(); value.groupKeySet.epochKey0.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0xd0d1d2d3d4d5d6d7d8d9dadbdcdddedfgarbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime0.SetNonNull(); value.groupKeySet.epochStartTime0.Value() = 2220000ULL; value.groupKeySet.epochKey1.SetNonNull(); value.groupKeySet.epochKey1.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0xd1d1d2d3d4d5d6d7d8d9dadbdcdddedfgarbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\xd1\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime1.SetNonNull(); value.groupKeySet.epochStartTime1.Value() = 2220001ULL; value.groupKeySet.epochKey2.SetNonNull(); value.groupKeySet.epochKey2.Value() = chip::ByteSpan( - chip::Uint8::from_const_char("0xd2d1d2d3d4d5d6d7d8d9dadbdcdddedfgarbage: not in length on purpose"), 34); + chip::Uint8::from_const_char( + "\xd2\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"), + 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2220002ULL; @@ -47554,7 +48225,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand class Test_TC_TSTAT_2_1Suite : public TestCommand { public: - Test_TC_TSTAT_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_2_1", 68, credsIssuerConfig) + Test_TC_TSTAT_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_2_1", 70, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -47580,6 +48251,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand int16_t AbsMaxCoolSetpointLimitStep6; int16_t MinCoolSetpointLimit; int16_t MaxCoolSetpointLimit; + int16_t MaxHeatSetpointLimit; int16_t OccupiedCoolingSetpoint; int16_t AbsMinHeat; int16_t AbsMaxHeat; @@ -47646,7 +48318,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand { int16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - OccupiedCoolingSetpoint = value; + MaxHeatSetpointLimit = value; } break; case 7: @@ -47654,7 +48326,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand { int16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - AbsMinHeat = value; + OccupiedCoolingSetpoint = value; } break; case 8: @@ -47662,7 +48334,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand { int16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - AbsMaxHeat = value; + AbsMinHeat = value; } break; case 9: @@ -47670,10 +48342,18 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand { int16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - UnoccupiedCoolingSetpoint = value; + AbsMaxHeat = value; } break; case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + int16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + UnoccupiedCoolingSetpoint = value; + } + break; + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -47683,7 +48363,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -47693,7 +48373,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47703,7 +48383,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 1U)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47712,7 +48392,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, AbsMinCoolSetpointLimitStep5 - MinSetpointDeadBand)); } break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47721,7 +48401,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 1575)); } break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47731,7 +48411,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47741,7 +48421,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47751,7 +48431,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 18: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47761,7 +48441,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47771,7 +48451,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47781,7 +48461,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47791,7 +48471,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 63U)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int8_t value; @@ -47801,7 +48481,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 25)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47811,7 +48491,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxCoolSetpointLimit)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47821,7 +48501,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3200)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47831,7 +48511,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, OccupiedCoolingSetpoint - MinSetpointDeadBand)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47841,7 +48521,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3000)); } break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47851,7 +48531,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, AbsMaxHeat)); } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47861,7 +48541,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3200)); } break; - case 29: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47871,7 +48551,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, UnoccupiedCoolingSetpoint - MinSetpointDeadBand)); } break; - case 30: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47881,7 +48561,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3000)); } break; - case 31: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47891,7 +48571,17 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MinCoolSetpointLimit - MinSetpointDeadBand)); } break; - case 32: + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + int16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); + VerifyOrReturn(CheckConstraintMinValue("value", value, AbsMinHeat)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxHeatSetpointLimit)); + } + break; + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47901,7 +48591,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3000)); } break; - case 33: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47911,7 +48601,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3000)); } break; - case 34: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47921,7 +48611,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxCoolSetpointLimit - MinSetpointDeadBand)); } break; - case 35: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47931,7 +48621,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, MaxCoolSetpointLimit)); } break; - case 36: + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47941,7 +48631,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3200)); } break; - case 37: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -47951,7 +48641,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, AbsMaxCoolSetpointLimitStep6)); } break; - case 38: + case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int8_t value; @@ -47961,7 +48651,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 25)); } break; - case 39: + case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47971,7 +48661,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 7U)); } break; - case 40: + case 42: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::Thermostat::ThermostatControlSequence value; @@ -47981,7 +48671,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 5U)); } break; - case 41: + case 43: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -47991,7 +48681,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9U)); } break; - case 42: + case 44: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48001,7 +48691,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9U)); } break; - case 43: + case 45: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48011,7 +48701,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 6U)); } break; - case 44: + case 46: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48021,7 +48711,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 45: + case 47: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48031,7 +48721,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 46: + case 48: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48041,7 +48731,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 1U)); } break; - case 47: + case 49: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48051,7 +48741,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 1440U)); } break; - case 48: + case 50: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48061,7 +48751,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 7U)); } break; - case 49: + case 51: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -48071,7 +48761,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 127U)); } break; - case 50: + case 52: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48081,7 +48771,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } break; - case 51: + case 53: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48091,7 +48781,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 52: + case 54: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint32_t value; @@ -48099,7 +48789,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "epoch_s", "epoch_s")); } break; - case 53: + case 55: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48109,7 +48799,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 54: + case 56: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48119,7 +48809,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 55: + case 57: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48129,7 +48819,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 56: + case 58: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48139,7 +48829,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 57: + case 59: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48149,7 +48839,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 58: + case 60: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48159,7 +48849,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 59: + case 61: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48169,7 +48859,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U)); } break; - case 60: + case 62: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48179,7 +48869,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 4U)); } break; - case 61: + case 63: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -48189,7 +48879,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); } break; - case 62: + case 64: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48199,7 +48889,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } break; - case 63: + case 65: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48209,7 +48899,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } break; - case 64: + case 66: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint32_t value; @@ -48217,7 +48907,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); } break; - case 65: + case 67: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48227,7 +48917,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 5U)); } break; - case 66: + case 68: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -48237,7 +48927,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); } break; - case 67: + case 69: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -48299,382 +48989,396 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand true, chip::NullOptional); } case 6: { - LogStep(6, "Saving value for comparision in step 13 read attribute OccupiedCoolingSetpoint"); + LogStep(6, "Saving value for comparision in step 17 read MaxHeatSetpointLimit"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "Saving value for comparision in step 13 read attribute OccupiedCoolingSetpoint"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Saving value for comparision in step 15 read attribute AbsMinHeatSetpointLimit"); + case 8: { + LogStep(8, "Saving value for comparision in step 15 read attribute AbsMinHeatSetpointLimit"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Saving value for comparision in step 15 read attribute AbsMaxHeatSetpointLimit"); + case 9: { + LogStep(9, "Saving value for comparision in step 15 read attribute AbsMaxHeatSetpointLimit"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Saving value for comparision in step 16 read UnoccupiedCoolingSetpoint attribute"); + case 10: { + LogStep(10, "Saving value for comparision in step 16 read UnoccupiedCoolingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Reads mandatory attributes from DUT: LocalTemperature"); + case 11: { + LogStep(11, "Reads mandatory attributes from DUT: LocalTemperature"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::LocalTemperature::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "Read OutdoorTemperature attribute from the DUT"); + case 12: { + LogStep(12, "Read OutdoorTemperature attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OutdoorTemperature::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Read Occupancy attribute from the DUT"); + case 13: { + LogStep(13, "Read Occupancy attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::Occupancy::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Read attribute AbsMinHeatSetpointLimit if TSTAT.S.F05 feature is supported"); + case 14: { + LogStep(14, "Read attribute AbsMinHeatSetpointLimit if TSTAT.S.F05 feature is supported"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0003 && TSTAT.S.A0005 && TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Read attribute AbsMinHeatSetpointLimit if TSTAT.S.F05 feature is supported"); + case 15: { + LogStep(15, "Read attribute AbsMinHeatSetpointLimit if TSTAT.S.F05 feature is supported"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0003 && !TSTAT.S.A0005 && TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "Read attribute AbsMinHeatSetpointLimit from DUT"); + case 16: { + LogStep(16, "Read attribute AbsMinHeatSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0003 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "Reads mandatory attributes from DUT: AbsMaxHeatSetpointLimit"); + case 17: { + LogStep(17, "Reads mandatory attributes from DUT: AbsMaxHeatSetpointLimit"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Read attribute AbsMinCoolSetpointLimit from DUT"); + case 18: { + LogStep(18, "Read attribute AbsMinCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMinCoolSetpointLimit::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "Read attribute AbsMaxCoolSetpointLimit from DUT"); + case 19: { + LogStep(19, "Read attribute AbsMaxCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AbsMaxCoolSetpointLimit::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, "Read PICoolingDemand attribute from the DUT"); + case 20: { + LogStep(20, "Read PICoolingDemand attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::PICoolingDemand::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "Read PIHeatingDemand attribute from the DUT"); + case 21: { + LogStep(21, "Read PIHeatingDemand attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::PIHeatingDemand::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "Read HVACSystemTypeConfiguration attribute from the DUT"); + case 22: { + LogStep(22, "Read HVACSystemTypeConfiguration attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::HVACSystemTypeConfiguration::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "Read LocalTemperatureCalibration attribute from the DUT"); + case 23: { + LogStep(23, "Read LocalTemperatureCalibration attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::LocalTemperatureCalibration::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "Read attribute OccupiedCoolingSetpoint from the DUT"); + case 24: { + LogStep(24, "Read attribute OccupiedCoolingSetpoint from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Read attribute OccupiedCoolingSetpoint from the DUT"); + case 25: { + LogStep(25, "Read attribute OccupiedCoolingSetpoint from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Read attribute OccupiedHeatingSetpoint if TSTAT.S.F05 feature is supported"); + case 26: { + LogStep(26, "Read attribute OccupiedHeatingSetpoint if TSTAT.S.F05 feature is supported"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && TSTAT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedHeatingSetpoint::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "Read attribute OccupiedHeatingSetpoint from the DUT"); + case 27: { + LogStep(27, "Read attribute OccupiedHeatingSetpoint from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedHeatingSetpoint::Id, true, chip::NullOptional); } - case 27: { - LogStep(27, "Read UnoccupiedCoolingSetpoint attribute from the DUT"); + case 28: { + LogStep(28, "Read UnoccupiedCoolingSetpoint attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && TSTAT.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "Read UnoccupiedCoolingSetpoint attribute from the DUT"); + case 29: { + LogStep(29, "Read UnoccupiedCoolingSetpoint attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.F02 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, true, chip::NullOptional); } - case 29: { - LogStep(29, "Read UnoccupiedHeatingSetpoint attribute from the DUT"); + case 30: { + LogStep(30, "Read UnoccupiedHeatingSetpoint attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.F02 && TSTAT.S.F05 && TSTAT.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, "Read UnoccupiedHeatingSetpoint attribute from the DUT"); + case 31: { + LogStep(31, "Read UnoccupiedHeatingSetpoint attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.F02 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, true, chip::NullOptional); } - case 31: { - LogStep(31, "Reads attribute from DUT: MinHeatSetpointLimit"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0017"), + case 32: { + LogStep(32, "Reads attribute from DUT: MinHeatSetpointLimit"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0017 && TSTAT.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, "Read attribute MinHeatSetpointLimit from the DUT"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0015 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 33: { + LogStep(33, "Reads MinHeatSetpointLimit attribute from Server DUT and verifies that the value is within range"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0015 && TSTAT.S.A0016 && TSTAT.S.A0003 && !TSTAT.S.F05"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, true, chip::NullOptional); } - case 33: { - LogStep(33, "Read attribute MaxHeatSetpointLimit from the DUT"); + case 34: { + LogStep(34, "Reads MinHeatSetpointLimit attribute from Server DUT and verifies that the value is within range"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0003 && !TSTAT.S.A0015 && !TSTAT.S.A0016 && !TSTAT.S.F05"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, + true, chip::NullOptional); + } + case 35: { + LogStep(35, "Read attribute MaxHeatSetpointLimit from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0016 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, true, chip::NullOptional); } - case 34: { - LogStep(34, "Reads attribute from DUT: MaxHeatSetpointLimit"); + case 36: { + LogStep(36, "Reads attribute from DUT: MaxHeatSetpointLimit"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0016 && TSTAT.S.F05 && TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, true, chip::NullOptional); } - case 35: { - LogStep(35, "Read attribute MinCoolSetpointLimit from DUT"); + case 37: { + LogStep(37, "Read attribute MinCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0017 && TSTAT.S.A0018 && TSTAT.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, true, chip::NullOptional); } - case 36: { - LogStep(36, "Read attribute MinCoolSetpointLimit from DUT"); + case 38: { + LogStep(38, "Read attribute MinCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0017 && !TSTAT.S.A0018 && !TSTAT.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, true, chip::NullOptional); } - case 37: { - LogStep(37, "Read attribute MaxCoolSetpointLimit from DUT"); + case 39: { + LogStep(39, "Read attribute MaxCoolSetpointLimit from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0018 && TSTAT.S.A0006 && TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, true, chip::NullOptional); } - case 38: { - LogStep(38, "Read attribute MinSetpointDeadBand from DUT"); + case 40: { + LogStep(40, "Read attribute MinSetpointDeadBand from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinSetpointDeadBand::Id, true, chip::NullOptional); } - case 39: { - LogStep(39, "Read RemoteSensing attribute from the DUT"); + case 41: { + LogStep(41, "Read RemoteSensing attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::RemoteSensing::Id, true, chip::NullOptional); } - case 40: { - LogStep(40, "Read attribute ControlSequenceOfOperation from DUT"); + case 42: { + LogStep(42, "Read attribute ControlSequenceOfOperation from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ControlSequenceOfOperation::Id, true, chip::NullOptional); } - case 41: { - LogStep(41, "Read attribute SystemMode from DUT"); + case 43: { + LogStep(43, "Read attribute SystemMode from DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A001c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SystemMode::Id, true, chip::NullOptional); } - case 42: { - LogStep(42, "Read ThermostatRunningMode attribute from the DUT"); + case 44: { + LogStep(44, "Read ThermostatRunningMode attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ThermostatRunningMode::Id, true, chip::NullOptional); } - case 43: { - LogStep(43, "Reads constraints of optional attributes from DUT: StartOfWeek"); + case 45: { + LogStep(45, "Reads constraints of optional attributes from DUT: StartOfWeek"); VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::StartOfWeek::Id, true, chip::NullOptional); } - case 44: { - LogStep(44, "Reads optional attributes from DUT: NumberOfWeeklyTransitions"); + case 46: { + LogStep(46, "Reads optional attributes from DUT: NumberOfWeeklyTransitions"); VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::NumberOfWeeklyTransitions::Id, true, chip::NullOptional); } - case 45: { - LogStep(45, "Reads optional attributes from DUT: NumberOfDailyTransitions"); + case 47: { + LogStep(47, "Reads optional attributes from DUT: NumberOfDailyTransitions"); VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::NumberOfDailyTransitions::Id, true, chip::NullOptional); } - case 46: { - LogStep(46, "Read TemperatureSetpointHold attribute from the DUT"); + case 48: { + LogStep(48, "Read TemperatureSetpointHold attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::TemperatureSetpointHold::Id, true, chip::NullOptional); } - case 47: { - LogStep(47, "Read TemperatureSetpointHoldDuration attribute from the DUT"); + case 49: { + LogStep(49, "Read TemperatureSetpointHoldDuration attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::TemperatureSetpointHoldDuration::Id, true, chip::NullOptional); } - case 48: { - LogStep(48, "Read ThermostatProgrammingOperationMode attribute from the DUT"); + case 50: { + LogStep(50, "Read ThermostatProgrammingOperationMode attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ThermostatProgrammingOperationMode::Id, true, chip::NullOptional); } - case 49: { - LogStep(49, "Read ThermostatRunningState attribute from the DUT"); + case 51: { + LogStep(51, "Read ThermostatRunningState attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ThermostatRunningState::Id, true, chip::NullOptional); } - case 50: { - LogStep(50, "Read SetpointChangeSource attribute from the DUT"); + case 52: { + LogStep(52, "Read SetpointChangeSource attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SetpointChangeSource::Id, true, chip::NullOptional); } - case 51: { - LogStep(51, "Read SetpointChangeAmount attribute from the DUT"); + case 53: { + LogStep(53, "Read SetpointChangeAmount attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SetpointChangeAmount::Id, true, chip::NullOptional); } - case 52: { - LogStep(52, "Read SetpointChangeSourceTimestamp attribute from the DUT"); + case 54: { + LogStep(54, "Read SetpointChangeSourceTimestamp attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::SetpointChangeSourceTimestamp::Id, true, chip::NullOptional); } - case 53: { - LogStep(53, "Read OccupiedSetback attribute from the DUT"); + case 55: { + LogStep(55, "Read OccupiedSetback attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedSetback::Id, true, chip::NullOptional); } - case 54: { - LogStep(54, "Read OccupiedSetbackMin attribute from the DUT"); + case 56: { + LogStep(56, "Read OccupiedSetbackMin attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedSetbackMin::Id, true, chip::NullOptional); } - case 55: { - LogStep(55, "Read OccupiedSetbackMax attribute from the DUT"); + case 57: { + LogStep(57, "Read OccupiedSetbackMax attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedSetbackMax::Id, true, chip::NullOptional); } - case 56: { - LogStep(56, "Read UnoccupiedSetback attribute from the DUT"); + case 58: { + LogStep(58, "Read UnoccupiedSetback attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedSetback::Id, true, chip::NullOptional); } - case 57: { - LogStep(57, "Read UnoccupiedSetbackMin attribute from the DUT"); + case 59: { + LogStep(59, "Read UnoccupiedSetbackMin attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedSetbackMin::Id, true, chip::NullOptional); } - case 58: { - LogStep(58, "Read UnoccupiedSetbackMax attribute from the DUT"); + case 60: { + LogStep(60, "Read UnoccupiedSetbackMax attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedSetbackMax::Id, true, chip::NullOptional); } - case 59: { - LogStep(59, "Read EmergencyHeatDelta attribute from the DUT"); + case 61: { + LogStep(61, "Read EmergencyHeatDelta attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::EmergencyHeatDelta::Id, true, chip::NullOptional); } - case 60: { - LogStep(60, "Read ACType attribute from the DUT"); + case 62: { + LogStep(62, "Read ACType attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0040"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACType::Id, true, chip::NullOptional); } - case 61: { - LogStep(61, "Read ACCapacity attribute from the DUT"); + case 63: { + LogStep(63, "Read ACCapacity attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0041"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACCapacity::Id, true, chip::NullOptional); } - case 62: { - LogStep(62, "Read ACRefrigerantType attribute from the DUT"); + case 64: { + LogStep(64, "Read ACRefrigerantType attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0042"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACRefrigerantType::Id, true, chip::NullOptional); } - case 63: { - LogStep(63, "Read ACCompressorType attribute from the DUT"); + case 65: { + LogStep(65, "Read ACCompressorType attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0043"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACCompressorType::Id, true, chip::NullOptional); } - case 64: { - LogStep(64, "Read ACErrorCode attribute from the DUT"); + case 66: { + LogStep(66, "Read ACErrorCode attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0044"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACErrorCode::Id, true, chip::NullOptional); } - case 65: { - LogStep(65, "Read ACLouverPosition attribute from the DUT"); + case 67: { + LogStep(67, "Read ACLouverPosition attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0045"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACLouverPosition::Id, true, chip::NullOptional); } - case 66: { - LogStep(66, "Read ACCoilTemperature attribute from the DUT"); + case 68: { + LogStep(68, "Read ACCoilTemperature attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0046"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACCoilTemperature::Id, true, chip::NullOptional); } - case 67: { - LogStep(67, "Read ACCapacityFormat attribute from the DUT"); + case 69: { + LogStep(69, "Read ACCapacityFormat attribute from the DUT"); VerifyOrDo(!ShouldSkip("TSTAT.S.A0047"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::ACCapacityformat::Id, true, chip::NullOptional); @@ -49387,7 +50091,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand { chip::app::Clusters::Thermostat::ThermostatControlSequence value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("controlSequenceOfOperation", value, 4U)); VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 5U)); @@ -49767,7 +50470,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 600; + value = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); @@ -49902,7 +50605,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1002; + value = 500; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); @@ -50041,7 +50744,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 500; + value = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); @@ -50328,7 +51031,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 500; + value = 100; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } @@ -50451,7 +51154,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1000; + value = 500; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } @@ -50574,7 +51277,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1000; + value = 500; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } @@ -56488,7 +57191,7 @@ class Test_TC_WNCV_2_5Suite : public TestCommand class Test_TC_WNCV_3_1Suite : public TestCommand { public: - Test_TC_WNCV_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_1", 29, credsIssuerConfig) + Test_TC_WNCV_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_1", 30, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -56664,6 +57367,10 @@ class Test_TC_WNCV_3_1Suite : public TestCommand shouldContinue = true; break; case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56673,7 +57380,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56683,7 +57390,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 99U)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56693,7 +57400,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56703,14 +57410,14 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 99U)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::BitMask value; @@ -56718,11 +57425,11 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckValue("operationalStatus", value, 0U)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56732,7 +57439,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -56849,67 +57556,81 @@ class Test_TC_WNCV_3_1Suite : public TestCommand } case 13: { LogStep(13, "3a: TH reads OperationalStatus attribute's bit 0..1"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 14: { LogStep(14, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 15: { LogStep(15, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 16: { LogStep(16, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 17: { LogStep(17, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "3a2: DUT updates its attributes"); + LogStep(18, "3a: TH reads OperationalStatus attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 19: { + LogStep(19, "3a2: DUT updates its attributes"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 19: { - LogStep(19, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); + case 20: { + LogStep(20, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); + case 21: { + LogStep(21, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); + case 22: { + LogStep(22, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); + case 23: { + LogStep(23, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "4a: TH sends a StopMotion command to DUT"); + case 24: { + LogStep(24, "4a: TH sends a StopMotion command to DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; @@ -56918,34 +57639,34 @@ class Test_TC_WNCV_3_1Suite : public TestCommand ); } - case 24: { - LogStep(24, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); + case 25: { + LogStep(25, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 25: { - LogStep(25, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); + case 26: { + LogStep(26, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "5a: TH waits for x seconds attributes update on the device"); + case 27: { + LogStep(27, "5a: TH waits for x seconds attributes update on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 27: { - LogStep(27, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); + case 28: { + LogStep(28, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); + case 29: { + LogStep(29, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); @@ -56958,7 +57679,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand class Test_TC_WNCV_3_2Suite : public TestCommand { public: - Test_TC_WNCV_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_2", 29, credsIssuerConfig) + Test_TC_WNCV_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_2", 30, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -57134,6 +57855,10 @@ class Test_TC_WNCV_3_2Suite : public TestCommand shouldContinue = true; break; case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57143,7 +57868,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57153,7 +57878,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57163,7 +57888,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57173,14 +57898,14 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::BitMask value; @@ -57188,11 +57913,11 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckValue("operationalStatus", value, 0U)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57202,7 +57927,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -57319,67 +58044,81 @@ class Test_TC_WNCV_3_2Suite : public TestCommand } case 13: { LogStep(13, "3a: TH reads OperationalStatus attribute's bit 0..1"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 14: { LogStep(14, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 15: { LogStep(15, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 16: { LogStep(16, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 17: { LogStep(17, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); - VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "3a2: DUT updates its attributes"); + LogStep(18, "3a: TH reads OperationalStatus attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 19: { + LogStep(19, "3a2: DUT updates its attributes"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 19: { - LogStep(19, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); + case 20: { + LogStep(20, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); + case 21: { + LogStep(21, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); + case 22: { + LogStep(22, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); + case 23: { + LogStep(23, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "4a: TH sends a StopMotion command to DUT"); + case 24: { + LogStep(24, "4a: TH sends a StopMotion command to DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; @@ -57388,34 +58127,34 @@ class Test_TC_WNCV_3_2Suite : public TestCommand ); } - case 24: { - LogStep(24, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); + case 25: { + LogStep(25, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 25: { - LogStep(25, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); + case 26: { + LogStep(26, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "5a: TH waits for x seconds attributes update on the device"); + case 27: { + LogStep(27, "5a: TH waits for x seconds attributes update on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 27: { - LogStep(27, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); + case 28: { + LogStep(28, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); + case 29: { + LogStep(29, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); @@ -100353,10 +101092,10 @@ class Test_TC_DESC_2_1Suite : public TestCommand } }; -class Test_TC_DGETH_3_2Suite : public TestCommand +class Test_TC_CGEN_2_2Suite : public TestCommand { public: - Test_TC_DGETH_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_3_2", 0, credsIssuerConfig) + Test_TC_CGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100364,7 +101103,7 @@ class Test_TC_DGETH_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGETH_3_2Suite() {} + ~Test_TC_CGEN_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100408,10 +101147,10 @@ class Test_TC_DGETH_3_2Suite : public TestCommand } }; -class Test_TC_CGEN_2_2Suite : public TestCommand +class Test_TC_DGGEN_2_2Suite : public TestCommand { public: - Test_TC_CGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_2", 0, credsIssuerConfig) + Test_TC_DGGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100419,7 +101158,7 @@ class Test_TC_CGEN_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CGEN_2_2Suite() {} + ~Test_TC_DGGEN_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100463,10 +101202,10 @@ class Test_TC_CGEN_2_2Suite : public TestCommand } }; -class Test_TC_DGGEN_2_2Suite : public TestCommand +class Test_TC_DGGEN_2_3Suite : public TestCommand { public: - Test_TC_DGGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_2", 0, credsIssuerConfig) + Test_TC_DGGEN_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100474,7 +101213,7 @@ class Test_TC_DGGEN_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_2_2Suite() {} + ~Test_TC_DGGEN_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100518,10 +101257,10 @@ class Test_TC_DGGEN_2_2Suite : public TestCommand } }; -class Test_TC_DGGEN_2_3Suite : public TestCommand +class Test_TC_DGGEN_3_1Suite : public TestCommand { public: - Test_TC_DGGEN_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_3", 0, credsIssuerConfig) + Test_TC_DGGEN_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100529,7 +101268,7 @@ class Test_TC_DGGEN_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_2_3Suite() {} + ~Test_TC_DGGEN_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100573,10 +101312,10 @@ class Test_TC_DGGEN_2_3Suite : public TestCommand } }; -class Test_TC_DGGEN_3_1Suite : public TestCommand +class Test_TC_I_3_2Suite : public TestCommand { public: - Test_TC_DGGEN_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_3_1", 0, credsIssuerConfig) + Test_TC_I_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100584,7 +101323,7 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_3_1Suite() {} + ~Test_TC_I_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100628,10 +101367,10 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand } }; -class Test_TC_I_3_2Suite : public TestCommand +class Test_TC_IDM_1_1Suite : public TestCommand { public: - Test_TC_I_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_2", 0, credsIssuerConfig) + Test_TC_IDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100639,7 +101378,7 @@ class Test_TC_I_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_I_3_2Suite() {} + ~Test_TC_IDM_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100683,10 +101422,10 @@ class Test_TC_I_3_2Suite : public TestCommand } }; -class Test_TC_ILL_3_1Suite : public TestCommand +class Test_TC_IDM_1_2Suite : public TestCommand { public: - Test_TC_ILL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ILL_3_1", 0, credsIssuerConfig) + Test_TC_IDM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100694,7 +101433,7 @@ class Test_TC_ILL_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ILL_3_1Suite() {} + ~Test_TC_IDM_1_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100738,10 +101477,10 @@ class Test_TC_ILL_3_1Suite : public TestCommand } }; -class Test_TC_IDM_1_1Suite : public TestCommand +class Test_TC_IDM_2_1Suite : public TestCommand { public: - Test_TC_IDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_1", 0, credsIssuerConfig) + Test_TC_IDM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100749,7 +101488,7 @@ class Test_TC_IDM_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_1_1Suite() {} + ~Test_TC_IDM_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100793,10 +101532,10 @@ class Test_TC_IDM_1_1Suite : public TestCommand } }; -class Test_TC_IDM_1_2Suite : public TestCommand +class Test_TC_IDM_2_2Suite : public TestCommand { public: - Test_TC_IDM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_2", 0, credsIssuerConfig) + Test_TC_IDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100804,7 +101543,7 @@ class Test_TC_IDM_1_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_1_2Suite() {} + ~Test_TC_IDM_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100848,10 +101587,10 @@ class Test_TC_IDM_1_2Suite : public TestCommand } }; -class Test_TC_IDM_2_1Suite : public TestCommand +class Test_TC_IDM_3_1Suite : public TestCommand { public: - Test_TC_IDM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_1", 0, credsIssuerConfig) + Test_TC_IDM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100859,7 +101598,7 @@ class Test_TC_IDM_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_2_1Suite() {} + ~Test_TC_IDM_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100903,10 +101642,10 @@ class Test_TC_IDM_2_1Suite : public TestCommand } }; -class Test_TC_IDM_2_2Suite : public TestCommand +class Test_TC_IDM_3_2Suite : public TestCommand { public: - Test_TC_IDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_2", 0, credsIssuerConfig) + Test_TC_IDM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100914,7 +101653,7 @@ class Test_TC_IDM_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_2_2Suite() {} + ~Test_TC_IDM_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -100958,10 +101697,10 @@ class Test_TC_IDM_2_2Suite : public TestCommand } }; -class Test_TC_IDM_3_1Suite : public TestCommand +class Test_TC_IDM_4_1Suite : public TestCommand { public: - Test_TC_IDM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_1", 0, credsIssuerConfig) + Test_TC_IDM_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -100969,7 +101708,7 @@ class Test_TC_IDM_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_3_1Suite() {} + ~Test_TC_IDM_4_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101013,10 +101752,10 @@ class Test_TC_IDM_3_1Suite : public TestCommand } }; -class Test_TC_IDM_3_2Suite : public TestCommand +class Test_TC_IDM_4_2Suite : public TestCommand { public: - Test_TC_IDM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_2", 0, credsIssuerConfig) + Test_TC_IDM_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101024,7 +101763,7 @@ class Test_TC_IDM_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_3_2Suite() {} + ~Test_TC_IDM_4_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101068,10 +101807,10 @@ class Test_TC_IDM_3_2Suite : public TestCommand } }; -class Test_TC_IDM_4_1Suite : public TestCommand +class Test_TC_IDM_4_3Suite : public TestCommand { public: - Test_TC_IDM_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_1", 0, credsIssuerConfig) + Test_TC_IDM_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101079,7 +101818,7 @@ class Test_TC_IDM_4_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_1Suite() {} + ~Test_TC_IDM_4_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101123,10 +101862,10 @@ class Test_TC_IDM_4_1Suite : public TestCommand } }; -class Test_TC_IDM_4_2Suite : public TestCommand +class Test_TC_IDM_4_4Suite : public TestCommand { public: - Test_TC_IDM_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_2", 0, credsIssuerConfig) + Test_TC_IDM_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101134,7 +101873,7 @@ class Test_TC_IDM_4_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_2Suite() {} + ~Test_TC_IDM_4_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101178,10 +101917,10 @@ class Test_TC_IDM_4_2Suite : public TestCommand } }; -class Test_TC_IDM_4_3Suite : public TestCommand +class Test_TC_IDM_5_1Suite : public TestCommand { public: - Test_TC_IDM_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_3", 0, credsIssuerConfig) + Test_TC_IDM_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101189,7 +101928,7 @@ class Test_TC_IDM_4_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_3Suite() {} + ~Test_TC_IDM_5_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101233,10 +101972,10 @@ class Test_TC_IDM_4_3Suite : public TestCommand } }; -class Test_TC_IDM_4_4Suite : public TestCommand +class Test_TC_IDM_5_2Suite : public TestCommand { public: - Test_TC_IDM_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_4", 0, credsIssuerConfig) + Test_TC_IDM_5_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101244,7 +101983,7 @@ class Test_TC_IDM_4_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_4Suite() {} + ~Test_TC_IDM_5_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101288,10 +102027,10 @@ class Test_TC_IDM_4_4Suite : public TestCommand } }; -class Test_TC_IDM_5_1Suite : public TestCommand +class Test_TC_IDM_6_1Suite : public TestCommand { public: - Test_TC_IDM_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_1", 0, credsIssuerConfig) + Test_TC_IDM_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101299,7 +102038,7 @@ class Test_TC_IDM_5_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_5_1Suite() {} + ~Test_TC_IDM_6_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101343,10 +102082,10 @@ class Test_TC_IDM_5_1Suite : public TestCommand } }; -class Test_TC_IDM_5_2Suite : public TestCommand +class Test_TC_IDM_6_2Suite : public TestCommand { public: - Test_TC_IDM_5_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_2", 0, credsIssuerConfig) + Test_TC_IDM_6_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101354,7 +102093,7 @@ class Test_TC_IDM_5_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_5_2Suite() {} + ~Test_TC_IDM_6_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101398,10 +102137,10 @@ class Test_TC_IDM_5_2Suite : public TestCommand } }; -class Test_TC_IDM_6_1Suite : public TestCommand +class Test_TC_IDM_6_3Suite : public TestCommand { public: - Test_TC_IDM_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_1", 0, credsIssuerConfig) + Test_TC_IDM_6_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101409,7 +102148,7 @@ class Test_TC_IDM_6_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_1Suite() {} + ~Test_TC_IDM_6_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101453,10 +102192,10 @@ class Test_TC_IDM_6_1Suite : public TestCommand } }; -class Test_TC_IDM_6_2Suite : public TestCommand +class Test_TC_IDM_6_4Suite : public TestCommand { public: - Test_TC_IDM_6_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_2", 0, credsIssuerConfig) + Test_TC_IDM_6_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101464,7 +102203,7 @@ class Test_TC_IDM_6_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_2Suite() {} + ~Test_TC_IDM_6_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101508,10 +102247,10 @@ class Test_TC_IDM_6_2Suite : public TestCommand } }; -class Test_TC_IDM_6_3Suite : public TestCommand +class Test_TC_IDM_7_1Suite : public TestCommand { public: - Test_TC_IDM_6_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_3", 0, credsIssuerConfig) + Test_TC_IDM_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_7_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101519,7 +102258,7 @@ class Test_TC_IDM_6_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_3Suite() {} + ~Test_TC_IDM_7_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101563,10 +102302,10 @@ class Test_TC_IDM_6_3Suite : public TestCommand } }; -class Test_TC_IDM_6_4Suite : public TestCommand +class Test_TC_IDM_8_1Suite : public TestCommand { public: - Test_TC_IDM_6_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_4", 0, credsIssuerConfig) + Test_TC_IDM_8_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_8_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101574,7 +102313,7 @@ class Test_TC_IDM_6_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_4Suite() {} + ~Test_TC_IDM_8_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101618,10 +102357,11 @@ class Test_TC_IDM_6_4Suite : public TestCommand } }; -class Test_TC_IDM_7_1Suite : public TestCommand +class Test_TC_LOWPOWER_2_2Suite : public TestCommand { public: - Test_TC_IDM_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_7_1", 0, credsIssuerConfig) + Test_TC_LOWPOWER_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_LOWPOWER_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101629,118 +102369,7 @@ class Test_TC_IDM_7_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_7_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_IDM_8_1Suite : public TestCommand -{ -public: - Test_TC_IDM_8_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_8_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_IDM_8_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_LOWPOWER_2_2Suite : public TestCommand -{ -public: - Test_TC_LOWPOWER_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_LOWPOWER_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_LOWPOWER_2_2Suite() {} + ~Test_TC_LOWPOWER_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -103014,6 +103643,61 @@ class Test_TC_ALOGIN_12_2Suite : public TestCommand } }; +class Test_TC_TGTNAV_8_2Suite : public TestCommand +{ +public: + Test_TC_TGTNAV_8_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TGTNAV_8_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TGTNAV_8_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_CADMIN_1_1Suite : public TestCommand { public: @@ -103469,7 +104153,6 @@ class Test_TC_CADMIN_1_16Suite : public TestCommand AddArgument("nodeId3", 0, UINT64_MAX, &mNodeId3); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("waitAfterCommissioning", 0, UINT16_MAX, &mWaitAfterCommissioning); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("payload", &mPayload); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } @@ -103487,7 +104170,6 @@ class Test_TC_CADMIN_1_16Suite : public TestCommand chip::Optional mNodeId3; chip::Optional mEndpoint; chip::Optional mWaitAfterCommissioning; - chip::Optional mDiscriminator; chip::Optional mPayload; chip::Optional mTimeout; @@ -104159,181 +104841,179 @@ class Test_TC_CADMIN_1_21Suite : public TestCommand AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); } ~Test_TC_CADMIN_1_21Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(950)); } +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mEndpoint; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("windowStatus", value, 0U)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("windowStatus", value, 0U)); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Precondition: Reset Devices to factory defaults"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::SystemCommands::Commands::FactoryReset::Type value; + return FactoryReset(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Precondition: Reset Devices to factory defaults"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = + chip::Span("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "TH_CR1 opens a commissioning window on DUT_CE using BCM"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 900U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 4: { + LogStep(4, "Wait for commissioning Window to 901 seconds"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 901000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); + VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "TH_CR1 opens a commissioning window on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 901U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 7: { + LogStep(7, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); + VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_22Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_22Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_22", 10, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); + AddArgument("PakeVerifier", &mPakeVerifier); + } + + ~Test_TC_CADMIN_1_22Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(950)); } + private: chip::Optional mNodeId; chip::Optional mTimeout; chip::Optional mEndpoint; chip::Optional mDiscriminator; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("windowStatus", value, 0U)); - } - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND)); - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("windowStatus", value, 0U)); - } - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Precondition: Reset Devices to factory defaults"); - VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::SystemCommands::Commands::FactoryReset::Type value; - return FactoryReset(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Precondition: Reset Devices to factory defaults"); - VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = - chip::Span("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 2: { - LogStep(2, "TH_CR1 starts a commissioning process with DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "TH_CR1 opens a commissioning window on DUT_CE using BCM"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 900U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 4: { - LogStep(4, "Wait for commissioning Window to 901 seconds"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 901000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 5: { - LogStep(5, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); - VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); - } - case 6: { - LogStep(6, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 901U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 7: { - LogStep(7, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); - VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CADMIN_1_22Suite : public TestCommand -{ -public: - Test_TC_CADMIN_1_22Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_22", 10, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); - AddArgument("PakeVerifier", &mPakeVerifier); - } - - ~Test_TC_CADMIN_1_22Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(950)); } - -private: - chip::Optional mNodeId; - chip::Optional mTimeout; - chip::Optional mEndpoint; - chip::Optional mDiscriminator; - chip::Optional mPakeVerifier; + chip::Optional mPakeVerifier; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -104590,7 +105270,6 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); AddArgument("nodeId2", 0, UINT64_MAX, &mNodeId2); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("payload", &mPayload); AddArgument("waitAfterCommissioning", 0, UINT16_MAX, &mWaitAfterCommissioning); } @@ -104604,7 +105283,6 @@ class Test_TC_CADMIN_1_4Suite : public TestCommand chip::Optional mTimeout; chip::Optional mNodeId2; chip::Optional mEndpoint; - chip::Optional mDiscriminator; chip::Optional mPayload; chip::Optional mWaitAfterCommissioning; @@ -105110,7 +105788,6 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand AddArgument("nodeId3", 0, UINT64_MAX, &mNodeId3); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("waitAfterCommissioning", 0, UINT16_MAX, &mWaitAfterCommissioning); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("payload", &mPayload); } @@ -105126,7 +105803,6 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand chip::Optional mNodeId3; chip::Optional mEndpoint; chip::Optional mWaitAfterCommissioning; - chip::Optional mDiscriminator; chip::Optional mPayload; uint8_t TH2FabricIndex; @@ -105542,7 +106218,6 @@ class Test_TC_CADMIN_1_10Suite : public TestCommand AddArgument("nodeId3", 0, UINT64_MAX, &mNodeId3); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("waitAfterCommissioning", 0, UINT16_MAX, &mWaitAfterCommissioning); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("correctPayload", &mCorrectPayload); AddArgument("incorrectSetupCodePayload", &mIncorrectSetupCodePayload); } @@ -105559,7 +106234,6 @@ class Test_TC_CADMIN_1_10Suite : public TestCommand chip::Optional mNodeId3; chip::Optional mEndpoint; chip::Optional mWaitAfterCommissioning; - chip::Optional mDiscriminator; chip::Optional mCorrectPayload; chip::Optional mIncorrectSetupCodePayload; @@ -106085,181 +106759,179 @@ class Test_TC_CADMIN_1_23Suite : public TestCommand AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); } ~Test_TC_CADMIN_1_23Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mEndpoint; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("windowStatus", value, 0U)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("windowStatus", value, 0U)); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Precondition: Reset Devices to factory defaults"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::SystemCommands::Commands::FactoryReset::Type value; + return FactoryReset(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Precondition: Reset Devices to factory defaults"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = + chip::Span("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "TH_CR1 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "TH_CR1 opens a commissioning window on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 180U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 4: { + LogStep(4, "Wait for commissioning Window to 181 seconds"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 181000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); + VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "TH_CR1 opens a commissioning window on DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; + value.commissioningTimeout = 179U; + return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 7: { + LogStep(7, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); + VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, + AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_24Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_24Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_24", 10, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); + AddArgument("PakeVerifier", &mPakeVerifier); + } + + ~Test_TC_CADMIN_1_24Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } + private: chip::Optional mNodeId; chip::Optional mTimeout; chip::Optional mEndpoint; chip::Optional mDiscriminator; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("windowStatus", value, 0U)); - } - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND)); - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("windowStatus", value, 0U)); - } - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Precondition: Reset Devices to factory defaults"); - VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::SystemCommands::Commands::FactoryReset::Type value; - return FactoryReset(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Precondition: Reset Devices to factory defaults"); - VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = - chip::Span("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 2: { - LogStep(2, "TH_CR1 starts a commissioning process with DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 180U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 4: { - LogStep(4, "Wait for commissioning Window to 181 seconds"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 181000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 5: { - LogStep(5, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); - VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); - } - case 6: { - LogStep(6, "TH_CR1 opens a commissioning window on DUT_CE"); - VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; - value.commissioningTimeout = 179U; - return SendCommand(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 7: { - LogStep(7, "TH_CR1 reads the window status to verify the DUT_CE window is closed"); - VerifyOrDo(!ShouldSkip("CADMIN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AdministratorCommissioning::Id, - AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_CADMIN_1_24Suite : public TestCommand -{ -public: - Test_TC_CADMIN_1_24Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_24", 10, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); - AddArgument("PakeVerifier", &mPakeVerifier); - } - - ~Test_TC_CADMIN_1_24Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } - -private: - chip::Optional mNodeId; - chip::Optional mTimeout; - chip::Optional mEndpoint; - chip::Optional mDiscriminator; - chip::Optional mPakeVerifier; + chip::Optional mPakeVerifier; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -107277,835 +107949,10 @@ class Test_TC_SU_2_6Suite : public TestCommand } }; -class Test_TC_SU_2_7Suite : public TestCommand -{ -public: - Test_TC_SU_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_7", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_2_7Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_2_8Suite : public TestCommand -{ -public: - Test_TC_SU_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_8", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_2_8Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_3_1Suite : public TestCommand -{ -public: - Test_TC_SU_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_3_2Suite : public TestCommand -{ -public: - Test_TC_SU_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_3_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_3_3Suite : public TestCommand -{ -public: - Test_TC_SU_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_3_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_3_4Suite : public TestCommand -{ -public: - Test_TC_SU_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_3_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_4_1Suite : public TestCommand -{ -public: - Test_TC_SU_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_4_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_4_2Suite : public TestCommand -{ -public: - Test_TC_SU_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SU_4_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_PSCFG_2_2Suite : public TestCommand -{ -public: - Test_TC_PSCFG_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_PSCFG_2_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_1_1Suite : public TestCommand -{ -public: - Test_TC_SC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_1_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_1_2Suite : public TestCommand -{ -public: - Test_TC_SC_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_1_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_1_3Suite : public TestCommand -{ -public: - Test_TC_SC_1_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_1_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_1_4Suite : public TestCommand -{ -public: - Test_TC_SC_1_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_1_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_2_1Suite : public TestCommand -{ -public: - Test_TC_SC_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_2_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_2_2Suite : public TestCommand -{ -public: - Test_TC_SC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_SC_2_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SC_2_3Suite : public TestCommand +class Test_TC_SU_2_7Suite : public TestCommand { public: - Test_TC_SC_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_3", 0, credsIssuerConfig) + Test_TC_SU_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_7", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108113,7 +107960,7 @@ class Test_TC_SC_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_2_3Suite() {} + ~Test_TC_SU_2_7Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108157,10 +108004,10 @@ class Test_TC_SC_2_3Suite : public TestCommand } }; -class Test_TC_SC_2_4Suite : public TestCommand +class Test_TC_SU_2_8Suite : public TestCommand { public: - Test_TC_SC_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_4", 0, credsIssuerConfig) + Test_TC_SU_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_8", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108168,7 +108015,7 @@ class Test_TC_SC_2_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_2_4Suite() {} + ~Test_TC_SU_2_8Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108212,10 +108059,10 @@ class Test_TC_SC_2_4Suite : public TestCommand } }; -class Test_TC_SC_3_1Suite : public TestCommand +class Test_TC_SU_3_1Suite : public TestCommand { public: - Test_TC_SC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_1", 0, credsIssuerConfig) + Test_TC_SU_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108223,7 +108070,7 @@ class Test_TC_SC_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_3_1Suite() {} + ~Test_TC_SU_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108267,10 +108114,10 @@ class Test_TC_SC_3_1Suite : public TestCommand } }; -class Test_TC_SC_3_2Suite : public TestCommand +class Test_TC_SU_3_2Suite : public TestCommand { public: - Test_TC_SC_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_2", 0, credsIssuerConfig) + Test_TC_SU_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108278,7 +108125,7 @@ class Test_TC_SC_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_3_2Suite() {} + ~Test_TC_SU_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108322,10 +108169,10 @@ class Test_TC_SC_3_2Suite : public TestCommand } }; -class Test_TC_SC_3_3Suite : public TestCommand +class Test_TC_SU_3_3Suite : public TestCommand { public: - Test_TC_SC_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_3", 0, credsIssuerConfig) + Test_TC_SU_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108333,7 +108180,7 @@ class Test_TC_SC_3_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_3_3Suite() {} + ~Test_TC_SU_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108377,10 +108224,10 @@ class Test_TC_SC_3_3Suite : public TestCommand } }; -class Test_TC_SC_3_4Suite : public TestCommand +class Test_TC_SU_3_4Suite : public TestCommand { public: - Test_TC_SC_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_4", 0, credsIssuerConfig) + Test_TC_SU_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108388,7 +108235,7 @@ class Test_TC_SC_3_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_3_4Suite() {} + ~Test_TC_SU_3_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108432,10 +108279,10 @@ class Test_TC_SC_3_4Suite : public TestCommand } }; -class Test_TC_SC_4_1Suite : public TestCommand +class Test_TC_SU_4_1Suite : public TestCommand { public: - Test_TC_SC_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_1", 0, credsIssuerConfig) + Test_TC_SU_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108443,7 +108290,7 @@ class Test_TC_SC_4_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_1Suite() {} + ~Test_TC_SU_4_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108487,10 +108334,10 @@ class Test_TC_SC_4_1Suite : public TestCommand } }; -class Test_TC_SC_4_2Suite : public TestCommand +class Test_TC_SU_4_2Suite : public TestCommand { public: - Test_TC_SC_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_2", 0, credsIssuerConfig) + Test_TC_SU_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108498,7 +108345,7 @@ class Test_TC_SC_4_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_2Suite() {} + ~Test_TC_SU_4_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108542,10 +108389,10 @@ class Test_TC_SC_4_2Suite : public TestCommand } }; -class Test_TC_SC_4_3Suite : public TestCommand +class Test_TC_PSCFG_2_2Suite : public TestCommand { public: - Test_TC_SC_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_3", 0, credsIssuerConfig) + Test_TC_PSCFG_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108553,7 +108400,7 @@ class Test_TC_SC_4_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_3Suite() {} + ~Test_TC_PSCFG_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108597,10 +108444,10 @@ class Test_TC_SC_4_3Suite : public TestCommand } }; -class Test_TC_SC_4_4Suite : public TestCommand +class Test_TC_SC_1_1Suite : public TestCommand { public: - Test_TC_SC_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_4", 0, credsIssuerConfig) + Test_TC_SC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108608,7 +108455,7 @@ class Test_TC_SC_4_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_4Suite() {} + ~Test_TC_SC_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108652,10 +108499,10 @@ class Test_TC_SC_4_4Suite : public TestCommand } }; -class Test_TC_SC_4_5Suite : public TestCommand +class Test_TC_SC_1_2Suite : public TestCommand { public: - Test_TC_SC_4_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_5", 0, credsIssuerConfig) + Test_TC_SC_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108663,7 +108510,7 @@ class Test_TC_SC_4_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_5Suite() {} + ~Test_TC_SC_1_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108707,10 +108554,10 @@ class Test_TC_SC_4_5Suite : public TestCommand } }; -class Test_TC_SC_4_6Suite : public TestCommand +class Test_TC_SC_1_3Suite : public TestCommand { public: - Test_TC_SC_4_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_6", 0, credsIssuerConfig) + Test_TC_SC_1_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108718,7 +108565,7 @@ class Test_TC_SC_4_6Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_6Suite() {} + ~Test_TC_SC_1_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108762,10 +108609,10 @@ class Test_TC_SC_4_6Suite : public TestCommand } }; -class Test_TC_SC_4_7Suite : public TestCommand +class Test_TC_SC_1_4Suite : public TestCommand { public: - Test_TC_SC_4_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_7", 0, credsIssuerConfig) + Test_TC_SC_1_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_1_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108773,7 +108620,7 @@ class Test_TC_SC_4_7Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_7Suite() {} + ~Test_TC_SC_1_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108817,10 +108664,10 @@ class Test_TC_SC_4_7Suite : public TestCommand } }; -class Test_TC_SC_4_8Suite : public TestCommand +class Test_TC_SC_2_1Suite : public TestCommand { public: - Test_TC_SC_4_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_8", 0, credsIssuerConfig) + Test_TC_SC_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108828,7 +108675,7 @@ class Test_TC_SC_4_8Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_8Suite() {} + ~Test_TC_SC_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108872,10 +108719,10 @@ class Test_TC_SC_4_8Suite : public TestCommand } }; -class Test_TC_SC_4_9Suite : public TestCommand +class Test_TC_SC_2_2Suite : public TestCommand { public: - Test_TC_SC_4_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_9", 0, credsIssuerConfig) + Test_TC_SC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108883,7 +108730,227 @@ class Test_TC_SC_4_9Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_9Suite() {} + ~Test_TC_SC_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_2_3Suite : public TestCommand +{ +public: + Test_TC_SC_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_2_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_2_4Suite : public TestCommand +{ +public: + Test_TC_SC_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_2_4", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_2_4Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_3_1Suite : public TestCommand +{ +public: + Test_TC_SC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_3_2Suite : public TestCommand +{ +public: + Test_TC_SC_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108927,10 +108994,10 @@ class Test_TC_SC_4_9Suite : public TestCommand } }; -class Test_TC_SC_4_10Suite : public TestCommand +class Test_TC_SC_3_3Suite : public TestCommand { public: - Test_TC_SC_4_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_10", 0, credsIssuerConfig) + Test_TC_SC_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108938,7 +109005,7 @@ class Test_TC_SC_4_10Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_4_10Suite() {} + ~Test_TC_SC_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -108982,10 +109049,10 @@ class Test_TC_SC_4_10Suite : public TestCommand } }; -class Test_TC_SC_5_3Suite : public TestCommand +class Test_TC_SC_3_4Suite : public TestCommand { public: - Test_TC_SC_5_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_5_3", 0, credsIssuerConfig) + Test_TC_SC_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_3_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -108993,7 +109060,7 @@ class Test_TC_SC_5_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_5_3Suite() {} + ~Test_TC_SC_3_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109037,10 +109104,10 @@ class Test_TC_SC_5_3Suite : public TestCommand } }; -class Test_TC_SC_6_1Suite : public TestCommand +class Test_TC_SC_4_1Suite : public TestCommand { public: - Test_TC_SC_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_6_1", 0, credsIssuerConfig) + Test_TC_SC_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109048,7 +109115,7 @@ class Test_TC_SC_6_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SC_6_1Suite() {} + ~Test_TC_SC_4_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109092,10 +109159,10 @@ class Test_TC_SC_6_1Suite : public TestCommand } }; -class Test_TC_DGSW_2_1Suite : public TestCommand +class Test_TC_SC_4_2Suite : public TestCommand { public: - Test_TC_DGSW_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_1", 0, credsIssuerConfig) + Test_TC_SC_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109103,7 +109170,7 @@ class Test_TC_DGSW_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_2_1Suite() {} + ~Test_TC_SC_4_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109147,10 +109214,10 @@ class Test_TC_DGSW_2_1Suite : public TestCommand } }; -class Test_TC_DGSW_2_2Suite : public TestCommand +class Test_TC_SC_4_3Suite : public TestCommand { public: - Test_TC_DGSW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_2", 0, credsIssuerConfig) + Test_TC_SC_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109158,7 +109225,7 @@ class Test_TC_DGSW_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_2_2Suite() {} + ~Test_TC_SC_4_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109202,10 +109269,10 @@ class Test_TC_DGSW_2_2Suite : public TestCommand } }; -class Test_TC_DGSW_2_3Suite : public TestCommand +class Test_TC_SC_4_4Suite : public TestCommand { public: - Test_TC_DGSW_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_3", 0, credsIssuerConfig) + Test_TC_SC_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109213,7 +109280,7 @@ class Test_TC_DGSW_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_2_3Suite() {} + ~Test_TC_SC_4_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109257,10 +109324,10 @@ class Test_TC_DGSW_2_3Suite : public TestCommand } }; -class Test_TC_DGSW_3_2Suite : public TestCommand +class Test_TC_SC_4_5Suite : public TestCommand { public: - Test_TC_DGSW_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_3_2", 0, credsIssuerConfig) + Test_TC_SC_4_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_5", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109268,7 +109335,7 @@ class Test_TC_DGSW_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_3_2Suite() {} + ~Test_TC_SC_4_5Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109312,10 +109379,10 @@ class Test_TC_DGSW_3_2Suite : public TestCommand } }; -class Test_TC_DGWIFI_2_2Suite : public TestCommand +class Test_TC_SC_4_6Suite : public TestCommand { public: - Test_TC_DGWIFI_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_2_2", 0, credsIssuerConfig) + Test_TC_SC_4_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_6", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109323,7 +109390,7 @@ class Test_TC_DGWIFI_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGWIFI_2_2Suite() {} + ~Test_TC_SC_4_6Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109367,10 +109434,10 @@ class Test_TC_DGWIFI_2_2Suite : public TestCommand } }; -class Test_TC_DGWIFI_3_2Suite : public TestCommand +class Test_TC_SC_4_7Suite : public TestCommand { public: - Test_TC_DGWIFI_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_3_2", 0, credsIssuerConfig) + Test_TC_SC_4_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_7", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109378,7 +109445,7 @@ class Test_TC_DGWIFI_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGWIFI_3_2Suite() {} + ~Test_TC_SC_4_7Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109422,10 +109489,10 @@ class Test_TC_DGWIFI_3_2Suite : public TestCommand } }; -class Test_TC_WNCV_6_1Suite : public TestCommand +class Test_TC_SC_4_8Suite : public TestCommand { public: - Test_TC_WNCV_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_6_1", 0, credsIssuerConfig) + Test_TC_SC_4_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_8", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109433,7 +109500,7 @@ class Test_TC_WNCV_6_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_WNCV_6_1Suite() {} + ~Test_TC_SC_4_8Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109477,10 +109544,10 @@ class Test_TC_WNCV_6_1Suite : public TestCommand } }; -class Test_TC_WNCV_7_1Suite : public TestCommand +class Test_TC_SC_4_9Suite : public TestCommand { public: - Test_TC_WNCV_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_7_1", 0, credsIssuerConfig) + Test_TC_SC_4_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_9", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109488,7 +109555,7 @@ class Test_TC_WNCV_7_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_WNCV_7_1Suite() {} + ~Test_TC_SC_4_9Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109532,10 +109599,10 @@ class Test_TC_WNCV_7_1Suite : public TestCommand } }; -class Test_TC_FLW_2_2Suite : public TestCommand +class Test_TC_SC_4_10Suite : public TestCommand { public: - Test_TC_FLW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_2_2", 4, credsIssuerConfig) + Test_TC_SC_4_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_10", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109543,7 +109610,7 @@ class Test_TC_FLW_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_FLW_2_2Suite() {} + ~Test_TC_SC_4_10Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109556,8 +109623,6 @@ class Test_TC_FLW_2_2Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; - chip::app::DataModel::Nullable ValueBeforeChange; - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -109570,36 +109635,6 @@ class Test_TC_FLW_2_2Suite : public TestCommand switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - ValueBeforeChange = value; - } - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - VerifyOrReturn(CheckConstraintNotValue("value", value, ValueBeforeChange)); - } - break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -109614,45 +109649,15 @@ class Test_TC_FLW_2_2Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - { - case 0: { - LogStep(0, "Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Read the mandatory attribute: MeasuredValue"); - VerifyOrDo(!ShouldSkip("FLW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); - } - case 2: { - LogStep(2, "operate on DUT to change the flow significantly"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "Read the mandatory attribute: MeasuredValue"); - VerifyOrDo(!ShouldSkip("FLW.S.A0000 && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); - } - } + {} return CHIP_NO_ERROR; } }; -class Test_TC_OCC_3_1Suite : public TestCommand +class Test_TC_SC_5_3Suite : public TestCommand { public: - Test_TC_OCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_3_1", 4, credsIssuerConfig) + Test_TC_SC_5_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_5_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109660,7 +109665,7 @@ class Test_TC_OCC_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_OCC_3_1Suite() {} + ~Test_TC_SC_5_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109673,8 +109678,6 @@ class Test_TC_OCC_3_1Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; - chip::BitMask OccupancyValue; - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -109687,30 +109690,6 @@ class Test_TC_OCC_3_1Suite : public TestCommand switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::BitMask value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - OccupancyValue = value; - } - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::BitMask value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintNotValue("value", value, OccupancyValue)); - } - break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -109725,45 +109704,70 @@ class Test_TC_OCC_3_1Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SC_6_1Suite : public TestCommand +{ +public: + Test_TC_SC_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_6_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SC_6_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) { - case 0: { - LogStep(0, "Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Reads Occupancy attribute from DUT"); - VerifyOrDo(!ShouldSkip("OCC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, - true, chip::NullOptional); - } - case 2: { - LogStep(2, "Operate on DUT to change the occupancy status"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && OCC.M.OccupancyChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 3: { - LogStep(3, "Reads back Occupancy attribute from DUT after few seconds"); - VerifyOrDo(!ShouldSkip("OCC.S.A0000 && OCC.M.OccupancyChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, - true, chip::NullOptional); + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} return CHIP_NO_ERROR; } }; -class Test_TC_PS_2_2Suite : public TestCommand +class Test_TC_DGSW_2_1Suite : public TestCommand { public: - Test_TC_PS_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_2_2", 0, credsIssuerConfig) + Test_TC_DGSW_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109771,7 +109775,7 @@ class Test_TC_PS_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_PS_2_2Suite() {} + ~Test_TC_DGSW_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109815,10 +109819,10 @@ class Test_TC_PS_2_2Suite : public TestCommand } }; -class Test_TC_BOOL_2_2Suite : public TestCommand +class Test_TC_DGSW_2_2Suite : public TestCommand { public: - Test_TC_BOOL_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_2_2", 0, credsIssuerConfig) + Test_TC_DGSW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109826,7 +109830,7 @@ class Test_TC_BOOL_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BOOL_2_2Suite() {} + ~Test_TC_DGSW_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109870,10 +109874,10 @@ class Test_TC_BOOL_2_2Suite : public TestCommand } }; -class Test_TC_CC_2_2Suite : public TestCommand +class Test_TC_DGSW_2_3Suite : public TestCommand { public: - Test_TC_CC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_2_2", 0, credsIssuerConfig) + Test_TC_DGSW_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109881,7 +109885,7 @@ class Test_TC_CC_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_2_2Suite() {} + ~Test_TC_DGSW_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109925,10 +109929,10 @@ class Test_TC_CC_2_2Suite : public TestCommand } }; -class Test_TC_CC_3_4Suite : public TestCommand +class Test_TC_DGWIFI_2_2Suite : public TestCommand { public: - Test_TC_CC_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_3_4", 0, credsIssuerConfig) + Test_TC_DGWIFI_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109936,7 +109940,7 @@ class Test_TC_CC_3_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_3_4Suite() {} + ~Test_TC_DGWIFI_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -109980,10 +109984,10 @@ class Test_TC_CC_3_4Suite : public TestCommand } }; -class Test_TC_CC_4_5Suite : public TestCommand +class Test_TC_FLW_2_2Suite : public TestCommand { public: - Test_TC_CC_4_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_4_5", 0, credsIssuerConfig) + Test_TC_FLW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_2_2", 4, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -109991,7 +109995,7 @@ class Test_TC_CC_4_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_4_5Suite() {} + ~Test_TC_FLW_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -110004,6 +110008,8 @@ class Test_TC_CC_4_5Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + chip::app::DataModel::Nullable ValueBeforeChange; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -110016,6 +110022,36 @@ class Test_TC_CC_4_5Suite : public TestCommand switch (mTestIndex - 1) { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + ValueBeforeChange = value; + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + VerifyOrReturn(CheckConstraintNotValue("value", value, ValueBeforeChange)); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -110030,15 +110066,45 @@ class Test_TC_CC_4_5Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - {} + { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read the mandatory attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "Operate on device to change the flow significantly"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "Read the mandatory attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.S.A0000 && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); + } + } return CHIP_NO_ERROR; } }; -class Test_TC_CC_5_4Suite : public TestCommand +class Test_TC_OCC_3_1Suite : public TestCommand { public: - Test_TC_CC_5_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_5_4", 0, credsIssuerConfig) + Test_TC_OCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_3_1", 4, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110046,7 +110112,7 @@ class Test_TC_CC_5_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_5_4Suite() {} + ~Test_TC_OCC_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -110059,6 +110125,8 @@ class Test_TC_CC_5_4Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + chip::BitMask OccupancyValue; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -110071,6 +110139,30 @@ class Test_TC_CC_5_4Suite : public TestCommand switch (mTestIndex - 1) { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + OccupancyValue = value; + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintNotValue("value", value, OccupancyValue)); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -110085,15 +110177,45 @@ class Test_TC_CC_5_4Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - {} + { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Reads Occupancy attribute from DUT"); + VerifyOrDo(!ShouldSkip("OCC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "Operate on DUT to change the occupancy status"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && OCC.M.OccupancyChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "Reads back Occupancy attribute from DUT after few seconds"); + VerifyOrDo(!ShouldSkip("OCC.S.A0000 && OCC.M.OccupancyChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, + true, chip::NullOptional); + } + } return CHIP_NO_ERROR; } }; -class Test_TC_CC_6_4Suite : public TestCommand +class Test_TC_PS_2_2Suite : public TestCommand { public: - Test_TC_CC_6_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_6_4", 0, credsIssuerConfig) + Test_TC_PS_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110101,7 +110223,7 @@ class Test_TC_CC_6_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_6_4Suite() {} + ~Test_TC_PS_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -110145,10 +110267,10 @@ class Test_TC_CC_6_4Suite : public TestCommand } }; -class Test_TC_CC_7_5Suite : public TestCommand +class Test_TC_BOOL_2_2Suite : public TestCommand { public: - Test_TC_CC_7_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_7_5", 0, credsIssuerConfig) + Test_TC_BOOL_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110156,7 +110278,7 @@ class Test_TC_CC_7_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_7_5Suite() {} + ~Test_TC_BOOL_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -110200,10 +110322,10 @@ class Test_TC_CC_7_5Suite : public TestCommand } }; -class Test_TC_CC_9_4Suite : public TestCommand +class Test_TC_CC_2_2Suite : public TestCommand { public: - Test_TC_CC_9_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_9_4", 0, credsIssuerConfig) + Test_TC_CC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110211,7 +110333,7 @@ class Test_TC_CC_9_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CC_9_4Suite() {} + ~Test_TC_CC_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -114482,61 +114604,6 @@ class Test_TC_LCFG_2_1Suite : public TestCommand } }; -class Test_TC_LVL_2_3Suite : public TestCommand -{ -public: - Test_TC_LVL_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_2_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_LVL_2_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_LVL_7_1Suite : public TestCommand { public: @@ -116478,116 +116545,6 @@ class Test_TC_OO_2_3Suite : public TestCommand } }; -class Test_TC_OO_3_1Suite : public TestCommand -{ -public: - Test_TC_OO_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OO_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_OO_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_OO_3_2Suite : public TestCommand -{ -public: - Test_TC_OO_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OO_3_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_OO_3_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_RH_2_2Suite : public TestCommand { public: @@ -116994,61 +116951,6 @@ class Test_TC_TMP_2_2Suite : public TestCommand } }; -class Test_TC_TMP_3_1Suite : public TestCommand -{ -public: - Test_TC_TMP_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TMP_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_TMP_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_TSTAT_3_1Suite : public TestCommand { public: @@ -117159,61 +117061,6 @@ class Test_TC_TSTAT_3_2Suite : public TestCommand } }; -class Test_TC_TSUIC_3_1Suite : public TestCommand -{ -public: - Test_TC_TSUIC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSUIC_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_TSUIC_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_DGTHREAD_2_5Suite : public TestCommand { public: @@ -117326,174 +117173,6 @@ class Test_TC_DGTHREAD_3_1Suite : public TestCommand } }; -class Test_TC_DGTHREAD_3_2Suite : public TestCommand -{ -public: - Test_TC_DGTHREAD_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_3_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGTHREAD_3_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_DGTHREAD_3_3Suite : public TestCommand -{ -public: - Test_TC_DGTHREAD_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_3_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGTHREAD_3_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_DGTHREAD_3_4Suite : public TestCommand -{ -public: - Test_TC_DGTHREAD_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_3_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGTHREAD_3_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_ACT_2_1Suite : public TestCommand { public: @@ -118488,61 +118167,6 @@ class Test_TC_S_3_1Suite : public TestCommand } }; -class Test_TC_PCC_3_1Suite : public TestCommand -{ -public: - Test_TC_PCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PCC_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_PCC_3_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_ACL_2_5Suite : public TestCommand { public: @@ -118912,7 +118536,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119159,13 +118782,11 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119207,6 +118828,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119282,22 +118904,12 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119310,25 +118922,17 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -119342,7 +118946,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h index b104e9c8a0430b..0c5f225c2dd691 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -106,7 +106,6 @@ class TestList : public Command { printf("Test_TC_MEDIAPLAYBACK_1_7\n"); printf("Test_TC_AUDIOOUTPUT_1_8\n"); printf("Test_TC_TGTNAV_1_9\n"); - printf("Test_TC_TGTNAV_8_2\n"); printf("Test_TC_APBSC_1_10\n"); printf("Test_TC_CONTENTLAUNCHER_1_11\n"); printf("Test_TC_ALOGIN_1_12\n"); @@ -8316,256 +8315,496 @@ class Test_TC_CC_1_1 : public TestCommandBridge { err = TestReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_16(); break; case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Read the optional attribute(EnhancedCurrentHue) in AttributeList\n"); - if (ShouldSkip("CC.S.A4000")) { + ChipLogProgress(chipTool, " ***** Test Step 17 : Read the optional attribute(NumberOfPrimaries) in AttributeList\n"); + if (ShouldSkip("CC.S.A0010")) { NextTest(); return; } - err = TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_17(); + err = TestReadTheOptionalAttributeNumberOfPrimariesInAttributeList_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Read the optional attribute(ColorLoopActive) in AttributeList\n"); - if (ShouldSkip("CC.S.A4002")) { + ChipLogProgress(chipTool, " ***** Test Step 18 : Read the optional attribute(Primary1X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0011")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopActiveInAttributeList_18(); + err = TestReadTheOptionalAttributePrimary1XInAttributeList_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Read the optional attribute(ColorLoopDirection) in AttributeList\n"); - if (ShouldSkip("CC.S.A4003")) { + ChipLogProgress(chipTool, " ***** Test Step 19 : Read the optional attribute(Primary1Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0012")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_19(); + err = TestReadTheOptionalAttributePrimary1YInAttributeList_19(); break; case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Read the optional attribute(ColorLoopTime) in AttributeList\n"); - if (ShouldSkip("CC.S.A4004")) { + ChipLogProgress(chipTool, " ***** Test Step 20 : Read the optional attribute(Primary1Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0013")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopTimeInAttributeList_20(); + err = TestReadTheOptionalAttributePrimary1IntensityInAttributeList_20(); break; case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : Read the optional attribute(Primary2X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0015")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary2XInAttributeList_21(); + break; + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : Read the optional attribute(Primary2Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0016")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary2YInAttributeList_22(); + break; + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : Read the optional attribute(Primary2Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0017")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary2IntensityInAttributeList_23(); + break; + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : Read the optional attribute(Primary3X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0019")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary3XInAttributeList_24(); + break; + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : Read the optional attribute(Primary3Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A001a")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary3YInAttributeList_25(); + break; + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : Read the optional attribute(Primary3Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A001b")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary3IntensityInAttributeList_26(); + break; + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : Read the optional attribute(Primary4X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0020")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary4XInAttributeList_27(); + break; + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Read the optional attribute(Primary4Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0021")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary4YInAttributeList_28(); + break; + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : Read the optional attribute(Primary4Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0022")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary4IntensityInAttributeList_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Read the optional attribute(Primary5X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0024")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary5XInAttributeList_30(); + break; + case 31: + ChipLogProgress(chipTool, " ***** Test Step 31 : Read the optional attribute(Primary5Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0025")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary5YInAttributeList_31(); + break; + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Read the optional attribute(Primary5Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0026")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary5IntensityInAttributeList_32(); + break; + case 33: + ChipLogProgress(chipTool, " ***** Test Step 33 : Read the optional attribute(Primary6X) in AttributeList\n"); + if (ShouldSkip("CC.S.A0028")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary6XInAttributeList_33(); + break; + case 34: + ChipLogProgress(chipTool, " ***** Test Step 34 : Read the optional attribute(Primary6Y) in AttributeList\n"); + if (ShouldSkip("CC.S.A0029")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary6YInAttributeList_34(); + break; + case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : Read the optional attribute(Primary6Intensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A002a")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributePrimary6IntensityInAttributeList_35(); + break; + case 36: + ChipLogProgress(chipTool, " ***** Test Step 36 : Read the optional attribute(WhitePointX) in AttributeList\n"); + if (ShouldSkip("CC.S.A0030")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeWhitePointXInAttributeList_36(); + break; + case 37: + ChipLogProgress(chipTool, " ***** Test Step 37 : Read the optional attribute(WhitePointY) in AttributeList\n"); + if (ShouldSkip("CC.S.A0031")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeWhitePointYInAttributeList_37(); + break; + case 38: + ChipLogProgress(chipTool, " ***** Test Step 38 : Read the optional attribute(ColorPointRX) in AttributeList\n"); + if (ShouldSkip("CC.S.A0032")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointRXInAttributeList_38(); + break; + case 39: + ChipLogProgress(chipTool, " ***** Test Step 39 : Read the optional attribute(ColorPointRY) in AttributeList\n"); + if (ShouldSkip("CC.S.A0033")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointRYInAttributeList_39(); + break; + case 40: + ChipLogProgress(chipTool, " ***** Test Step 40 : Read the optional attribute(ColorPointRIntensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0034")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointRIntensityInAttributeList_40(); + break; + case 41: + ChipLogProgress(chipTool, " ***** Test Step 41 : Read the optional attribute(ColorPointGX) in AttributeList\n"); + if (ShouldSkip("CC.S.A0036")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointGXInAttributeList_41(); + break; + case 42: + ChipLogProgress(chipTool, " ***** Test Step 42 : Read the optional attribute(ColorPointGY) in AttributeList\n"); + if (ShouldSkip("CC.S.A0037")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointGYInAttributeList_42(); + break; + case 43: + ChipLogProgress(chipTool, " ***** Test Step 43 : Read the optional attribute(ColorPointGIntensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A0038")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointGIntensityInAttributeList_43(); + break; + case 44: + ChipLogProgress(chipTool, " ***** Test Step 44 : Read the optional attribute(ColorPointBX) in AttributeList\n"); + if (ShouldSkip("CC.S.A003a")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointBXInAttributeList_44(); + break; + case 45: + ChipLogProgress(chipTool, " ***** Test Step 45 : Read the optional attribute(ColorPointBY) in AttributeList\n"); + if (ShouldSkip("CC.S.A003b")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointBYInAttributeList_45(); + break; + case 46: + ChipLogProgress(chipTool, " ***** Test Step 46 : Read the optional attribute(ColorPointBIntensity) in AttributeList\n"); + if (ShouldSkip("CC.S.A003c")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorPointBIntensityInAttributeList_46(); + break; + case 47: + ChipLogProgress(chipTool, " ***** Test Step 47 : Read the optional attribute(EnhancedCurrentHue) in AttributeList\n"); + if (ShouldSkip("CC.S.A4000")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_47(); + break; + case 48: + ChipLogProgress(chipTool, " ***** Test Step 48 : Read the optional attribute(ColorLoopActive) in AttributeList\n"); + if (ShouldSkip("CC.S.A4002")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorLoopActiveInAttributeList_48(); + break; + case 49: + ChipLogProgress(chipTool, " ***** Test Step 49 : Read the optional attribute(ColorLoopDirection) in AttributeList\n"); + if (ShouldSkip("CC.S.A4003")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_49(); + break; + case 50: + ChipLogProgress(chipTool, " ***** Test Step 50 : Read the optional attribute(ColorLoopTime) in AttributeList\n"); + if (ShouldSkip("CC.S.A4004")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeColorLoopTimeInAttributeList_50(); + break; + case 51: ChipLogProgress( - chipTool, " ***** Test Step 21 : Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList\n"); + chipTool, " ***** Test Step 51 : Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4005")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_21(); + err = TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_51(); break; - case 22: + case 52: ChipLogProgress( - chipTool, " ***** Test Step 22 : Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList\n"); + chipTool, " ***** Test Step 52 : Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4006")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_22(); + err = TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_52(); break; - case 23: + case 53: ChipLogProgress( - chipTool, " ***** Test Step 23 : Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList\n"); + chipTool, " ***** Test Step 53 : Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400b")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_23(); + err = TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_53(); break; - case 24: + case 54: ChipLogProgress( - chipTool, " ***** Test Step 24 : Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList\n"); + chipTool, " ***** Test Step 54 : Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400c")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_24(); + err = TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_54(); break; - case 25: + case 55: ChipLogProgress( - chipTool, " ***** Test Step 25 : Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList\n"); + chipTool, " ***** Test Step 55 : Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400d")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_25(); + err = TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_55(); break; - case 26: + case 56: ChipLogProgress( - chipTool, " ***** Test Step 26 : Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList\n"); + chipTool, " ***** Test Step 56 : Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A4010")) { NextTest(); return; } - err = TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_26(); + err = TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_56(); break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Read the global attribute: EventList\n"); - err = TestReadTheGlobalAttributeEventList_27(); + case 57: + ChipLogProgress(chipTool, " ***** Test Step 57 : Read the global attribute: EventList\n"); + err = TestReadTheGlobalAttributeEventList_57(); break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Read the optional command(MoveToHue) in AcceptedCommandList\n"); + case 58: + ChipLogProgress(chipTool, " ***** Test Step 58 : Read the optional command(MoveToHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C00.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_28(); + err = TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_58(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Read the optional command(MoveHue) in AcceptedCommandList\n"); + case 59: + ChipLogProgress(chipTool, " ***** Test Step 59 : Read the optional command(MoveHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C01.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveHueInAcceptedCommandList_29(); + err = TestReadTheOptionalCommandMoveHueInAcceptedCommandList_59(); break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Read the optional command(StepHue) in AcceptedCommandList\n"); + case 60: + ChipLogProgress(chipTool, " ***** Test Step 60 : Read the optional command(StepHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C02.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepHueInAcceptedCommandList_30(); + err = TestReadTheOptionalCommandStepHueInAcceptedCommandList_60(); break; - case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : Read the optional command(MoveToSaturation) in AcceptedCommandList\n"); + case 61: + ChipLogProgress(chipTool, " ***** Test Step 61 : Read the optional command(MoveToSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C03.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_31(); + err = TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_61(); break; - case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Read the optional command(MoveSaturation) in AcceptedCommandList\n"); + case 62: + ChipLogProgress(chipTool, " ***** Test Step 62 : Read the optional command(MoveSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C04.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_32(); + err = TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_62(); break; - case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Read the optional command(StepSaturation) in AcceptedCommandList\n"); + case 63: + ChipLogProgress(chipTool, " ***** Test Step 63 : Read the optional command(StepSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C05.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_33(); + err = TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_63(); break; - case 34: + case 64: ChipLogProgress( - chipTool, " ***** Test Step 34 : Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 64 : Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C06.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_34(); + err = TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_64(); break; - case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : Read the optional command(MoveToColor) in AcceptedCommandList\n"); + case 65: + ChipLogProgress(chipTool, " ***** Test Step 65 : Read the optional command(MoveToColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C07.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_35(); + err = TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_65(); break; - case 36: - ChipLogProgress(chipTool, " ***** Test Step 36 : Read the optional command(MoveColor) in AcceptedCommandList\n"); + case 66: + ChipLogProgress(chipTool, " ***** Test Step 66 : Read the optional command(MoveColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C08.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveColorInAcceptedCommandList_36(); + err = TestReadTheOptionalCommandMoveColorInAcceptedCommandList_66(); break; - case 37: - ChipLogProgress(chipTool, " ***** Test Step 37 : Read the optional command(StepColor) in AcceptedCommandList\n"); + case 67: + ChipLogProgress(chipTool, " ***** Test Step 67 : Read the optional command(StepColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C09.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepColorInAcceptedCommandList_37(); + err = TestReadTheOptionalCommandStepColorInAcceptedCommandList_67(); break; - case 38: + case 68: ChipLogProgress( - chipTool, " ***** Test Step 38 : Read the optional command(MoveToColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 68 : Read the optional command(MoveToColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C0a.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_38(); + err = TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_68(); break; - case 39: + case 69: ChipLogProgress( - chipTool, " ***** Test Step 39 : Read the optional command(EnhancedMoveToHue) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 69 : Read the optional command(EnhancedMoveToHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C40.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_39(); + err = TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_69(); break; - case 40: - ChipLogProgress(chipTool, " ***** Test Step 40 : Read the optional command(EnhancedMoveHue) in AcceptedCommandList\n"); + case 70: + ChipLogProgress(chipTool, " ***** Test Step 70 : Read the optional command(EnhancedMoveHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C41.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_40(); + err = TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_70(); break; - case 41: - ChipLogProgress(chipTool, " ***** Test Step 41 : Read the optional command(EnhancedStepHue) in AcceptedCommandList\n"); + case 71: + ChipLogProgress(chipTool, " ***** Test Step 71 : Read the optional command(EnhancedStepHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C42.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_41(); + err = TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_71(); break; - case 42: + case 72: ChipLogProgress(chipTool, - " ***** Test Step 42 : Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList\n"); + " ***** Test Step 72 : Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C43.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_42(); + err = TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_72(); break; - case 43: - ChipLogProgress(chipTool, " ***** Test Step 43 : Read the optional command(ColorLoopSet) in AcceptedCommandList\n"); + case 73: + ChipLogProgress(chipTool, " ***** Test Step 73 : Read the optional command(ColorLoopSet) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C44.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_43(); + err = TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_73(); break; - case 44: - ChipLogProgress(chipTool, " ***** Test Step 44 : Read the optional command(StopMoveStep) in AcceptedCommandList\n"); + case 74: + ChipLogProgress(chipTool, " ***** Test Step 74 : Read the optional command(StopMoveStep) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_44(); + err = TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_74(); break; - case 45: + case 75: ChipLogProgress( - chipTool, " ***** Test Step 45 : Read the optional command(MoveColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 75 : Read the optional command(MoveColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C4b.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_45(); + err = TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_75(); break; - case 46: + case 76: ChipLogProgress( - chipTool, " ***** Test Step 46 : Read the optional command(StepColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 76 : Read the optional command(StepColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C4c.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_46(); + err = TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_76(); break; - case 47: - ChipLogProgress(chipTool, " ***** Test Step 47 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_47(); + case 77: + ChipLogProgress(chipTool, " ***** Test Step 77 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_77(); break; } @@ -8722,6 +8961,96 @@ class Test_TC_CC_1_1 : public TestCommandBridge { case 47: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 49: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 50: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 51: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 52: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 53: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 54: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 55: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 56: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 57: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 58: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 59: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 60: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 61: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 62: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 63: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 64: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 65: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 66: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 67: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 68: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 69: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 70: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 71: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 72: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 73: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 74: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 75: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 76: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 77: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -8735,7 +9064,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 48; + const uint16_t mTestCount = 78; chip::Optional mNodeId; chip::Optional mCluster; @@ -9091,7 +9420,637 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_17() + CHIP_ERROR TestReadTheOptionalAttributeNumberOfPrimariesInAttributeList_17() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(NumberOfPrimaries) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 16UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary1XInAttributeList_18() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary1X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 17UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary1YInAttributeList_19() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary1Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 18UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary1IntensityInAttributeList_20() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary1Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 19UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary2XInAttributeList_21() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary2X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 21UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary2YInAttributeList_22() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary2Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 22UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary2IntensityInAttributeList_23() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary2Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 23UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary3XInAttributeList_24() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary3X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 25UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary3YInAttributeList_25() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary3Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 26UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary3IntensityInAttributeList_26() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary3Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 27UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary4XInAttributeList_27() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary4X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 32UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary4YInAttributeList_28() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary4Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 33UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary4IntensityInAttributeList_29() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary4Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 34UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary5XInAttributeList_30() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary5X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 36UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary5YInAttributeList_31() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary5Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 37UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary5IntensityInAttributeList_32() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary5Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 38UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary6XInAttributeList_33() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary6X) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 40UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary6YInAttributeList_34() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary6Y) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 41UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributePrimary6IntensityInAttributeList_35() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(Primary6Intensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 42UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeWhitePointXInAttributeList_36() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(WhitePointX) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 48UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeWhitePointYInAttributeList_37() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(WhitePointY) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 49UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointRXInAttributeList_38() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointRX) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 50UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointRYInAttributeList_39() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointRY) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 51UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointRIntensityInAttributeList_40() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointRIntensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 52UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointGXInAttributeList_41() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointGX) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 54UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointGYInAttributeList_42() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointGY) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 55UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointGIntensityInAttributeList_43() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointGIntensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 56UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointBXInAttributeList_44() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointBX) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 58UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointBYInAttributeList_45() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointBY) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 59UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeColorPointBIntensityInAttributeList_46() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(ColorPointBIntensity) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 60UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_47() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9112,7 +10071,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopActiveInAttributeList_18() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopActiveInAttributeList_48() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9133,7 +10092,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_19() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_49() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9154,7 +10113,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopTimeInAttributeList_20() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopTimeInAttributeList_50() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9175,7 +10134,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_21() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_51() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9196,7 +10155,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_22() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_52() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9217,7 +10176,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_23() + CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_53() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9238,7 +10197,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_24() + CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_54() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9259,7 +10218,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_25() + CHIP_ERROR TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_55() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9280,7 +10239,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_26() + CHIP_ERROR TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_56() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9301,7 +10260,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeEventList_27() + CHIP_ERROR TestReadTheGlobalAttributeEventList_57() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9325,7 +10284,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_28() + CHIP_ERROR TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_58() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9346,7 +10305,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveHueInAcceptedCommandList_29() + CHIP_ERROR TestReadTheOptionalCommandMoveHueInAcceptedCommandList_59() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9367,7 +10326,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepHueInAcceptedCommandList_30() + CHIP_ERROR TestReadTheOptionalCommandStepHueInAcceptedCommandList_60() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9388,7 +10347,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_31() + CHIP_ERROR TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_61() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9409,7 +10368,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_32() + CHIP_ERROR TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_62() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9430,7 +10389,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_33() + CHIP_ERROR TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_63() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9451,7 +10410,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_34() + CHIP_ERROR TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_64() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9472,7 +10431,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_35() + CHIP_ERROR TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_65() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9493,7 +10452,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveColorInAcceptedCommandList_36() + CHIP_ERROR TestReadTheOptionalCommandMoveColorInAcceptedCommandList_66() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9514,7 +10473,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepColorInAcceptedCommandList_37() + CHIP_ERROR TestReadTheOptionalCommandStepColorInAcceptedCommandList_67() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9535,7 +10494,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_38() + CHIP_ERROR TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_68() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9556,7 +10515,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_39() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_69() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9577,7 +10536,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_40() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_70() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9598,7 +10557,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_41() + CHIP_ERROR TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_71() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9619,7 +10578,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_42() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_72() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9640,7 +10599,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_43() + CHIP_ERROR TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_73() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9661,7 +10620,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_44() + CHIP_ERROR TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_74() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9682,7 +10641,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_45() + CHIP_ERROR TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_75() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9703,7 +10662,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_46() + CHIP_ERROR TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_76() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9724,7 +10683,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_47() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_77() { MTRBaseDevice * device = GetDevice("alpha"); @@ -27953,24 +28912,37 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { err = TestThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads AcceptedCommandList from DUT\n"); - if (ShouldSkip("( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9")) { + ChipLogProgress(chipTool, + " ***** Test Step 16 : TH reads EventList attribute from DUT. 1.The list MAY contain values in the Manufacturer " + "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " + "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " + "range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is " + "the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && DGETH.S.Afffa")) { NextTest(); return; } - err = TestThReadsAcceptedCommandListFromDut_16(); + err = TestThReadsEventListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); break; case 17: ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads AcceptedCommandList from DUT\n"); - if (ShouldSkip("DGETH.S.Afff9 && !DGETH.S.F00 && !DGETH.S.F01")) { + if (ShouldSkip("( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9")) { NextTest(); return; } err = TestThReadsAcceptedCommandListFromDut_17(); break; case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads AcceptedCommandList from DUT\n"); + if (ShouldSkip("DGETH.S.Afff9 && !DGETH.S.F00 && !DGETH.S.F01")) { + NextTest(); + return; + } + err = TestThReadsAcceptedCommandListFromDut_18(); + break; + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 19 : TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -27980,11 +28952,11 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); + err = TestThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the " + " ***** Test Step 20 : TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " @@ -27993,20 +28965,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); - break; - case 20: - ChipLogProgress(chipTool, - " ***** Test Step 20 : TH reads EventList attribute from DUT. 1.The list MAY contain values in the Manufacturer " - "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " - "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " - "range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is " - "the allowed MEI range (0x0001 - 0xFFF1)\n"); - if (ShouldSkip("PICS_USER_PROMPT && DGETH.S.Afffa")) { - NextTest(); - return; - } - err = TestThReadsEventListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20(); + err = TestThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20(); break; } @@ -28460,7 +29419,18 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsAcceptedCommandListFromDut_16() + CHIP_ERROR + TestThReadsEventListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28483,7 +29453,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAcceptedCommandListFromDut_17() + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28510,7 +29480,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { } CHIP_ERROR - TestThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + TestThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -28521,18 +29491,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { } CHIP_ERROR - TestThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() - { - - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); - } - - CHIP_ERROR - TestThReadsEventListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20() + TestThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -42755,35 +43714,35 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !KEYPADINPUT.S.NV && KEYPADINPUT.S.LK && !KEYPADINPUT.S.NK ")) { + if (ShouldSkip(" !KEYPADINPUT.S.F00 && KEYPADINPUT.S.F01 && !KEYPADINPUT.S.F02 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not\n"); - if (ShouldSkip("KEYPADINPUT.S.NV")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given (KEYPADINPUT.S.F00(NV)) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.F00")) { NextTest(); return; } - err = TestGivenKeypadinputsnvFeatureMapBitMaskIsSetOrNot_3(); + err = TestGivenKeypadinputsf00nvFeatureMapBitMaskIsSetOrNot_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not\n"); - if (ShouldSkip("KEYPADINPUT.S.LK")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Given (KEYPADINPUT.S.F01(LK)) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.F01")) { NextTest(); return; } - err = TestGivenKeypadinputslkFeatureMapBitMaskIsSetOrNot_4(); + err = TestGivenKeypadinputsf01lkFeatureMapBitMaskIsSetOrNot_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not\n"); - if (ShouldSkip("KEYPADINPUT.S.NK")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Given (KEYPADINPUT.S.F02(NK)) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.F02")) { NextTest(); return; } - err = TestGivenKeypadinputsnkFeatureMapBitMaskIsSetOrNot_5(); + err = TestGivenKeypadinputsf02nkFeatureMapBitMaskIsSetOrNot_5(); break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: AttributeList\n"); @@ -42918,7 +43877,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenKeypadinputsnvFeatureMapBitMaskIsSetOrNot_3() + CHIP_ERROR TestGivenKeypadinputsf00nvFeatureMapBitMaskIsSetOrNot_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42926,7 +43885,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not Error: %@", err); + NSLog(@"Given (KEYPADINPUT.S.F00(NV)) FeatureMap bit mask is set or not Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -42937,7 +43896,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenKeypadinputslkFeatureMapBitMaskIsSetOrNot_4() + CHIP_ERROR TestGivenKeypadinputsf01lkFeatureMapBitMaskIsSetOrNot_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42945,7 +43904,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not Error: %@", err); + NSLog(@"Given (KEYPADINPUT.S.F01(LK)) FeatureMap bit mask is set or not Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -42956,7 +43915,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenKeypadinputsnkFeatureMapBitMaskIsSetOrNot_5() + CHIP_ERROR TestGivenKeypadinputsf02nkFeatureMapBitMaskIsSetOrNot_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42964,7 +43923,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not Error: %@", err); + NSLog(@"Given (KEYPADINPUT.S.F02(NK)) FeatureMap bit mask is set or not Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -43116,7 +44075,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("APPLAUNCHER.S.AP")) { + if (ShouldSkip("APPLAUNCHER.S.F00")) { NextTest(); return; } @@ -43124,7 +44083,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !APPLAUNCHER.S.AP ")) { + if (ShouldSkip(" !APPLAUNCHER.S.F00 ")) { NextTest(); return; } @@ -43506,19 +44465,20 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !MEDIAINPUT.S.NU ")) { + if (ShouldSkip(" !MEDIAINPUT.S.F00 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Given MEDIAINPUT.S.NU ensure featuremap has the correct bit set\n"); - if (ShouldSkip("MEDIAINPUT.S.NU")) { + ChipLogProgress( + chipTool, " ***** Test Step 3 : Given MEDIAINPUT.S.F00(NU) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("MEDIAINPUT.S.F00")) { NextTest(); return; } - err = TestGivenMediainputsnuEnsureFeaturemapHasTheCorrectBitSet_3(); + err = TestGivenMediainputsf00nuEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); @@ -43669,7 +44629,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenMediainputsnuEnsureFeaturemapHasTheCorrectBitSet_3() + CHIP_ERROR TestGivenMediainputsf00nuEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -43677,7 +44637,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given MEDIAINPUT.S.NU ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given MEDIAINPUT.S.F00(NU) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -44182,27 +45142,27 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("( !CHANNEL.S.CL && !CHANNEL.S.LI )")) { + if (ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Given CHANNEL.S.CL ensure featuremap has the correct bit set\n"); - if (ShouldSkip("CHANNEL.S.CL")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given CCHANNEL.S.F00(CL) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CHANNEL.S.F00")) { NextTest(); return; } - err = TestGivenChannelsclEnsureFeaturemapHasTheCorrectBitSet_3(); + err = TestGivenCchannelsf00clEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Given CHANNEL.S.LI ensure featuremap has the correct bit set\n"); - if (ShouldSkip("CHANNEL.S.LI")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Given CHANNEL.S.F01(LI) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CHANNEL.S.F01")) { NextTest(); return; } - err = TestGivenChannelsliEnsureFeaturemapHasTheCorrectBitSet_4(); + err = TestGivenChannelsf01liEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); @@ -44259,7 +45219,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : Read the global attribute: GeneratedCommandList\n"); - if (ShouldSkip("( !CHANNEL.S.CL && !CHANNEL.S.LI )")) { + if (ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )")) { NextTest(); return; } @@ -44267,7 +45227,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { break; case 13: ChipLogProgress(chipTool, " ***** Test Step 13 : Read the global attribute: GeneratedCommandList\n"); - if (ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI")) { + if (ShouldSkip("CHANNEL.S.F00 || CHANNEL.S.F01")) { NextTest(); return; } @@ -44409,7 +45369,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenChannelsclEnsureFeaturemapHasTheCorrectBitSet_3() + CHIP_ERROR TestGivenCchannelsf00clEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44417,7 +45377,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given CHANNEL.S.CL ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given CCHANNEL.S.F00(CL) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -44428,7 +45388,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenChannelsliEnsureFeaturemapHasTheCorrectBitSet_4() + CHIP_ERROR TestGivenChannelsf01liEnsureFeaturemapHasTheCorrectBitSet_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44436,7 +45396,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given CHANNEL.S.LI ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given CHANNEL.S.F01(LI) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -44717,27 +45677,29 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !MEDIAPLAYBACK.S.AS && !MEDIAPLAYBACK.S.VS ")) { + if (ShouldSkip(" !MEDIAPLAYBACK.S.F00 && !MEDIAPLAYBACK.S.F01 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.AS")) { + ChipLogProgress( + chipTool, " ***** Test Step 3 : Given MEDIAPLAYBACK.S.F00(AS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.F00")) { NextTest(); return; } - err = TestGivenMediaplaybacksasEnsureFeaturemapHasTheCorrectBitSet_3(); + err = TestGivenMediaplaybacksf00asEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.VS")) { + ChipLogProgress( + chipTool, " ***** Test Step 4 : Given MEDIAPLAYBACK.S.F01(VS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.F01")) { NextTest(); return; } - err = TestGivenMediaplaybacksvsEnsureFeaturemapHasTheCorrectBitSet_4(); + err = TestGivenMediaplaybacksf01vsEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); @@ -45023,7 +45985,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenMediaplaybacksasEnsureFeaturemapHasTheCorrectBitSet_3() + CHIP_ERROR TestGivenMediaplaybacksf00asEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45031,7 +45993,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given MEDIAPLAYBACK.S.F00(AS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -45042,7 +46004,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenMediaplaybacksvsEnsureFeaturemapHasTheCorrectBitSet_4() + CHIP_ERROR TestGivenMediaplaybacksf01vsEnsureFeaturemapHasTheCorrectBitSet_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45050,7 +46012,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given MEDIAPLAYBACK.S.F01(VS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -45499,23 +46461,35 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); + if (ShouldSkip("AUDIOOUTPUT.S.F00")) { + NextTest(); + return; + } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); + if (ShouldSkip(" !AUDIOOUTPUT.S.F00 ")) { + NextTest(); + return; + } + err = TestReadTheGlobalAttributeFeatureMap_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: EventList\n"); - err = TestReadTheGlobalAttributeEventList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: EventList\n"); + err = TestReadTheGlobalAttributeEventList_7(); break; } @@ -45549,6 +46523,9 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -45562,7 +46539,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 8; chip::Optional mNodeId; chip::Optional mCluster; @@ -45614,16 +46591,32 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 3UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterAudioOutput alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_3() + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45651,7 +46644,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_4() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45672,7 +46665,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_5() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45696,7 +46689,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeEventList_6() + CHIP_ERROR TestReadTheGlobalAttributeEventList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46021,76 +47014,6 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { } }; -class Test_TC_TGTNAV_8_2 : public TestCommandBridge { -public: - // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_TGTNAV_8_2() - : TestCommandBridge("Test_TC_TGTNAV_8_2") - , mTestIndex(0) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - - ~Test_TC_TGTNAV_8_2() {} - - /////////// TestCommand Interface ///////// - void NextTest() override - { - CHIP_ERROR err = CHIP_NO_ERROR; - - if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_TGTNAV_8_2\n"); - } - - if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_TGTNAV_8_2\n"); - SetCommandExitStatus(CHIP_NO_ERROR); - return; - } - - Wait(); - - // Ensure we increment mTestIndex before we start running the relevant - // command. That way if we lose the timeslice after we send the message - // but before our function call returns, we won't end up with an - // incorrect mTestIndex value observed when we get the response. - switch (mTestIndex++) { - } - - if (CHIP_NO_ERROR != err) { - ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); - SetCommandExitStatus(err); - } - } - - void OnStatusUpdate(const chip::app::StatusIB & status) override - { - switch (mTestIndex - 1) { - } - - // Go on to the next test. - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 0; - - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; -}; - class Test_TC_APBSC_1_10 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced @@ -46513,7 +47436,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("( !CONTENTLAUNCHER.S.CS && !CONTENTLAUNCHER.S.UP )")) { + if (ShouldSkip("( !CONTENTLAUNCHER.S.F00 && !CONTENTLAUNCHER.S.F01 )")) { NextTest(); return; } @@ -46521,21 +47444,21 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { break; case 3: ChipLogProgress( - chipTool, " ***** Test Step 3 : Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.CS")) { + chipTool, " ***** Test Step 3 : Given CONTENTLAUNCHER.S.F00 (CS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.F00")) { NextTest(); return; } - err = TestGivenContentlauncherscsEnsureFeaturemapHasTheCorrectBitSet_3(); + err = TestGivenContentlaunchersf00CsEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: ChipLogProgress( - chipTool, " ***** Test Step 4 : Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.UP")) { + chipTool, " ***** Test Step 4 : Given CONTENTLAUNCHER.S.F01(UP) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.F01")) { NextTest(); return; } - err = TestGivenContentlaunchersupEnsureFeaturemapHasTheCorrectBitSet_4(); + err = TestGivenContentlaunchersf01upEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); @@ -46707,7 +47630,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenContentlauncherscsEnsureFeaturemapHasTheCorrectBitSet_3() + CHIP_ERROR TestGivenContentlaunchersf00CsEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46715,7 +47638,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given CONTENTLAUNCHER.S.F00 (CS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -46726,7 +47649,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestGivenContentlaunchersupEnsureFeaturemapHasTheCorrectBitSet_4() + CHIP_ERROR TestGivenContentlaunchersf01upEnsureFeaturemapHasTheCorrectBitSet_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46734,7 +47657,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set Error: %@", err); + NSLog(@"Given CONTENTLAUNCHER.S.F01(UP) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -47328,7 +48251,7 @@ class Test_TC_KEYPADINPUT_3_2 : public TestCommandBridge { break; case 1: ChipLogProgress(chipTool, " ***** Test Step 1 : TH sends CEC Settings Keys(0x0A) to DUT\n"); - if (ShouldSkip("KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp")) { + if (ShouldSkip("KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp")) { NextTest(); return; } @@ -47336,7 +48259,7 @@ class Test_TC_KEYPADINPUT_3_2 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH sends CEC Home Keys(0x09) to DUT\n"); - if (ShouldSkip("KEYPADINPUT.S.LK && KEYPADINPUT.S.C00.Rsp")) { + if (ShouldSkip("KEYPADINPUT.S.F01 && KEYPADINPUT.S.C00.Rsp")) { NextTest(); return; } @@ -47487,7 +48410,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 1: ChipLogProgress(chipTool, " ***** Test Step 1 : Send Numbers1\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47495,7 +48418,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Send Numbers2\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47503,7 +48426,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Send Numbers3\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47511,7 +48434,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Send Numbers4\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47519,7 +48442,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Send Numbers5\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47527,7 +48450,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Send Numbers6\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47535,7 +48458,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 7: ChipLogProgress(chipTool, " ***** Test Step 7 : Send Numbers7\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47543,7 +48466,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : Send Numbers8\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -47551,7 +48474,7 @@ class Test_TC_KEYPADINPUT_3_3 : public TestCommandBridge { break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Send Numbers9\n"); - if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.NK")) { + if (ShouldSkip("KEYPADINPUT.S.C00.Rsp && KEYPADINPUT.S.F02")) { NextTest(); return; } @@ -53086,12 +54009,16 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { err = TestThReadsTheOptionalAttributeOnModeInAttributeListFromTheDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: EventList\n"); + err = TestReadTheGlobalAttributeEventList_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_9(); break; } @@ -53131,6 +54058,9 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -53144,7 +54074,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 10; chip::Optional mNodeId; chip::Optional mCluster; @@ -53303,7 +54233,31 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_7() + CHIP_ERROR TestReadTheGlobalAttributeEventList_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterModeSelect alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeEventListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: EventList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("EventList", [actualValue count], static_cast(0))); + } + + VerifyOrReturn(CheckConstraintType("eventList", "list", "list")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -53324,7 +54278,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_8() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65285,15 +66239,15 @@ class Test_TC_SC_5_1 : public TestCommandBridge { ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySecurityPolicy = [NSNumber numberWithUnsignedChar:0U]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey0 = - [[NSData alloc] initWithBytes:"0x00000000000000000000000000000001" length:34]; + [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime0 = [NSNumber numberWithUnsignedLongLong:111ULL]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey1 = - [[NSData alloc] initWithBytes:"0x00000000000000000000000000000002" length:34]; + [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime1 = [NSNumber numberWithUnsignedLongLong:222ULL]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey2 = - [[NSData alloc] initWithBytes:"0x00000000000000000000000000000003" length:34]; + [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:333ULL]; @@ -65335,15 +66289,15 @@ class Test_TC_SC_5_1 : public TestCommandBridge { ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySecurityPolicy = [NSNumber numberWithUnsignedChar:0U]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey0 = - [[NSData alloc] initWithBytes:"0xd0d1d2d3d4d5d6d7d8d9dadbdcdddedf" length:34]; + [[NSData alloc] initWithBytes:"\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime0 = [NSNumber numberWithUnsignedLongLong:2220000ULL]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey1 = - [[NSData alloc] initWithBytes:"0xd1d1d2d3d4d5d6d7d8d9dadbdcdddedf" length:34]; + [[NSData alloc] initWithBytes:"\xd1\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime1 = [NSNumber numberWithUnsignedLongLong:2220001ULL]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey2 = - [[NSData alloc] initWithBytes:"0xd2d1d2d3d4d5d6d7d8d9dadbdcdddedf" length:34]; + [[NSData alloc] initWithBytes:"\xd2\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:2220002ULL]; @@ -75841,7 +76795,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : 3a: TH reads OperationalStatus attribute's bit 0..1\n"); - if (ShouldSkip("WNCV.S.A000a")) { + if (ShouldSkip("WNCV.S.A000a && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -75850,7 +76804,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 15: ChipLogProgress( chipTool, " ***** Test Step 15 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); - if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00")) { + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -75859,7 +76813,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 16: ChipLogProgress( chipTool, " ***** Test Step 16 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); - if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00")) { + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -75868,7 +76822,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 17: ChipLogProgress( chipTool, " ***** Test Step 17 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); - if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01")) { + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -75877,95 +76831,103 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 18: ChipLogProgress( chipTool, " ***** Test Step 18 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); - if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01")) { + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY")) { NextTest(); return; } err = Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : 3a2: DUT updates its attributes\n"); - err = Test3a2DutUpdatesItsAttributes_19(); + ChipLogProgress(chipTool, " ***** Test Step 19 : 3a: TH reads OperationalStatus attribute from DUT\n"); + if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3aThReadsOperationalStatusAttributeFromDut_19(); break; case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : 3a2: DUT updates its attributes\n"); + err = Test3a2DutUpdatesItsAttributes_20(); + break; + case 21: ChipLogProgress( - chipTool, " ***** Test Step 20 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 21 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e")) { NextTest(); return; } - err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20(); + err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); + " ***** Test Step 22 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008")) { NextTest(); return; } - err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21(); + err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_22(); break; - case 22: + case 23: ChipLogProgress( - chipTool, " ***** Test Step 22 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 23 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f")) { NextTest(); return; } - err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22(); + err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); + " ***** Test Step 24 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009")) { NextTest(); return; } - err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23(); + err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_24(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : 4a: TH sends a StopMotion command to DUT\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : 4a: TH sends a StopMotion command to DUT\n"); if (ShouldSkip("WNCV.S.C02.Rsp")) { NextTest(); return; } - err = Test4aThSendsAStopMotionCommandToDut_24(); + err = Test4aThSendsAStopMotionCommandToDut_25(); break; - case 25: + case 26: ChipLogProgress( - chipTool, " ***** Test Step 25 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); - err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25(); + chipTool, " ***** Test Step 26 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); + err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_26(); break; - case 26: + case 27: ChipLogProgress( - chipTool, " ***** Test Step 26 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); + chipTool, " ***** Test Step 27 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : 5a: TH waits for x seconds attributes update on the device\n"); - err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27(); + err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : 5a: TH waits for x seconds attributes update on the device\n"); + err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_28(); + break; + case 29: ChipLogProgress( - chipTool, " ***** Test Step 28 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 29 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b")) { NextTest(); return; } - err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28(); + err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_29(); break; - case 29: + case 30: ChipLogProgress( - chipTool, " ***** Test Step 29 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 30 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c")) { NextTest(); return; } - err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29(); + err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_30(); break; } @@ -76068,6 +77030,9 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -76081,7 +77046,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 30; + const uint16_t mTestCount = 31; chip::Optional mNodeId; chip::Optional mCluster; @@ -76464,7 +77429,17 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3a2DutUpdatesItsAttributes_19() + CHIP_ERROR Test3aThReadsOperationalStatusAttributeFromDut_19() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR Test3a2DutUpdatesItsAttributes_20() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -76472,7 +77447,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20() + CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76500,7 +77475,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21() + CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76527,7 +77502,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22() + CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76555,7 +77530,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23() + CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76582,7 +77557,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_24() + CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76600,7 +77575,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25() + CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_26() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -76608,7 +77583,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26() + CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76631,7 +77606,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27() + CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_28() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -76639,7 +77614,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28() + CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76666,7 +77641,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29() + CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -76829,7 +77804,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : 3a: TH reads OperationalStatus attribute's bit 0..1\n"); - if (ShouldSkip("WNCV.S.A000a")) { + if (ShouldSkip("WNCV.S.A000a && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -76838,7 +77813,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 15: ChipLogProgress( chipTool, " ***** Test Step 15 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); - if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00")) { + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -76847,7 +77822,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 16: ChipLogProgress( chipTool, " ***** Test Step 16 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); - if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00")) { + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -76856,7 +77831,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 17: ChipLogProgress( chipTool, " ***** Test Step 17 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); - if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01")) { + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01 && PICS_SDK_CI_ONLY")) { NextTest(); return; } @@ -76865,95 +77840,103 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 18: ChipLogProgress( chipTool, " ***** Test Step 18 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); - if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01")) { + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01 && PICS_SDK_CI_ONLY")) { NextTest(); return; } err = Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : 3a2: DUT updates its attributes\n"); - err = Test3a2DutUpdatesItsAttributes_19(); + ChipLogProgress(chipTool, " ***** Test Step 19 : 3a: TH reads OperationalStatus attribute from DUT\n"); + if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3aThReadsOperationalStatusAttributeFromDut_19(); break; case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : 3a2: DUT updates its attributes\n"); + err = Test3a2DutUpdatesItsAttributes_20(); + break; + case 21: ChipLogProgress( - chipTool, " ***** Test Step 20 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 21 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e")) { NextTest(); return; } - err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20(); + err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); + " ***** Test Step 22 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008")) { NextTest(); return; } - err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21(); + err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_22(); break; - case 22: + case 23: ChipLogProgress( - chipTool, " ***** Test Step 22 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 23 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f")) { NextTest(); return; } - err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22(); + err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); + " ***** Test Step 24 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009")) { NextTest(); return; } - err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23(); + err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_24(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : 4a: TH sends a StopMotion command to DUT\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : 4a: TH sends a StopMotion command to DUT\n"); if (ShouldSkip("WNCV.S.C02.Rsp")) { NextTest(); return; } - err = Test4aThSendsAStopMotionCommandToDut_24(); + err = Test4aThSendsAStopMotionCommandToDut_25(); break; - case 25: + case 26: ChipLogProgress( - chipTool, " ***** Test Step 25 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); - err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25(); + chipTool, " ***** Test Step 26 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); + err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_26(); break; - case 26: + case 27: ChipLogProgress( - chipTool, " ***** Test Step 26 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); + chipTool, " ***** Test Step 27 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : 5a: TH waits for x seconds attributes update on the device\n"); - err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27(); + err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : 5a: TH waits for x seconds attributes update on the device\n"); + err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_28(); + break; + case 29: ChipLogProgress( - chipTool, " ***** Test Step 28 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 29 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b")) { NextTest(); return; } - err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28(); + err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_29(); break; - case 29: + case 30: ChipLogProgress( - chipTool, " ***** Test Step 29 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 30 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c")) { NextTest(); return; } - err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29(); + err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_30(); break; } @@ -77056,6 +78039,9 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -77069,7 +78055,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 30; + const uint16_t mTestCount = 31; chip::Optional mNodeId; chip::Optional mCluster; @@ -77452,7 +78438,17 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3a2DutUpdatesItsAttributes_19() + CHIP_ERROR Test3aThReadsOperationalStatusAttributeFromDut_19() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR Test3a2DutUpdatesItsAttributes_20() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -77460,7 +78456,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20() + CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77488,7 +78484,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21() + CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77515,7 +78511,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22() + CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77543,7 +78539,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23() + CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77570,7 +78566,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_24() + CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77588,7 +78584,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25() + CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_26() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -77596,7 +78592,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26() + CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77619,7 +78615,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27() + CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_28() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -77627,7 +78623,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28() + CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77654,7 +78650,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29() + CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -144914,7 +145910,6 @@ void registerCommandsTests(Commands & commands) make_unique(), make_unique(), make_unique(), - make_unique(), make_unique(), make_unique(), make_unique(), diff --git a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h index 9cfbd2002d3332..39a1b1b91f1eaa 100644 --- a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h @@ -2420,6 +2420,2804 @@ class Test_TC_LTIME_1_1_SimulatedSuite : public TestCommand } }; +class Test_TC_ILL_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_ILL_3_1_SimulatedSuite() : TestCommand("Test_TC_ILL_3_1_Simulated", 8) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ILL_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, "Read attribute: LightSensorType"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::LightSensorType::Id); + } + case 5: { + LogStep(5, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGSW_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGSW_3_2_SimulatedSuite() : TestCommand("Test_TC_DGSW_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGSW_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetWatermarks to TH"); + VerifyOrDo(!ShouldSkip("DGSW.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Commands::ResetWatermarks::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGETH_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGETH_3_2_SimulatedSuite() : TestCommand("Test_TC_DGETH_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGETH_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts to TH"); + VerifyOrDo(!ShouldSkip("DGETH.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGWIFI_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGWIFI_3_2_SimulatedSuite() : TestCommand("Test_TC_DGWIFI_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGWIFI_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_6_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_6_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_6_1_Simulated", 3) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WNCV_6_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends UpOrOpen command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id); + } + case 1: { + LogStep(1, "DUT sends DownOrClose command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id); + } + case 2: { + LogStep(2, "DUT sends StopMotion command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_7_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_7_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_7_1_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WNCV_7_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT"); + VerifyOrDo(!ShouldSkip("WNCV.C.C05.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id); + } + case 1: { + LogStep(1, "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT"); + VerifyOrDo(!ShouldSkip("WNCV.C.C08.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_3_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_3_4_SimulatedSuite() : TestCommand("Test_TC_CC_3_4_Simulated", 16) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_3_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToHue command to TH an Hue with _TransitionTime 300"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 5: { + LogStep(5, "DUT sends MoveHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 9: { + LogStep(9, "DUT sends StepHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepHue::Id); + } + case 10: { + LogStep(10, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 13: { + LogStep(13, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 14: { + LogStep(14, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 15: { + LogStep(15, "Over TransitionTime, DUT reads CurrentHue attribute from TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_4_5_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_4_5_SimulatedSuite() : TestCommand("Test_TC_CC_4_5_Simulated", 22) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_4_5_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToSaturation::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentSaturation attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads CurrentSaturation attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 5: { + LogStep(5, "DUT sends MoveSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 9: { + LogStep(9, "DUT sends StepSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepSaturation::Id); + } + case 10: { + LogStep(10, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 13: { + LogStep(13, "DUT sends MoveToHueAndSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHueAndSaturation::Id); + } + case 14: { + LogStep(14, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 21: { + LogStep(21, "Over TransitionTime, DUT reads CurrentSaturation attribute from TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_5_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_5_4_SimulatedSuite() : TestCommand("Test_TC_CC_5_4_Simulated", 25) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_5_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColor::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 3: { + LogStep(3, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 4: { + LogStep(4, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 7: { + LogStep(7, "DUT sends MoveColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColor::Id); + } + case 8: { + LogStep(8, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 9: { + LogStep(9, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 10: { + LogStep(10, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 12: { + LogStep(12, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 13: { + LogStep(13, "DUT sends StepColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColor::Id); + } + case 14: { + LogStep(14, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 21: { + LogStep(21, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 22: { + LogStep(22, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 23: { + LogStep(23, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 24: { + LogStep( + 24, + "DUT reads CurrentY attribute from ConfiguredTime: type: int16u defaultValue: 30000TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_6_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_6_4_SimulatedSuite() : TestCommand("Test_TC_CC_6_4_Simulated", 18) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_6_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, + "* TH provides a server implementation of Color Control with F04(CT)=true and reasonable values of " + "ColorTempPhysicalMinMireds (e.g. 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read " + "attribute ColorTempPhysicalMinMireds from TH"); + VerifyOrDo(!ShouldSkip("CC.C.A400b && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMinMireds::Id); + } + case 2: { + LogStep(2, + "* TH provides a server implementation of Color Control with F04(CT)=true and reasonable values of " + "ColorTempPhysicalMinMireds (e.g. 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read " + "attribute ColorTempPhysicalMaxMireds from TH"); + VerifyOrDo(!ShouldSkip("CC.C.A400c && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id); + } + case 3: { + LogStep(3, "DUT sends MoveToColorTemperature command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColorTemperature::Id); + } + case 4: { + LogStep(4, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 5: { + LogStep(5, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 7: { + LogStep(7, "DUT sends MoveColorTemperatureMireds command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id); + } + case 8: { + LogStep(8, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 9: { + LogStep(9, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 11: { + LogStep(11, "DUT sends StepColorTemperature command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColorTemperature::Id); + } + case 12: { + LogStep(12, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 13: { + LogStep(13, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 15: { + LogStep(15, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_7_5_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_7_5_SimulatedSuite() : TestCommand("Test_TC_CC_7_5_Simulated", 23) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_7_5_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToEnhancedHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id); + } + case 2: { + LogStep(2, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 5: { + LogStep(5, "DUT sends MoveEnhanced Hue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id); + } + case 6: { + LogStep(6, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 9: { + LogStep(9, "DUT sends StepEnhanced command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id); + } + case 10: { + LogStep(10, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 13: { + LogStep(13, "DUT sends EnhancedMoveToHueAndSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id); + } + case 14: { + LogStep(14, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentSaturation attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A0001 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentSaturation attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A0001 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 21: { + LogStep(21, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_9_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_9_4_SimulatedSuite() : TestCommand("Test_TC_CC_9_4_Simulated", 19) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + } + + ~Test_TC_CC_9_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mCluster; + chip::Optional mEndpoint; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends ColorLoopSet command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C44.Tx && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id); + } + case 2: { + LogStep(2, "DUT reads ColorLoopActive attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4002 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + } + case 3: { + LogStep(3, "DUT reads ColorLoopDirection attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4003 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id); + } + case 4: { + LogStep(4, "DUT reads ColorLoopTime attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4004 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + } + case 5: { + LogStep(5, "DUT reads ColorLoopStartEnhancedHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4005 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStartEnhancedHue::Id); + } + case 6: { + LogStep(6, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 7: { + LogStep(7, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 9: { + LogStep(9, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 11: { + LogStep(11, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 13: { + LogStep(13, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 15: { + LogStep(15, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 16: { + LogStep(16, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 17: { + LogStep(17, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 18: { + LogStep(18, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_2_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_2_Simulated", 17) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads TxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + } + case 1: { + LogStep(1, "DUT reads TxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + } + case 2: { + LogStep(2, "DUT reads TxBroadcastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id); + } + case 3: { + LogStep(3, "DUT reads TxAckRequestedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::Id); + } + case 4: { + LogStep(4, "DUT reads TxAckedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxAckedCount::Id); + } + case 5: { + LogStep(5, "DUT reads TxNoAckRequestedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id); + } + case 6: { + LogStep(6, "DUT reads TxDataCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDataCount::Id); + } + case 7: { + LogStep(7, "DUT reads TxDataPollCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id); + } + case 8: { + LogStep(8, "DUT reads TxBeaconCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id); + } + case 9: { + LogStep(9, "DUT reads TxBeaconRequestCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id); + } + case 10: { + LogStep(10, "DUT reads TxOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id); + } + case 11: { + LogStep(11, "DUT reads TxRetryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id); + } + case 12: { + LogStep(12, "DUT reads TxDirectMaxRetryExpiryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id); + } + case 13: { + LogStep(13, "DUT reads TxIndirectMaxRetryExpiryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id); + } + case 14: { + LogStep(14, "DUT reads TxErrCcaCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id); + } + case 15: { + LogStep(15, "DUT reads TxErrAbortCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id); + } + case 16: { + LogStep(16, "DUT reads TxErrBusyChannelCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_3_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_3_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_3_Simulated", 17) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_3_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads RxTotalCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id); + } + case 1: { + LogStep(1, "DUT reads RxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id); + } + case 2: { + LogStep(2, "DUT reads RxBroadcastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id); + } + case 3: { + LogStep(3, "DUT reads RxDataCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDataCount::Id); + } + case 4: { + LogStep(4, "DUT reads RxDataPollCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id); + } + case 5: { + LogStep(5, "DUT reads RxBeaconCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id); + } + case 6: { + LogStep(6, "DUT reads RxBeaconRequestCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id); + } + case 7: { + LogStep(7, "DUT reads RxOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id); + } + case 8: { + LogStep(8, "DUT reads RxAddressFilteredCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id); + } + case 9: { + LogStep(9, "DUT reads RxDestAddrFilteredCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id); + } + case 10: { + LogStep(10, "DUT reads RxDuplicatedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id); + } + case 11: { + LogStep(11, "DUT reads RxErrNoFrameCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id); + } + case 12: { + LogStep(12, "DUT reads RxErrUnknownNeighborCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id); + } + case 13: { + LogStep(13, "DUT reads RxErrInvalidSrcAddrCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id); + } + case 14: { + LogStep(14, "DUT reads RxErrSecCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0035"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id); + } + case 15: { + LogStep(15, "DUT reads RxErrFcsCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id); + } + case 16: { + LogStep(16, "DUT reads RxErrOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_4_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_4_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Commands::ResetCounts::Id); + } + case 1: { + LogStep(1, "DUT reads OverrunCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::OverrunCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LVL_2_3_SimulatedSuite : public TestCommand +{ +public: + Test_TC_LVL_2_3_SimulatedSuite() : TestCommand("Test_TC_LVL_2_3_Simulated", 24) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LVL_2_3_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read mandatory attribute CurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + } + case 1: { + LogStep(1, "Read mandatory attribute OnLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + } + case 2: { + LogStep(2, "Read mandatory attribute Options"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + } + case 3: { + LogStep(3, "Read optional attribute RemainingTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::RemainingTime::Id); + } + case 4: { + LogStep(4, "Read optional attribute StartUpCurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id); + } + case 5: { + LogStep(5, "Read optional attribute CurrentFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentFrequency::Id); + } + case 6: { + LogStep(6, "Read optional attribute MinFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinFrequency::Id); + } + case 7: { + LogStep(7, "Read optional attribute MaxFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxFrequency::Id); + } + case 8: { + LogStep(8, "Read optional attribute MinLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id); + } + case 9: { + LogStep(9, "Read optional attribute MaxLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id); + } + case 10: { + LogStep(10, "Read optional attribute OnOffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id); + } + case 11: { + LogStep(11, "Read optional attribute OnTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + } + case 12: { + LogStep(12, "Read optional attribute OffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + } + case 13: { + LogStep(13, "Read optional attribute DefaultMoveRate"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + } + case 14: { + LogStep(14, "Write mandatory attribute OnLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + } + case 15: { + LogStep(15, "Write mandatory attribute Options"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + } + case 16: { + LogStep(16, "Write optional attribute OnOffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id); + } + case 17: { + LogStep(17, "Write optional attribute OnTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + } + case 18: { + LogStep(18, "Write optional attribute OffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + } + case 19: { + LogStep(19, "Write optional attribute DefaultMoveRate"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + } + case 20: { + LogStep(20, "Write optional attribute StartUpCurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id); + } + case 21: { + LogStep(21, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 23: { + LogStep(23, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OO_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_OO_3_1_SimulatedSuite() : TestCommand("Test_TC_OO_3_1_Simulated", 11) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OO_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute OnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + } + case 1: { + LogStep(1, "Read attribute GlobalSceneControl"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id); + } + case 2: { + LogStep(2, "Read attribute OnTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + } + case 3: { + LogStep(3, "Read attribute OffWaitTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + } + case 4: { + LogStep(4, "Read attribute StartUpOnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + } + case 5: { + LogStep(5, "Write attribute OnTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + } + case 6: { + LogStep(6, "Write attribute OffWaitTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + } + case 7: { + LogStep(7, "Write attribute StartUpOnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + } + case 8: { + LogStep(8, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OO_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_OO_3_2_SimulatedSuite() : TestCommand("Test_TC_OO_3_2_Simulated", 6) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OO_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT issues an Off command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id); + } + case 1: { + LogStep(1, "DUT issues an On command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 2: { + LogStep(2, "DUT issues an Toggle command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::Toggle::Id); + } + case 3: { + LogStep(3, "DUT issues an OffWithEffect command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C40.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OffWithEffect::Id); + } + case 4: { + LogStep(4, "DUT issues an OnWithRecallGlobalScene command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C41.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OnWithRecallGlobalScene::Id); + } + case 5: { + LogStep(5, "DUT issues an OnWithTimedOff command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C42.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OnWithTimedOff::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TSUIC_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_TSUIC_3_1_SimulatedSuite() : TestCommand("Test_TC_TSUIC_3_1_Simulated", 9) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TSUIC_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads TemperatureDisplayMode attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + } + case 1: { + LogStep(1, "DUT reads KeypadLockout attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + } + case 2: { + LogStep(2, "DUT reads ScheduleProgrammingVisibility attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + } + case 3: { + LogStep(3, "DUT writes TemperatureDisplayMode attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + } + case 4: { + LogStep(4, "DUT writes KeypadLockout attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + } + case 5: { + LogStep(5, "DUT writes ScheduleProgrammingVisibility attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + } + case 6: { + LogStep(6, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 8: { + LogStep(8, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PCC_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PCC_3_1_SimulatedSuite() : TestCommand("Test_TC_PCC_3_1_Simulated", 30) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PCC_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute MaxPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxPressure::Id); + } + case 1: { + LogStep(1, "Read attribute MaxSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxSpeed::Id); + } + case 2: { + LogStep(2, "Read attribute MaxFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxFlow::Id); + } + case 3: { + LogStep(3, "Read attribute EffectiveOperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + } + case 4: { + LogStep(4, "Read attribute EffectiveControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + } + case 5: { + LogStep(5, "Read attribute Capacity"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Capacity::Id); + } + case 6: { + LogStep(6, "Read attribute OperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::OperationMode::Id); + } + case 7: { + LogStep(7, "Read attribute MinConstPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstPressure::Id); + } + case 8: { + LogStep(8, "Read attribute MaxConstPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstPressure::Id); + } + case 9: { + LogStep(9, "Read attribute MinCompPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinCompPressure::Id); + } + case 10: { + LogStep(10, "Read attribute MaxCompPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxCompPressure::Id); + } + case 11: { + LogStep(11, "Read attribute MinConstSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstSpeed::Id); + } + case 12: { + LogStep(12, "Read attribute MaxConstSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id); + } + case 13: { + LogStep(13, "Read attribute MinConstFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstFlow::Id); + } + case 14: { + LogStep(14, "Read attribute MaxConstFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstFlow::Id); + } + case 15: { + LogStep(15, "Read attribute MinConstTemp"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstTemp::Id); + } + case 16: { + LogStep(16, "Read attribute MaxConstTemp"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstTemp::Id); + } + case 17: { + LogStep(17, "Read attribute PumpStatus"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::PumpStatus::Id); + } + case 18: { + LogStep(18, "Read attribute Speed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Speed::Id); + } + case 19: { + LogStep(19, "Read attribute LifetimeRunningHours"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + } + case 20: { + LogStep(20, "Read attribute Power"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Power::Id); + } + case 21: { + LogStep(21, "Read attribute LifetimeEnergyConsumed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + } + case 22: { + LogStep(22, "Read attribute ControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::ControlMode::Id); + } + case 23: { + LogStep(23, "Write attribute LifetimeRunningHours"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + } + case 24: { + LogStep(24, "Write attribute LifetimeEnergyConsumed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + } + case 25: { + LogStep(25, "Write attribute OperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::OperationMode::Id); + } + case 26: { + LogStep(26, "Write attribute ControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::ControlMode::Id); + } + case 27: { + LogStep(27, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 28: { + LogStep(28, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 29: { + LogStep(29, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TMP_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_TMP_3_1_SimulatedSuite() : TestCommand("Test_TC_TMP_3_1_Simulated", 7) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TMP_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + std::unique_ptr GetTestCommand(std::string testName) { if (testName == "Test_TC_BINFO_2_3_Simulated") @@ -2518,6 +5316,90 @@ std::unique_ptr GetTestCommand(std::string testName) { return std::unique_ptr(new Test_TC_LTIME_1_1_SimulatedSuite()); } + if (testName == "Test_TC_ILL_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_ILL_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGSW_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGSW_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGETH_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGETH_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGWIFI_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGWIFI_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_WNCV_6_1_Simulated") + { + return std::unique_ptr(new Test_TC_WNCV_6_1_SimulatedSuite()); + } + if (testName == "Test_TC_WNCV_7_1_Simulated") + { + return std::unique_ptr(new Test_TC_WNCV_7_1_SimulatedSuite()); + } + if (testName == "Test_TC_CC_3_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_3_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_4_5_Simulated") + { + return std::unique_ptr(new Test_TC_CC_4_5_SimulatedSuite()); + } + if (testName == "Test_TC_CC_5_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_5_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_6_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_6_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_7_5_Simulated") + { + return std::unique_ptr(new Test_TC_CC_7_5_SimulatedSuite()); + } + if (testName == "Test_TC_CC_9_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_9_4_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_3_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_3_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_4_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_4_SimulatedSuite()); + } + if (testName == "Test_TC_LVL_2_3_Simulated") + { + return std::unique_ptr(new Test_TC_LVL_2_3_SimulatedSuite()); + } + if (testName == "Test_TC_OO_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_OO_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_OO_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_OO_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_TSUIC_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_TSUIC_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PCC_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PCC_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_TMP_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_TMP_3_1_SimulatedSuite()); + } return nullptr; } @@ -2549,4 +5431,25 @@ void PrintTestCommands() ChipLogError(chipTool, "\t* Test_TC_ULABEL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_FLABEL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_LTIME_1_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_ILL_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGSW_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGETH_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_WNCV_6_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_WNCV_7_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_3_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_4_5_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_5_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_6_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_7_5_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_9_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_LVL_2_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_OO_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_OO_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_TSUIC_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PCC_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_TMP_3_1_Simulated"); } diff --git a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h index 9cfbd2002d3332..39a1b1b91f1eaa 100644 --- a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h @@ -2420,6 +2420,2804 @@ class Test_TC_LTIME_1_1_SimulatedSuite : public TestCommand } }; +class Test_TC_ILL_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_ILL_3_1_SimulatedSuite() : TestCommand("Test_TC_ILL_3_1_Simulated", 8) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ILL_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, "Read attribute: LightSensorType"); + return WaitAttribute(GetEndpoint(0), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::LightSensorType::Id); + } + case 5: { + LogStep(5, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGSW_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGSW_3_2_SimulatedSuite() : TestCommand("Test_TC_DGSW_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGSW_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetWatermarks to TH"); + VerifyOrDo(!ShouldSkip("DGSW.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Commands::ResetWatermarks::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGETH_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGETH_3_2_SimulatedSuite() : TestCommand("Test_TC_DGETH_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGETH_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts to TH"); + VerifyOrDo(!ShouldSkip("DGETH.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGWIFI_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGWIFI_3_2_SimulatedSuite() : TestCommand("Test_TC_DGWIFI_3_2_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGWIFI_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_6_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_6_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_6_1_Simulated", 3) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WNCV_6_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends UpOrOpen command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id); + } + case 1: { + LogStep(1, "DUT sends DownOrClose command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id); + } + case 2: { + LogStep(2, "DUT sends StopMotion command to TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_7_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_7_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_7_1_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WNCV_7_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT"); + VerifyOrDo(!ShouldSkip("WNCV.C.C05.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id); + } + case 1: { + LogStep(1, "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT"); + VerifyOrDo(!ShouldSkip("WNCV.C.C08.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_3_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_3_4_SimulatedSuite() : TestCommand("Test_TC_CC_3_4_Simulated", 16) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_3_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToHue command to TH an Hue with _TransitionTime 300"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHue::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C00.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 5: { + LogStep(5, "DUT sends MoveHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveHue::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C01.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 9: { + LogStep(9, "DUT sends StepHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepHue::Id); + } + case 10: { + LogStep(10, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads CurrentHue attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C02.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 13: { + LogStep(13, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 14: { + LogStep(14, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 15: { + LogStep(15, "Over TransitionTime, DUT reads CurrentHue attribute from TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_4_5_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_4_5_SimulatedSuite() : TestCommand("Test_TC_CC_4_5_Simulated", 22) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_4_5_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToSaturation::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentSaturation attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads CurrentSaturation attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C03.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 5: { + LogStep(5, "DUT sends MoveSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveSaturation::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C04.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 9: { + LogStep(9, "DUT sends StepSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepSaturation::Id); + } + case 10: { + LogStep(10, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C05.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 13: { + LogStep(13, "DUT sends MoveToHueAndSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToHueAndSaturation::Id); + } + case 14: { + LogStep(14, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentSaturation attribute from TH several times."); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.C06.Tx && CC.C.A0000 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "Wait for ConfigTransitionTime"); + VerifyOrDo(!ShouldSkip("CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 21: { + LogStep(21, "Over TransitionTime, DUT reads CurrentSaturation attribute from TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0001 && CC.C.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_5_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_5_4_SimulatedSuite() : TestCommand("Test_TC_CC_5_4_Simulated", 25) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_5_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColor::Id); + } + case 2: { + LogStep(2, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 3: { + LogStep(3, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 4: { + LogStep(4, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 6: { + LogStep(6, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C07.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 7: { + LogStep(7, "DUT sends MoveColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColor::Id); + } + case 8: { + LogStep(8, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 9: { + LogStep(9, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 10: { + LogStep(10, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 12: { + LogStep(12, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C08.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 13: { + LogStep(13, "DUT sends StepColor command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColor::Id); + } + case 14: { + LogStep(14, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C09.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 21: { + LogStep(21, "DUT reads CurrentY attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + case 22: { + LogStep(22, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 23: { + LogStep(23, "DUT reads CurrentX attribute from TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0003 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentX::Id); + } + case 24: { + LogStep( + 24, + "DUT reads CurrentY attribute from ConfiguredTime: type: int16u defaultValue: 30000TH(potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0004 && CC.C.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentY::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_6_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_6_4_SimulatedSuite() : TestCommand("Test_TC_CC_6_4_Simulated", 18) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_6_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, + "* TH provides a server implementation of Color Control with F04(CT)=true and reasonable values of " + "ColorTempPhysicalMinMireds (e.g. 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read " + "attribute ColorTempPhysicalMinMireds from TH"); + VerifyOrDo(!ShouldSkip("CC.C.A400b && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMinMireds::Id); + } + case 2: { + LogStep(2, + "* TH provides a server implementation of Color Control with F04(CT)=true and reasonable values of " + "ColorTempPhysicalMinMireds (e.g. 153 (6500K), ColorTempPhysicalMaxMireds (e.g. 454 (2200K)) DUT read " + "attribute ColorTempPhysicalMaxMireds from TH"); + VerifyOrDo(!ShouldSkip("CC.C.A400c && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id); + } + case 3: { + LogStep(3, "DUT sends MoveToColorTemperature command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveToColorTemperature::Id); + } + case 4: { + LogStep(4, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 5: { + LogStep(5, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C0a.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 7: { + LogStep(7, "DUT sends MoveColorTemperatureMireds command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::MoveColorTemperature::Id); + } + case 8: { + LogStep(8, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 9: { + LogStep(9, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4b.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 11: { + LogStep(11, "DUT sends StepColorTemperature command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StepColorTemperature::Id); + } + case 12: { + LogStep(12, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 13: { + LogStep(13, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C4c.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + case 15: { + LogStep(15, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads CurrentColorTemperatureMireds attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A0007 && CC.C.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_7_5_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_7_5_SimulatedSuite() : TestCommand("Test_TC_CC_7_5_Simulated", 23) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("ConfigTransitionTime", 0, UINT16_MAX, &mConfigTransitionTime); + } + + ~Test_TC_CC_7_5_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mTimeout; + chip::Optional mEndpoint; + chip::Optional mConfigTransitionTime; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends MoveToEnhancedHue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHue::Id); + } + case 2: { + LogStep(2, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 3: { + LogStep(3, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C40.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 5: { + LogStep(5, "DUT sends MoveEnhanced Hue command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveHue::Id); + } + case 6: { + LogStep(6, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 7: { + LogStep(7, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C41.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 9: { + LogStep(9, "DUT sends StepEnhanced command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedStepHue::Id); + } + case 10: { + LogStep(10, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 11: { + LogStep(11, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C42.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 13: { + LogStep(13, "DUT sends EnhancedMoveToHueAndSaturation command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id); + } + case 14: { + LogStep(14, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 15: { + LogStep(15, "DUT reads CurrentSaturation attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A0001 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 16: { + LogStep(16, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 18: { + LogStep(18, "DUT reads CurrentSaturation attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C43.Tx && CC.C.A0001 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id); + } + case 19: { + LogStep(19, "DUT sends StopMoveStep command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::StopMoveStep::Id); + } + case 20: { + LogStep(20, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 21: { + LogStep(21, "Wait for ConfigTransitionTime"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = mConfigTransitionTime.HasValue() ? mConfigTransitionTime.Value() : 3000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "DUT reads EnhancedCurrentHue attribute from TH (potentially multiple times)"); + VerifyOrDo(!ShouldSkip("CC.C.C47.Tx && CC.C.A4000 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CC_9_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_CC_9_4_SimulatedSuite() : TestCommand("Test_TC_CC_9_4_Simulated", 19) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + } + + ~Test_TC_CC_9_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mTimeout; + chip::Optional mCluster; + chip::Optional mEndpoint; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "PreCondition: Set TH OnOff to On"); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 1: { + LogStep(1, "DUT sends ColorLoopSet command to TH"); + VerifyOrDo(!ShouldSkip("CC.C.C44.Tx && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), ColorControl::Id, ColorControl::Commands::ColorLoopSet::Id); + } + case 2: { + LogStep(2, "DUT reads ColorLoopActive attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4002 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopActive::Id); + } + case 3: { + LogStep(3, "DUT reads ColorLoopDirection attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4003 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopDirection::Id); + } + case 4: { + LogStep(4, "DUT reads ColorLoopTime attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4004 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopTime::Id); + } + case 5: { + LogStep(5, "DUT reads ColorLoopStartEnhancedHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4005 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorLoopStartEnhancedHue::Id); + } + case 6: { + LogStep(6, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 7: { + LogStep(7, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 9: { + LogStep(9, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 11: { + LogStep(11, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 13: { + LogStep(13, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 15: { + LogStep(15, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 16: { + LogStep(16, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + case 17: { + LogStep(17, "Wait 5000ms"); + VerifyOrDo(!ShouldSkip("CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 5000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 18: { + LogStep(18, "DUT reads EnhancedCurrentHue attribute from TH periodically"); + VerifyOrDo(!ShouldSkip("CC.C.A4000 && CC.C.F02 && CC.C.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedCurrentHue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_2_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_2_Simulated", 17) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads TxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + } + case 1: { + LogStep(1, "DUT reads TxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id); + } + case 2: { + LogStep(2, "DUT reads TxBroadcastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id); + } + case 3: { + LogStep(3, "DUT reads TxAckRequestedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::Id); + } + case 4: { + LogStep(4, "DUT reads TxAckedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxAckedCount::Id); + } + case 5: { + LogStep(5, "DUT reads TxNoAckRequestedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id); + } + case 6: { + LogStep(6, "DUT reads TxDataCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDataCount::Id); + } + case 7: { + LogStep(7, "DUT reads TxDataPollCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id); + } + case 8: { + LogStep(8, "DUT reads TxBeaconCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id); + } + case 9: { + LogStep(9, "DUT reads TxBeaconRequestCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A001f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id); + } + case 10: { + LogStep(10, "DUT reads TxOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id); + } + case 11: { + LogStep(11, "DUT reads TxRetryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id); + } + case 12: { + LogStep(12, "DUT reads TxDirectMaxRetryExpiryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id); + } + case 13: { + LogStep(13, "DUT reads TxIndirectMaxRetryExpiryCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id); + } + case 14: { + LogStep(14, "DUT reads TxErrCcaCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id); + } + case 15: { + LogStep(15, "DUT reads TxErrAbortCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id); + } + case 16: { + LogStep(16, "DUT reads TxErrBusyChannelCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_3_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_3_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_3_Simulated", 17) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_3_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads RxTotalCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id); + } + case 1: { + LogStep(1, "DUT reads RxUnicastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id); + } + case 2: { + LogStep(2, "DUT reads RxBroadcastCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id); + } + case 3: { + LogStep(3, "DUT reads RxDataCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDataCount::Id); + } + case 4: { + LogStep(4, "DUT reads RxDataPollCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id); + } + case 5: { + LogStep(5, "DUT reads RxBeaconCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id); + } + case 6: { + LogStep(6, "DUT reads RxBeaconRequestCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id); + } + case 7: { + LogStep(7, "DUT reads RxOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id); + } + case 8: { + LogStep(8, "DUT reads RxAddressFilteredCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A002f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id); + } + case 9: { + LogStep(9, "DUT reads RxDestAddrFilteredCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id); + } + case 10: { + LogStep(10, "DUT reads RxDuplicatedCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id); + } + case 11: { + LogStep(11, "DUT reads RxErrNoFrameCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id); + } + case 12: { + LogStep(12, "DUT reads RxErrUnknownNeighborCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id); + } + case 13: { + LogStep(13, "DUT reads RxErrInvalidSrcAddrCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id); + } + case 14: { + LogStep(14, "DUT reads RxErrSecCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0035"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id); + } + case 15: { + LogStep(15, "DUT reads RxErrFcsCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id); + } + case 16: { + LogStep(16, "DUT reads RxErrOtherCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_3_4_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGTHREAD_3_4_SimulatedSuite() : TestCommand("Test_TC_DGTHREAD_3_4_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_3_4_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Commands::ResetCounts::Id); + } + case 1: { + LogStep(1, "DUT reads OverrunCount attribute value from TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::OverrunCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LVL_2_3_SimulatedSuite : public TestCommand +{ +public: + Test_TC_LVL_2_3_SimulatedSuite() : TestCommand("Test_TC_LVL_2_3_Simulated", 24) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LVL_2_3_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read mandatory attribute CurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + } + case 1: { + LogStep(1, "Read mandatory attribute OnLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + } + case 2: { + LogStep(2, "Read mandatory attribute Options"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + } + case 3: { + LogStep(3, "Read optional attribute RemainingTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::RemainingTime::Id); + } + case 4: { + LogStep(4, "Read optional attribute StartUpCurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id); + } + case 5: { + LogStep(5, "Read optional attribute CurrentFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::CurrentFrequency::Id); + } + case 6: { + LogStep(6, "Read optional attribute MinFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinFrequency::Id); + } + case 7: { + LogStep(7, "Read optional attribute MaxFrequency"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxFrequency::Id); + } + case 8: { + LogStep(8, "Read optional attribute MinLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MinLevel::Id); + } + case 9: { + LogStep(9, "Read optional attribute MaxLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::MaxLevel::Id); + } + case 10: { + LogStep(10, "Read optional attribute OnOffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id); + } + case 11: { + LogStep(11, "Read optional attribute OnTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + } + case 12: { + LogStep(12, "Read optional attribute OffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + } + case 13: { + LogStep(13, "Read optional attribute DefaultMoveRate"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + } + case 14: { + LogStep(14, "Write mandatory attribute OnLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnLevel::Id); + } + case 15: { + LogStep(15, "Write mandatory attribute Options"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::Options::Id); + } + case 16: { + LogStep(16, "Write optional attribute OnOffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnOffTransitionTime::Id); + } + case 17: { + LogStep(17, "Write optional attribute OnTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OnTransitionTime::Id); + } + case 18: { + LogStep(18, "Write optional attribute OffTransitionTime"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::OffTransitionTime::Id); + } + case 19: { + LogStep(19, "Write optional attribute DefaultMoveRate"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::DefaultMoveRate::Id); + } + case 20: { + LogStep(20, "Write optional attribute StartUpCurrentLevel"); + return WaitAttribute(GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::StartUpCurrentLevel::Id); + } + case 21: { + LogStep(21, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 22: { + LogStep(22, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 23: { + LogStep(23, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OO_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_OO_3_1_SimulatedSuite() : TestCommand("Test_TC_OO_3_1_Simulated", 11) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OO_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute OnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnOff::Id); + } + case 1: { + LogStep(1, "Read attribute GlobalSceneControl"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::GlobalSceneControl::Id); + } + case 2: { + LogStep(2, "Read attribute OnTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + } + case 3: { + LogStep(3, "Read attribute OffWaitTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + } + case 4: { + LogStep(4, "Read attribute StartUpOnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + } + case 5: { + LogStep(5, "Write attribute OnTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OnTime::Id); + } + case 6: { + LogStep(6, "Write attribute OffWaitTime"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::OffWaitTime::Id); + } + case 7: { + LogStep(7, "Write attribute StartUpOnOff"); + return WaitAttribute(GetEndpoint(1), OnOff::Id, OnOff::Attributes::StartUpOnOff::Id); + } + case 8: { + LogStep(8, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OO_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_OO_3_2_SimulatedSuite() : TestCommand("Test_TC_OO_3_2_Simulated", 6) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OO_3_2_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT issues an Off command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::Off::Id); + } + case 1: { + LogStep(1, "DUT issues an On command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::On::Id); + } + case 2: { + LogStep(2, "DUT issues an Toggle command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::Toggle::Id); + } + case 3: { + LogStep(3, "DUT issues an OffWithEffect command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C40.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OffWithEffect::Id); + } + case 4: { + LogStep(4, "DUT issues an OnWithRecallGlobalScene command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C41.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OnWithRecallGlobalScene::Id); + } + case 5: { + LogStep(5, "DUT issues an OnWithTimedOff command to the TH"); + VerifyOrDo(!ShouldSkip("OO.C.C42.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(1), OnOff::Id, OnOff::Commands::OnWithTimedOff::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TSUIC_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_TSUIC_3_1_SimulatedSuite() : TestCommand("Test_TC_TSUIC_3_1_Simulated", 9) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TSUIC_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "DUT reads TemperatureDisplayMode attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + } + case 1: { + LogStep(1, "DUT reads KeypadLockout attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + } + case 2: { + LogStep(2, "DUT reads ScheduleProgrammingVisibility attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + } + case 3: { + LogStep(3, "DUT writes TemperatureDisplayMode attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id); + } + case 4: { + LogStep(4, "DUT writes KeypadLockout attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id); + } + case 5: { + LogStep(5, "DUT writes ScheduleProgrammingVisibility attribute from TH"); + return WaitAttribute(GetEndpoint(0), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id); + } + case 6: { + LogStep(6, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 8: { + LogStep(8, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PCC_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PCC_3_1_SimulatedSuite() : TestCommand("Test_TC_PCC_3_1_Simulated", 30) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PCC_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute MaxPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxPressure::Id); + } + case 1: { + LogStep(1, "Read attribute MaxSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxSpeed::Id); + } + case 2: { + LogStep(2, "Read attribute MaxFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxFlow::Id); + } + case 3: { + LogStep(3, "Read attribute EffectiveOperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id); + } + case 4: { + LogStep(4, "Read attribute EffectiveControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id); + } + case 5: { + LogStep(5, "Read attribute Capacity"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Capacity::Id); + } + case 6: { + LogStep(6, "Read attribute OperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::OperationMode::Id); + } + case 7: { + LogStep(7, "Read attribute MinConstPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstPressure::Id); + } + case 8: { + LogStep(8, "Read attribute MaxConstPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstPressure::Id); + } + case 9: { + LogStep(9, "Read attribute MinCompPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinCompPressure::Id); + } + case 10: { + LogStep(10, "Read attribute MaxCompPressure"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxCompPressure::Id); + } + case 11: { + LogStep(11, "Read attribute MinConstSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstSpeed::Id); + } + case 12: { + LogStep(12, "Read attribute MaxConstSpeed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id); + } + case 13: { + LogStep(13, "Read attribute MinConstFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstFlow::Id); + } + case 14: { + LogStep(14, "Read attribute MaxConstFlow"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstFlow::Id); + } + case 15: { + LogStep(15, "Read attribute MinConstTemp"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MinConstTemp::Id); + } + case 16: { + LogStep(16, "Read attribute MaxConstTemp"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::MaxConstTemp::Id); + } + case 17: { + LogStep(17, "Read attribute PumpStatus"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::PumpStatus::Id); + } + case 18: { + LogStep(18, "Read attribute Speed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Speed::Id); + } + case 19: { + LogStep(19, "Read attribute LifetimeRunningHours"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + } + case 20: { + LogStep(20, "Read attribute Power"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::Power::Id); + } + case 21: { + LogStep(21, "Read attribute LifetimeEnergyConsumed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + } + case 22: { + LogStep(22, "Read attribute ControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::ControlMode::Id); + } + case 23: { + LogStep(23, "Write attribute LifetimeRunningHours"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id); + } + case 24: { + LogStep(24, "Write attribute LifetimeEnergyConsumed"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id); + } + case 25: { + LogStep(25, "Write attribute OperationMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::OperationMode::Id); + } + case 26: { + LogStep(26, "Write attribute ControlMode"); + VerifyOrDo(!ShouldSkip("PCC.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::ControlMode::Id); + } + case 27: { + LogStep(27, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 28: { + LogStep(28, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 29: { + LogStep(29, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TMP_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_TMP_3_1_SimulatedSuite() : TestCommand("Test_TC_TMP_3_1_Simulated", 7) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TMP_3_1_SimulatedSuite() {} + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + std::unique_ptr GetTestCommand(std::string testName) { if (testName == "Test_TC_BINFO_2_3_Simulated") @@ -2518,6 +5316,90 @@ std::unique_ptr GetTestCommand(std::string testName) { return std::unique_ptr(new Test_TC_LTIME_1_1_SimulatedSuite()); } + if (testName == "Test_TC_ILL_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_ILL_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGSW_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGSW_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGETH_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGETH_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGWIFI_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGWIFI_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_WNCV_6_1_Simulated") + { + return std::unique_ptr(new Test_TC_WNCV_6_1_SimulatedSuite()); + } + if (testName == "Test_TC_WNCV_7_1_Simulated") + { + return std::unique_ptr(new Test_TC_WNCV_7_1_SimulatedSuite()); + } + if (testName == "Test_TC_CC_3_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_3_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_4_5_Simulated") + { + return std::unique_ptr(new Test_TC_CC_4_5_SimulatedSuite()); + } + if (testName == "Test_TC_CC_5_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_5_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_6_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_6_4_SimulatedSuite()); + } + if (testName == "Test_TC_CC_7_5_Simulated") + { + return std::unique_ptr(new Test_TC_CC_7_5_SimulatedSuite()); + } + if (testName == "Test_TC_CC_9_4_Simulated") + { + return std::unique_ptr(new Test_TC_CC_9_4_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_3_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_3_SimulatedSuite()); + } + if (testName == "Test_TC_DGTHREAD_3_4_Simulated") + { + return std::unique_ptr(new Test_TC_DGTHREAD_3_4_SimulatedSuite()); + } + if (testName == "Test_TC_LVL_2_3_Simulated") + { + return std::unique_ptr(new Test_TC_LVL_2_3_SimulatedSuite()); + } + if (testName == "Test_TC_OO_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_OO_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_OO_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_OO_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_TSUIC_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_TSUIC_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PCC_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PCC_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_TMP_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_TMP_3_1_SimulatedSuite()); + } return nullptr; } @@ -2549,4 +5431,25 @@ void PrintTestCommands() ChipLogError(chipTool, "\t* Test_TC_ULABEL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_FLABEL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_LTIME_1_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_ILL_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGSW_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGETH_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_WNCV_6_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_WNCV_7_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_3_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_4_5_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_5_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_6_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_7_5_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_CC_9_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGTHREAD_3_4_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_LVL_2_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_OO_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_OO_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_TSUIC_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PCC_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_TMP_3_1_Simulated"); }