| <?xml version="1.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. |
| --> |
| <configurator> |
| <domain name="CHIP" /> |
| |
| <cluster> |
| <domain>Closures</domain> |
| <name>Door Lock</name> |
| <code>0x0101</code> |
| <define>DOOR_LOCK_CLUSTER</define> |
| <description>An interface to a generic way to secure a door</description> |
| |
| <!-- Abbreviations used in descriptions --> |
| <tag name="PIN" description="PIN Credential" /> |
| <tag name="RID" description="RFID Credential" /> |
| <tag name="FGP" description="Finger Credentials" /> |
| <tag name="LOG" description="Logging" /> |
| <tag name="WDSCH" description="Week Day Access Schedules" /> |
| <tag name="DPS" description="Door Position Sensor" /> |
| <tag name="FACE" description="Face Credentials" /> |
| <tag name="COTA" description="Credential Over-the-Air Access" /> |
| <tag name="USR" description="User" /> |
| <tag name="NOT" description="Notification" /> |
| <tag name="YDSCH" description="Year Day Access Schedules" /> |
| <tag name="HDSCH" description="Holiday Schedules" /> |
| |
| <client tick="false" init="false">true</client> |
| <server tick="false" init="false">true</server> |
| |
| <!-- Current cluster version --> |
| <globalAttribute side="either" code="0xFFFD" value="6" /> |
| <!-- Cluster feature map --> |
| <globalAttribute side="server" code="0xFFFC" value="0x0001"> |
| <featureBit tag="PIN" bit="0">true</featureBit> |
| <featureBit tag="RID" bit="1">false</featureBit> |
| <featureBit tag="FGP" bit="2">false</featureBit> |
| <featureBit tag="LOG" bit="3">false</featureBit> |
| <featureBit tag="WDSCH" bit="4">true</featureBit> |
| <featureBit tag="DPS" bit="5">true</featureBit> |
| <featureBit tag="FACE" bit="6">false</featureBit> |
| <featureBit tag="COTA" bit="7">true</featureBit> |
| <featureBit tag="USR" bit="8">true</featureBit> <!-- TODO: Depend on PIN | RID | FGP | FACE --> |
| <featureBit tag="NOT" bit="9">false</featureBit> |
| <featureBit tag="YDSCH" bit="10">true</featureBit> |
| <featureBit tag="HDSCH" bit="11">true</featureBit> |
| </globalAttribute> |
| |
| <!-- The principle behind mandatory/optional is the following: |
| 1. If attribute/command is marked as mandatory it should be mandatory here. |
| 2. If attribute/command is marked as optional it should be optional here. |
| 3. Everything that depends on a certain feature is optional because we have no way |
| of setting up the dependencies here. Dependencies would be probably resolved in the |
| cluster itself. Those attributes/commands are marked with a special comment. --> |
| |
| <!-- Attributes --> |
| <attribute side="server" code="0" define="LOCK_STATE" type="DlLockState" min="0" max="2" isNullable="true" reportable="true" writable="false">LockState</attribute> |
| <attribute side="server" code="1" define="LOCK_TYPE" type="DlLockType" min="0" max="10" writable="false">LockType</attribute> |
| <attribute side="server" code="2" define="ACTUATOR_ENABLED" type="boolean" writable="false">ActuatorEnabled</attribute> |
| <!-- Conformance feature DPS - for now optional --> |
| <attribute side="server" code="3" define="DOOR_STATE" type="DlDoorState" min="0" max="5" isNullable="true" reportable="true" optional="true">DoorState</attribute> |
| <!-- Conformance feature [DPS] - for now optional --> |
| <attribute side="server" code="4" define="DOOR_OPEN_EVENTS" type="INT32U" writable="true" optional="true"> |
| <description>DoorOpenEvents</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <!-- Conformance feature [DPS] - for now optional --> |
| <attribute side="server" code="5" define="DOOR_CLOSED_EVENTS" type="INT32U" writable="true" optional="true"> |
| <description>DoorClosedEvents</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <!-- Conformance feature [DPS] - for now optional --> |
| <attribute side="server" code="6" define="OPEN_PERIOD" type="INT16U" writable="true" optional="true"> |
| <description>OpenPeriod</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <!-- Conformance feature USR - for now optional --> |
| <attribute side="server" code="17" define="NUM_TOTAL_USERS_SUPPORTED" type="INT16U" default="0" writable="false" optional="true">NumberOfTotalUsersSupported</attribute> |
| <!-- Conformance feature PIN - for now optional --> |
| <attribute side="server" code="18" define="NUM_PIN_USERS_SUPPORTED" type="INT16U" default="0" writable="false" optional="true">NumberOfPINUsersSupported</attribute> |
| <!-- Conformance feature RFID - for now optional --> |
| <attribute side="server" code="19" define="NUM_RFID_USERS_SUPPORTED" type="INT16U" default="0" writable="false" optional="true">NumberOfRFIDUsersSupported</attribute> |
| <!-- Conformance feature WDSCH - for now optional --> |
| <attribute side="server" code="20" define="NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER" type="INT8U" default="0" writable="false" optional="true">NumberOfWeekDaySchedulesSupportedPerUser</attribute> |
| <!-- Conformance feature YDSCH - for now optional --> |
| <attribute side="server" code="21" define="NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER" type="INT8U" default="0" writable="false" optional="true">NumberOfYearDaySchedulesSupportedPerUser</attribute> |
| <!-- Conformance feature HDSCH - for now optional --> |
| <attribute side="server" code="22" define="NUM_HOLIDAY_SCHEDULES_SUPPORTED" type="INT8U" default="0" writable="false" optional="true">NumberOfHolidaySchedulesSupported</attribute> |
| <!-- Conformance feature PIN - for now optional --> |
| <attribute side="server" code="23" define="MAX_PIN_LENGTH" type="INT8U" writable="false" optional="true">MaxPINCodeLength</attribute> |
| <!-- Conformance feature PIN - for now optional --> |
| <attribute side="server" code="24" define="MIN_PIN_LENGTH" type="INT8U" writable="false" optional="true">MinPINCodeLength</attribute> |
| <!-- Conformance feature RID - for now optional --> |
| <attribute side="server" code="25" define="MAX_RFID_CODE_LENGTH" type="INT8U" writable="false" optional="true">MaxRFIDCodeLength</attribute> |
| <!-- Conformance feature RID - for now optional --> |
| <attribute side="server" code="26" define="MIN_RFID_CODE_LENGTH" type="INT8U" writable="false" optional="true">MinRFIDCodeLength</attribute> |
| <!-- Conformance feature USR - for now optional --> |
| <attribute side="server" code="27" define="CREDENTIAL_RULES_SUPPORT" type="DlCredentialRuleMask" min="0x00" max="0xFF" default="1" writable="false" optional="true">CredentialRulesSupport</attribute> |
| <!-- Conformance feature USR - for now optional --> |
| <attribute side="server" code="28" define="NUM_CREDENTIALS_SUPPORTED_PER_USER" type="INT8U" default="0" writable="false" optional="true">NumberOfCredentialsSupportedPerUser</attribute> |
| <attribute side="server" code="33" define="LANGUAGE" type="CHAR_STRING" length="3" reportable="true" writable="true" optional="true"> |
| <description>Language</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <attribute side="server" code="34" define="LED_SETTINGS" type="INT8U" min="0" max="2" reportable="true" default="0" writable="true" optional="true"> |
| <description>LEDSettings</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <attribute side="server" code="35" define="AUTO_RELOCK_TIME" type="INT32U" reportable="true" writable="true"> |
| <description>AutoRelockTime</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <attribute side="server" code="36" define="SOUND_VOLUME" type="INT8U" min="0" max="3" reportable="true" default="0" writable="true" optional="true"> |
| <description>SoundVolume</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <attribute side="server" code="37" define="OPERATING_MODE" type="DlOperatingMode" min="0" max="4" reportable="true" writable="true"> |
| <description>OperatingMode</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <attribute side="server" code="38" define="SUPPORTED_OPERATING_MODES" type="DlSupportedOperatingModes" min="0x0000" max="0xFFFF" default="0xFFF6" writable="false">SupportedOperatingModes</attribute> |
| <attribute side="server" code="39" define="DEFAULT_CONFIGURATION_REGISTER" type="DlDefaultConfigurationRegister" min="0x0000" max="0xFFFF" reportable="true" default="0" writable="false" optional="true">DefaultConfigurationRegister</attribute> |
| <attribute side="server" code="40" define="ENABLE_LOCAL_PROGRAMMING" type="boolean" reportable="true" default="1" writable="true" optional="true"> |
| <description>EnableLocalProgramming</description> |
| <access op="read" role="view" /> |
| <access op="write" role="administer" /> |
| </attribute> |
| <attribute side="server" code="41" define="ENABLE_ONE_TOUCH_LOCKING" type="boolean" reportable="true" default="0" writable="true" optional="true"> |
| <description>EnableOneTouchLocking</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <attribute side="server" code="42" define="ENABLE_INSIDE_STATUS_LED" type="boolean" reportable="true" default="0" writable="true" optional="true"> |
| <description>EnableInsideStatusLED</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <attribute side="server" code="43" define="ENABLE_PRIVACY_MODE_BUTTON" type="boolean" reportable="true" default="0" writable="true" optional="true"> |
| <description>EnablePrivacyModeButton</description> |
| <access op="read" role="view" /> |
| <access op="write" role="manage" /> |
| </attribute> |
| <attribute side="server" code="44" define="LOCAL_PROGRAMMING_FEATURES" type="DlLocalProgrammingFeatures" min="0x0" max="0x0F" reportable="true" default="0" writable="true" optional="true"> |
| <description>LocalProgrammingFeatures</description> |
| <access op="read" role="view" /> |
| <access op="write" role="administer" /> |
| </attribute> |
| <!-- Conformance feature PIN | RID - for now optional --> |
| <attribute side="server" code="48" define="WRONG_CODE_ENTRY_LIMIT" type="INT8U" min="1" max="255" reportable="true" writable="true" optional="true"> |
| <description>WrongCodeEntryLimit</description> |
| <access op="read" role="view" /> |
| <access op="write" role="administer" /> |
| </attribute> |
| <!-- Conformance feature PIN | RID - for now optional --> |
| <attribute side="server" code="49" define="USER_CODE_TEMPORARY_DISABLE_TIME" type="INT8U" min="1" max="255" reportable="true" writable="true" optional="true"> |
| <description>UserCodeTemporaryDisableTime</description> |
| <access op="read" role="view" /> |
| <access op="write" role="administer" /> |
| </attribute> |
| <!-- Conformance feature [PIN] - for now optional --> |
| <attribute side="server" code="50" define="SEND_PIN_OVER_THE_AIR" type="boolean" reportable="true" default="0" writable="true" optional="true"> |
| <description>SendPINOverTheAir</description> |
| <access op="read" role="view" /> |
| <access op="write" role="administer" /> |
| </attribute> |
| <!-- Conformance feature COTA & PIN - for now optional --> |
| <attribute side="server" code="51" define="REQUIRE_PIN_FOR_REMOTE_OPERATION" type="boolean" reportable="true" default="0" writable="true" optional="true"> |
| <description>RequirePINforRemoteOperation</description> |
| <access op="read" role="view" /> |
| <access op="write" role="administer" /> |
| </attribute> |
| <!-- Attribute SecurityLevel with code 52 is deprecated --> |
| <!-- Conformance feature [USR] - for now optional --> |
| <attribute side="server" code="53" define="EXPIRING_USER_TIMEOUT" type="INT16U" min="1" max="2880" reportable="true" writable="true" optional="true"> |
| <description>ExpiringUserTimeout</description> |
| <access op="read" role="view" /> |
| <access op="write" role="administer" /> |
| </attribute> |
| |
| <!-- Commands --> |
| <command source="client" code="0" name="LockDoor" mustUseTimedInvoke="true"> |
| <description>This command causes the lock device to lock the door.</description> |
| <!-- Conformance feature [COTA & PIN] - for now optional --> |
| <arg name="pinCode" type="OCTET_STRING" optional="true" /> |
| </command> |
| <command source="client" code="1" name="UnlockDoor" mustUseTimedInvoke="true"> |
| <description>This command causes the lock device to unlock the door.</description> |
| <!-- Conformance feature [COTA & PIN] - for now optional --> |
| <arg name="pinCode" type="OCTET_STRING" optional="true" /> |
| </command> |
| <!-- Command Toggle with ID 2 is deprecated/disallowed --> |
| <command source="client" code="3" name="UnlockWithTimeout" mustUseTimedInvoke="true" optional="true"> |
| <description>This command causes the lock device to unlock the door with a timeout parameter.</description> |
| <arg name="timeout" type="INT16U" /> |
| <!-- Conformance feature [COTA & PIN] - for now optional --> |
| <arg name="pinCode" type="OCTET_STRING" optional="true" /> |
| </command> |
| <!-- Conformance feature WDSCH - for now optional --> |
| <command source="client" code="11" name="SetWeekDaySchedule" optional="true"> |
| <description>Set a weekly repeating schedule for a specified user.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="weekDayIndex" type="INT8U" /> |
| <arg name="userIndex" type="INT16U" /> |
| <arg name="daysMask" type="DlDaysMaskMap" /> |
| <arg name="startHour" type="INT8U" /> |
| <arg name="startMinute" type="INT8U" /> |
| <arg name="endHour" type="INT8U" /> |
| <arg name="endMinute" type="INT8U" /> |
| </command> |
| <!-- Conformance feature WDSCH - for now optional --> |
| <command source="client" code="12" name="GetWeekDaySchedule" response="GetWeekDayScheduleResponse" optional="true"> |
| <description>Retrieve the specific weekly schedule for the specific user.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="weekDayIndex" type="INT8U" /> |
| <arg name="userIndex" type="INT16U" /> |
| </command> |
| <!-- Conformance feature WDSCH - for now optional --> |
| <command source="server" code="12" name="GetWeekDayScheduleResponse" disableDefaultResponse="true" optional="true"> |
| <description>Returns the weekly repeating schedule data for the specified schedule index.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="weekDayIndex" type="INT8U" /> |
| <arg name="userIndex" type="INT16U" /> |
| <arg name="status" type="DlStatus" /> |
| <arg name="daysMask" type="DlDaysMaskMap" optional="true" /> |
| <arg name="startHour" type="INT8U" optional="true" /> |
| <arg name="startMinute" type="INT8U" optional="true" /> |
| <arg name="endHour" type="INT8U" optional="true" /> |
| <arg name="endMinute" type="INT8U" optional="true" /> |
| </command> |
| <!-- Conformance feature WDSCH - for now optional --> |
| <command source="client" code="13" name="ClearWeekDaySchedule" optional="true"> |
| <description>Clear the specific weekly schedule or all weekly schedules for the specific user.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="weekDayIndex" type="INT8U" /> |
| <arg name="userIndex" type="INT16U" /> |
| </command> |
| <!-- Conformance feature YDSCH - for now optional --> |
| <command source="client" code="14" name="SetYearDaySchedule" optional="true"> |
| <description>Set a time-specific schedule ID for a specified user.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="yearDayIndex" type="INT8U" /> |
| <arg name="userIndex" type="INT16U" /> |
| <arg name="localStartTime" type="epoch_s" /> |
| <arg name="localEndTime" type="epoch_s" /> |
| </command> |
| <!-- Conformance feature YDSCH - for now optional --> |
| <command source="client" code="15" name="GetYearDaySchedule" response="GetYearDayScheduleResponse" optional="true"> |
| <description>Returns the year day schedule data for the specified schedule and user indexes.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="yearDayIndex" type="INT8U" /> |
| <arg name="userIndex" type="INT16U" /> |
| </command> |
| <!-- Conformance feature YDSCH - for now optional --> |
| <command source="server" code="15" name="GetYearDayScheduleResponse" disableDefaultResponse="true" optional="true"> |
| <description>Returns the year day schedule data for the specified schedule and user indexes.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="yearDayIndex" type="INT8U" /> |
| <arg name="userIndex" type="INT16U" /> |
| <arg name="status" type="DlStatus" /> |
| <arg name="localStartTime" type="epoch_s" optional="true" /> |
| <arg name="localEndTime" type="epoch_s" optional="true" /> |
| </command> |
| <!-- Conformance feature YDSCH - for now optional --> |
| <command source="client" code="16" name="ClearYearDaySchedule" optional="true"> |
| <description>Clears the specific year day schedule or all year day schedules for the specific user.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="yearDayIndex" type="INT8U" /> |
| <arg name="userIndex" type="INT16U" /> |
| </command> |
| <!-- Conformance feature HDSCH - for now optional --> |
| <command source="client" code="17" name="SetHolidaySchedule" optional="true"> |
| <description>Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="holidayIndex" type="INT8U" /> |
| <arg name="localStartTime" type="epoch_s" /> |
| <arg name="localEndTime" type="epoch_s" /> |
| <arg name="operatingMode" type="DlOperatingMode" /> |
| </command> |
| <!-- Conformance feature HDSCH - for now optional --> |
| <command source="client" code="18" name="GetHolidaySchedule" response="GetHolidayScheduleResponse" optional="true"> |
| <description>Get the holiday schedule for the specified index.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="holidayIndex" type="INT8U" /> |
| </command> |
| <!-- Conformance feature HDSCH - for now optional --> |
| <command source="server" code="18" name="GetHolidayScheduleResponse" disableDefaultResponse="true" optional="true"> |
| <description>Returns the Holiday Schedule Entry for the specified Holiday ID.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="holidayIndex" type="INT8U" /> |
| <arg name="status" type="DlStatus" /> |
| <arg name="localStartTime" type="epoch_s" optional="true" /> |
| <arg name="localEndTime" type="epoch_s" optional="true" /> |
| <arg name="operatingMode" type="DlOperatingMode" optional="true" /> |
| </command> |
| <!-- Conformance feature HDSCH - for now optional --> |
| <command source="client" code="19" name="ClearHolidaySchedule" optional="true"> |
| <description>Clears the holiday schedule or all holiday schedules.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="holidayIndex" type="INT8U" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="client" code="26" name="SetUser" mustUseTimedInvoke="true" optional="true"> |
| <description>Set User into the lock.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="operationType" type="DlDataOperationType" /> |
| <arg name="userIndex" type="INT16U" /> |
| <arg name="userName" type="CHAR_STRING" isNullable="true" /> |
| <arg name="userUniqueId" type="INT32U" isNullable="true" /> |
| <arg name="userStatus" type="DlUserStatus" isNullable="true" /> |
| <arg name="userType" type="DlUserType" isNullable="true" /> |
| <arg name="credentialRule" type="DlCredentialRule" isNullable="true" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="client" code="27" name="GetUser" response="GetUserResponse" optional="true"> |
| <description>Retrieve User.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="userIndex" type="INT16U" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="server" code="28" name="GetUserResponse" disableDefaultResponse="true" optional="true"> |
| <description>Returns the User for the specified UserIndex.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="userIndex" type="INT16U" /> |
| <arg name="userName" type="CHAR_STRING" isNullable="true" /> |
| <arg name="userUniqueId" type="INT32U" isNullable="true" /> |
| <arg name="userStatus" type="DlUserStatus" isNullable="true" /> |
| <arg name="userType" type="DlUserType" isNullable="true" /> |
| <arg name="credentialRule" type="DlCredentialRule" isNullable="true" /> |
| <arg name="credentials" type="DlCredential" array="true" isNullable="true" /> |
| <arg name="creatorFabricIndex" type="fabric_idx" isNullable="true" /> |
| <arg name="lastModifiedFabricIndex" type="fabric_idx" isNullable="true" /> |
| <arg name="nextUserIndex" type="INT16U" isNullable="true" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="client" code="29" name="ClearUser" mustUseTimedInvoke="true" optional="true"> |
| <description>Clears a User or all Users.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="userIndex" type="INT16U" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="client" code="34" name="SetCredential" response="SetCredentialResponse" mustUseTimedInvoke="true" optional="true"> |
| <description>Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="operationType" type="DlDataOperationType" /> |
| <arg name="credential" type="DlCredential" /> |
| <arg name="credentialData" type="LONG_OCTET_STRING" /> |
| <arg name="userIndex" type="INT16U" isNullable="true" /> |
| <arg name="userStatus" type="DlUserStatus" isNullable="true" /> |
| <arg name="userType" type="DlUserType" isNullable="true" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="server" code="35" name="SetCredentialResponse" disableDefaultResponse="true" optional="true"> |
| <description>Returns the status for setting the specified credential.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="status" type="DlStatus" /> |
| <arg name="userIndex" type="INT16U" isNullable="true" /> |
| <arg name="nextCredentialIndex" type="INT16U" isNullable="true" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="client" code="36" name="GetCredentialStatus" response="GetCredentialStatusResponse" optional="true"> |
| <description>Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="credential" type="DlCredential" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="server" code="37" name="GetCredentialStatusResponse" disableDefaultResponse="true" optional="true"> |
| <description>Returns the status for the specified credential.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="credentialExists" type="boolean" /> |
| <arg name="userIndex" type="INT16U" isNullable="true" /> |
| <arg name="creatorFabricIndex" type="fabric_idx" isNullable="true" /> |
| <arg name="lastModifiedFabricIndex" type="fabric_idx" isNullable="true" /> |
| <arg name="nextCredentialIndex" type="INT16U" isNullable="true" /> |
| </command> |
| <!-- Conformance feature USR - for now optional --> |
| <command source="client" code="38" name="ClearCredential" mustUseTimedInvoke="true" optional="true"> |
| <description>Clear one, one type, or all credentials except ProgrammingPIN credential.</description> |
| <access op="invoke" role="administer" /> |
| <arg name="credential" type="DlCredential" isNullable="true"/> |
| </command> |
| |
| |
| <!-- Events --> |
| <event side="server" code="0" name="DoorLockAlarm" priority="critical"> |
| <description>The door lock cluster provides several alarms which can be sent when there is a critical state on the door lock.</description> |
| <field id="0" name="AlarmCode" type="DlAlarmCode" /> |
| </event> |
| <!-- Conformance feature DPS - for now optional --> |
| <event side="server" code="1" name="DoorStateChange" priority="critical" optional="true"> |
| <description>The door lock server sends out a DoorStateChange event when the door lock door state changes.</description> |
| <field id="0" name="DoorState" type="DlDoorState" /> |
| </event> |
| <event side="server" code="2" name="LockOperation" priority="critical"> |
| <description>The door lock server sends out a LockOperation event when the event is triggered by the various lock operation sources.</description> |
| <field id="0" name="LockOperationType" type="DlLockOperationType" /> |
| <field id="1" name="OperationSource" type="DlOperationSource" /> |
| <field id="2" name="UserIndex" type="INT16U" isNullable="true" /> |
| <field id="3" name="FabricIndex" type="fabric_idx" isNullable="true" /> |
| <field id="4" name="SourceNode" type="NODE_ID" isNullable="true" /> |
| <!-- Conformance feature [USR] - for now optional --> |
| <field id="5" name="Credentials" type="DlCredential" array="true" isNullable="true" optional="true" /> |
| </event> |
| <event side="server" code="3" name="LockOperationError" priority="critical"> |
| <description>The door lock server sends out a LockOperationError event when a lock operation fails for various reasons.</description> |
| <field id="0" name="LockOperationType" type="DlLockOperationType" /> |
| <field id="1" name="OperationSource" type="DlOperationSource" /> |
| <field id="2" name="OperationError" type="DlOperationError" /> |
| <field id="3" name="UserIndex" type="INT16U" isNullable="true" /> |
| <field id="4" name="FabricIndex" type="fabric_idx" isNullable="true" /> |
| <field id="5" name="SourceNode" type="NODE_ID" isNullable="true" /> |
| <!-- Conformance feature [USR] - for now optional --> |
| <field id="6" name="Credentials" type="DlCredential" array="true" isNullable="true" optional="true" /> |
| </event> |
| <event side="server" code="4" name="LockUserChange" priority="info"> |
| <description>The door lock server sends out a LockUserChange event when a lock user, schedule, or credential change has occurred.</description> |
| <field id="0" name="LockDataType" type="DlLockDataType" /> |
| <field id="1" name="DataOperationType" type="DlDataOperationType" /> |
| <field id="2" name="OperationSource" type="DlOperationSource" /> |
| <field id="3" name="UserIndex" type="INT16U" isNullable="true" /> |
| <field id="4" name="FabricIndex" type="fabric_idx" isNullable="true" /> |
| <field id="5" name="SourceNode" type="NODE_ID" isNullable="true" /> |
| <field id="6" name="DataIndex" type="INT16U" isNullable="true" /> |
| </event> |
| </cluster> |
| |
| |
| <!-- Cluster data types --> |
| <enum name="DlAlarmCode" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="LockJammed" /> |
| <item value="1" name="LockFactoryReset" /> |
| <item value="3" name="LockRadioPowerCycled" /> |
| <item value="4" name="WrongCodeEntryLimit" /> |
| <item value="5" name="FrontEsceutcheonRemoved" /> |
| <item value="6" name="DoorForcedOpen" /> |
| <item value="7" name="DoorAjar" /> |
| <item value="8" name="ForcedUser" /> |
| </enum> |
| |
| <enum name="DlCredentialRule" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="Single" /> |
| <item value="1" name="Double" /> |
| <item value="2" name="Tri" /> |
| </enum> |
| |
| <bitmap name="DlCredentialRuleMask" type="BITMAP8"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Single" /> |
| <field mask="0x02" name="Dual" /> |
| <field mask="0x04" name="Tri" /> |
| </bitmap> |
| |
| <struct name="DlCredential"> |
| <cluster code="0x0101" /> |
| <item name="CredentialType" type="DlCredentialType" /> |
| <item name="CredentialIndex" type="INT16U" /> |
| </struct> |
| |
| <enum name="DlCredentialType" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="ProgrammingPIN" /> |
| <item value="1" name="PIN" /> |
| <item value="2" name="RFID" /> |
| <item value="3" name="Fingerprint" /> |
| <item value="4" name="FingerVein" /> |
| <item value="5" name="Face" /> |
| </enum> |
| |
| <enum name="DlDataOperationType" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="Add" /> |
| <item value="1" name="Clear" /> |
| <item value="2" name="Modify" /> |
| </enum> |
| |
| <bitmap name="DlDaysMaskMap" type="BITMAP8"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Sunday" /> |
| <field mask="0x02" name="Monday" /> |
| <field mask="0x04" name="Tuesday" /> |
| <field mask="0x08" name="Wednesday" /> |
| <field mask="0x10" name="Thursday" /> |
| <field mask="0x20" name="Friday" /> |
| <field mask="0x40" name="Saturday" /> |
| </bitmap> |
| |
| <enum name="DlDoorState" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="DoorOpen" /> |
| <item value="1" name="DoorClosed" /> |
| <item value="2" name="DoorJammed" /> |
| <item value="3" name="DoorForcedOpen" /> |
| <item value="4" name="DoorUnspecifiedError" /> |
| <item value="5" name="DoorAjar" /> |
| </enum> |
| |
| <enum name="DlLockDataType" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="Unspecified" /> |
| <item value="1" name="ProgrammingCode" /> |
| <item value="2" name="UserIndex" /> |
| <item value="3" name="WeekDaySchedule" /> |
| <item value="4" name="YearDaySchedule" /> |
| <item value="5" name="HolidaySchedule" /> |
| <item value="6" name="PIN" /> |
| <item value="7" name="RFID" /> |
| <item value="8" name="Fingerprint" /> |
| </enum> |
| |
| <enum name="DlLockOperationType" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="Lock" /> |
| <item value="1" name="Unlock" /> |
| <item value="2" name="NonAccessUserEvent" /> |
| <item value="3" name="ForcedUserEvent" /> |
| </enum> |
| |
| <enum name="DlOperationError" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="Unspecified" /> |
| <item value="1" name="InvalidCredential" /> |
| <item value="2" name="DisabledUserDenied" /> |
| <item value="3" name="Restricted" /> |
| <item value="4" name="InsufficientBattery" /> |
| </enum> |
| |
| <enum name="DlOperatingMode" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="Normal" /> |
| <item value="1" name="Vacation" /> |
| <item value="2" name="Privacy" /> |
| <item value="3" name="NoRemoteLockUnlock" /> |
| <item value="4" name="Passage" /> |
| </enum> |
| |
| <enum name="DlOperationSource" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="Unspecified" /> |
| <item value="1" name="Manual" /> |
| <item value="2" name="ProprietaryRemote" /> |
| <item value="3" name="Keypad" /> |
| <item value="4" name="Auto" /> |
| <item value="5" name="Button" /> |
| <item value="6" name="Schedule" /> |
| <item value="7" name="Remote" /> |
| <item value="8" name="RFID" /> |
| <item value="9" name="Biometric" /> |
| </enum> |
| |
| <enum name="DlUserStatus" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="Available" /> |
| <item value="1" name="OccupiedEnabled" /> |
| <item value="3" name="OccupiedDisabled" /> |
| </enum> |
| |
| <enum name="DlUserType" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="UnrestrictedUser" /> |
| <item value="1" name="YearDayScheduleUser" /> |
| <item value="2" name="WeekDayScheduleUser" /> |
| <item value="3" name="ProgrammingUser" /> |
| <item value="4" name="NonAccessUser" /> |
| <item value="5" name="ForcedUser" /> |
| <item value="6" name="DisposableUser" /> |
| <item value="7" name="ExpiringUser" /> |
| <item value="8" name="ScheduleRestrictedUser" /> |
| <item value="9" name="RemoteOnlyUser" /> |
| </enum> |
| |
| |
| <!-- Auxiliary data types --> |
| <!-- LockState Attribute Values --> |
| <enum name="DlLockState" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="NotFullyLocked" /> |
| <item value="1" name="Locked" /> |
| <item value="2" name="Unlocked" /> |
| </enum> |
| |
| <!-- LockType Attribute Values --> |
| <enum name="DlLockType" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0" name="DeadBolt" /> |
| <item value="1" name="Magnetic" /> |
| <item value="2" name="Other" /> |
| <item value="3" name="Mortise" /> |
| <item value="4" name="Rim" /> |
| <item value="5" name="LatchBolt" /> |
| <item value="6" name="CylindricalLock" /> |
| <item value="7" name="TubularLock" /> |
| <item value="8" name="InterconnectedLock" /> |
| <item value="9" name="Dead Latch" /> |
| <item value="10" name="Door Furniture" /> |
| </enum> |
| |
| <!-- CredentialRulesSupport attribute bit meaning set --> |
| <bitmap name="DlCredentialRulesSupport" type="BITMAP8"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Single" /> |
| <field mask="0x02" name="Dual" /> |
| <field mask="0x04" name="Tri" /> |
| </bitmap> |
| |
| <!-- SupportedOperatingModes attribute bit meaning set --> |
| <bitmap name="DlSupportedOperatingModes" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Normal" /> |
| <field mask="0x02" name="Vacation" /> <!-- Could be optional --> |
| <field mask="0x04" name="Privacy" /> <!-- Could be optional --> |
| <field mask="0x08" name="NoRemoteLockUnlock" /> |
| <field mask="0x10" name="Passage" /> <!-- Could be optional --> |
| </bitmap> |
| |
| <!-- DefaultConfigurationRegister attribute bit meaning set --> |
| <bitmap name="DlDefaultConfigurationRegister" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="EnableLocalProgrammingEnabled" /> |
| <field mask="0x02" name="KeypadInterfaceDefaultAccessEnabled" /> |
| <field mask="0x04" name="RemoteInterfaceDefaultAccessIsEnabled" /> |
| <field mask="0x20" name="SoundEnabled" /> |
| <field mask="0x40" name="AutoRelockTimeSet" /> |
| <field mask="0x80" name="LEDSettingsSet" /> |
| </bitmap> |
| |
| <!-- LocalProgrammingFeatures attribute bit meaning set --> |
| <bitmap name="DlLocalProgrammingFeatures" type="BITMAP8"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="AddUsersCredentialsSchedulesLocally" /> |
| <field mask="0x02" name="ModifyUsersCredentialsSchedulesLocally" /> |
| <field mask="0x04" name="ClearUsersCredentialsSchedulesLocally" /> |
| <field mask="0x08" name="AdjustLockSettingsLocally" /> |
| </bitmap> |
| |
| <!-- KeypadOperationEventMask attribute bit meaning set --> |
| <bitmap name="DlKeypadOperationEventMask" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Unknown" /> |
| <field mask="0x02" name="Lock" /> |
| <field mask="0x04" name="Unlock" /> |
| <field mask="0x08" name="LockInvalidPIN" /> |
| <field mask="0x10" name="LockInvalidSchedule" /> |
| <field mask="0x20" name="UnlockInvalidCode" /> |
| <field mask="0x40" name="UnlockInvalidSchedule" /> |
| <field mask="0x80" name="NonAccessUserOpEvent" /> |
| </bitmap> |
| |
| <!-- RemoteOperationEventMask attribute bit meaning set --> |
| <bitmap name="DlRemoteOperationEventMask" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Unknown" /> |
| <field mask="0x02" name="Lock" /> |
| <field mask="0x04" name="Unlock" /> |
| <field mask="0x08" name="LockInvalidCode" /> |
| <field mask="0x10" name="LockInvalidSchedule" /> |
| <field mask="0x20" name="UnlockInvalidCode" /> |
| <field mask="0x40" name="UnlockInvalidSchedule" /> |
| </bitmap> |
| |
| <!-- ManualOperationEventMask attribute bit meaning set --> |
| <bitmap name="DlManualOperationEventMask" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x001" name="Unknown" /> |
| <field mask="0x002" name="ThumbturnLock" /> |
| <field mask="0x004" name="ThumbturnUnlock" /> |
| <field mask="0x008" name="OneTouchLock" /> |
| <field mask="0x010" name="KeyLock" /> |
| <field mask="0x020" name="KeyUnlock" /> |
| <field mask="0x040" name="AutoLock" /> |
| <field mask="0x080" name="ScheduleLock" /> |
| <field mask="0x100" name="ScheduleUnlock" /> |
| <field mask="0x200" name="ManualLock" /> |
| <field mask="0x400" name="ManualUnlock" /> |
| </bitmap> |
| |
| <!-- RFIDOperationEventMask attribute bit meaning set --> |
| <bitmap name="DlRFIDOperationEventMask" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Unknown" /> |
| <field mask="0x02" name="Lock" /> |
| <field mask="0x04" name="Unlock" /> |
| <field mask="0x08" name="LockInvalidRFID" /> |
| <field mask="0x10" name="LockInvalidSchedule" /> |
| <field mask="0x20" name="UnlockInvalidRFID" /> |
| <field mask="0x40" name="UnlockInvalidSchedule" /> |
| </bitmap> |
| |
| <!-- KeypadProgrammingEventMask attribute bit meaning set --> |
| <bitmap name="DlKeypadProgrammingEventMask" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Unknown" /> |
| <field mask="0x02" name="ProgrammingPINChanged" /> |
| <field mask="0x04" name="PINAdded" /> |
| <field mask="0x08" name="PINCleared" /> |
| <field mask="0x10" name="PINChanged" /> |
| </bitmap> |
| |
| <!-- RemoteProgrammingEventMask attribute bit meaning set --> |
| <bitmap name="DlRemoteProgrammingEventMask" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Unknown" /> |
| <field mask="0x02" name="ProgrammingPINChanged" /> |
| <field mask="0x04" name="PINAdded" /> |
| <field mask="0x08" name="PINCleared" /> |
| <field mask="0x10" name="PINChanged" /> |
| <field mask="0x20" name="RFIDCodeAdded" /> |
| <field mask="0x40" name="RFIDCodeCleared" /> |
| </bitmap> |
| |
| <!-- RFIDProgrammingEventMask attribute bit meaning set --> |
| <bitmap name="DlRFIDProgrammingEventMask" type="BITMAP16"> |
| <cluster code="0x0101" /> |
| <field mask="0x01" name="Unknown" /> |
| <field mask="0x20" name="RFIDCodeAdded" /> |
| <field mask="0x40" name="RFIDCodeCleared" /> |
| </bitmap> |
| |
| <enum name="DlStatus" type="ENUM8"> |
| <cluster code="0x0101" /> |
| <item value="0x00" name="Success" /> |
| <item value="0x01" name="Failure" /> |
| <item value="0x02" name="Duplicate" /> |
| <item value="0x03" name="Occupied" /> |
| <item value="0x85" name="InvalidField" /> |
| <item value="0x89" name="ResourceExhausted" /> |
| <item value="0x8B" name="NotFound" /> |
| </enum> |
| |
| <bitmap name="DoorLockFeature" type="BITMAP32"> |
| <cluster code="0x0101" /> |
| <field name="PINCredentials" mask="0x01" /> |
| <field name="RFIDCredentials" mask="0x02" /> |
| <field name="FingerCredentials" mask="0x04" /> |
| <field name="Logging" mask="0x08" /> |
| <field name="WeekDaySchedules" mask="0x10" /> |
| <field name="DoorPositionSensor" mask="0x20" /> |
| <field name="FaceCredentials" mask="0x40" /> |
| <field name="CredentialsOTA" mask="0x80" /> |
| <field name="UsersManagement" mask="0x100" /> |
| <field name="Notifications" mask="0x200" /> |
| <field name="YearDaySchedules" mask="0x400" /> |
| <field name="HolidaySchedules" mask="0x800" /> |
| </bitmap> |
| </configurator> |