You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
else
{
// appclusters.pdf 5.3.4.1:
// If the RequirePINforRemoteOperation attribute is True then PINCode field SHALL be provided and the door lock SHALL NOT
// grant access if it is not provided.
bool requirePin = false;
VerifyOrExit(GetAttribute(endpoint, Attributes::RequirePINforRemoteOperation::Id,
Attributes::RequirePINforRemoteOperation::Get, requirePin),
/* credentialsOk is false here */);
credentialsOk = !requirePin;
}
Upon inspection, feature is Upon further inspection, the featuremap is 0x0133 - 0b100110011 => bits 0, 1, 4, 5, 8 set, features PIN | RID |SCH | DPS | USR.
It looks like the code is checking for RequirePINforRemoteOperation but the conformance of this attribute is COTA & PIN
A recent change removed the attribute from ZAP due to COTA feature not enabled
However, the code is still trying to read an attribute that has now disappeared from the attribute store to affect an internal data dependency condition of the cluster.
Proposed Solution
Instead of VerifyOrExit(GetAttribute(endpoint, Attributes::RequirePINforRemoteOperation::Id, Attributes::RequirePINforRemoteOperation::Get, requirePin)
there should be code that checks for conformance and if the feature maps doesn't have COTA & PIN, or if the RequirePINforRemoteOperation is missing, then the code should assume that a PIN required is false and proceed with open.
The text was updated successfully, but these errors were encountered:
Problem
Found during smoke testing of SDK Master at Google, Jun 7 2022
Device EFR32, Controller Linux.
With the default door-lock app example, the "lock" and "unlock" now fail.
Executed from code state:
connectedhomeip/examples/lock-app/lock-common/lock-app.zap
Line 7847 in ae6e092
Command:
Both fail with
Execution log on EFR32:
Execution log for Lock on Linux:
Execution log for Unlock on Linux:
When looking at the device log:
Seems like there was an internal error to read DoorLock Attribute:
Code path:
Upon inspection, feature is Upon further inspection, the featuremap is 0x0133 - 0b100110011 => bits 0, 1, 4, 5, 8 set, features
PIN | RID |SCH | DPS | USR
.It looks like the code is checking for
RequirePINforRemoteOperation
but the conformance of this attribute isCOTA & PIN
A recent change removed the attribute from ZAP due to
COTA
feature not enabledHowever, the code is still trying to read an attribute that has now disappeared from the attribute store to affect an internal data dependency condition of the cluster.
Proposed Solution
Instead of
VerifyOrExit(GetAttribute(endpoint, Attributes::RequirePINforRemoteOperation::Id, Attributes::RequirePINforRemoteOperation::Get, requirePin)
there should be code that checks for conformance and if the feature maps doesn't have
COTA & PIN
, or if theRequirePINforRemoteOperation
is missing, then the code should assume that a PIN required is false and proceed with open.The text was updated successfully, but these errors were encountered: