BetaPinCodeCredentials

Posted November 29, 2022 by Customer Success ‐ 3 min read

Great new feature! You now have more control of your pin codes!

Yonomi Platform now has a new trait that adds functionality to pin code creation and manipulation. This new trait BetaPinCodeCredentials provides unique identifiers for each pin code that is added to a lock. In addition, pin code schedules are no longer limited to be set at the top of the hour.

How it works:

Prior to this new trait, the PinCodeCredential trait consisted of the pincode, pincode name and any schedules. BetaPinCodeCredentials extends on these concepts and adds more specificity.

New parameters have been added to better organize pin codes and their functionality.

  • alwaysActive gives the ability to set pincodes with constant access
  • Schedules have been separated into:
    • recurringSchedules - still use RRULE to specify when the pin code is active with the addition of BYMINUTE to specify an exact time
    • temporarySchedules - will now use ISO 8601 format to specify the start and end of a schedule

Here is an example of the format in which pin codes will be created:

mutation makeAddPinCodeCredentialActionRequest($deviceId: ID!) {
  actionBetaPinCodeCredentialsCreatePinCodeCredential(
    deviceId: $deviceId
    pinCodeCredential: {
      pinCode: "2914"
      name: "New pin"
      alwaysActive: false
      recurringSchedules: [
        {
          duration: 181
          rrule: "RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO;BYHOUR=2,7"
        }
      ]
      temporarySchedules: [
        {
          startDatetime: “2023-10-20T08:00:00.000Z”,
          endDatetime: “2024-10-20T08:00:00.000Z”
        }
      ]
    }
  ) {
    actionId
  }
}

Once a pin code is created using BetaPinCodeCredentials, a webhook will be sent with this pin codes UUID.

{
  "type": "deviceEventQueueAction",
  "content": {
    "deviceId": "6b14e804-2117-4587-acd5-6d499b0871eb",
    "actionId": "69ce622c-3e9e-4df5-a35f-2aefa04e829b",
    "traitName": "BetaPinCodeCredentials",
    "traitInstance": "default",
    "actionName": "createPinCodeCredential",
    "parameters": {
      "pinCodeCredential": {
        "pinCode": "2914",
        "name": "New pin",
        "alwaysActive": false,
        "recurringSchedules": [
          {
            "duration": 181,
            "rrule": "RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO;BYHOUR=2,7"
          }
        ],
        "temporarySchedules": [
          {
            "startDatetime": "2023-10-20T08:00:00.000Z",
            "endDatetime": "2024-10-20T08:00:00.000Z"
          }
        ],
        "id": "879c5ee4-2bed-48cc-bb00-602ef428581d"
      }
    }
  }
}

The UUID will be required when updating or deleting this pin code.

mutation makeModifyPinCodeCredentialActionRequest($deviceId: ID!) {
  actionBetaPinCodeCredentialsUpdatePinCodeCredential(
    deviceId: $deviceId
    pinCodeCredential: {
      pinCode: "2961"
      name: "New pin"
      id: "879c5ee4-2bed-48cc-bb00-602ef428581d"
      alwaysActive: true
      recurringSchedules: []
      temporarySchedules: []
    }
  ) {
    actionId
  }
}

Change Impact

  1. With this change, developers are now able to match schedule windows to exact times for reservations, giving access only in the window that is allotted.

  2. An access code now has a unique identifier allowing developers to track access code lifecycles accurately.

How to begin using the new feature:

  1. Verify that you have Beta traits enabled by reaching out to a Customer Success Engineer. If not, Customer Success can enable it for you.

  2. Access BetaPinCodeCredentials trait documentation in the BetaPinCodeCredentials Trait section of the Trait Reference.

**Note:

  • Schlage locks do not allow both temporary and recurring schedules set to one pin code
  • This is a Beta trait with early access and we are collecting feedback that may lead to breaking changes. We do not recommend implementing this for production purposes.