As of Sept 14, here is the response from SmartThings regarding the lockCodes capability:
Unfortunately, the Lock Codes capability still being under proposed status, therefore it may not work as expected at the Connected platform .
For this and more details about the Lock Codes capability run the following cURL script into your computer’s terminal ( notice that you’ll need a personal access token to authenticate yourself to the API ).
curl -X GET "http://api.smartthings.com/v1/capabilities/lockCodes/1" \
-H "Authorization: Bearer <personal_access_token>"
Please, let me know if is there anything else I can help you with.
If you look at that URL, you get the following:
{
"id": "lockCodes",
"version": 1,
"status": "proposed",
"name": "Lock Codes",
"attributes": {
"codeLength": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": []
},
"setter": "setCodeLength",
"enumCommands": []
},
"maxCodes": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": []
},
"enumCommands": []
},
"maxCodeLength": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": []
},
"enumCommands": []
},
"codeChanged": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "String",
"type": "string",
"maxLength": 255
}
},
"additionalProperties": false,
"required": []
},
"enumCommands": []
},
"lock": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "LockState",
"type": "string",
"enum": [
"locked",
"unknown",
"unlocked",
"unlocked with timeout"
]
}
},
"additionalProperties": false,
"required": []
},
"enumCommands": [
{
"command": "lock",
"value": "locked"
},
{
"command": "unlock",
"value": "unlocked"
},
{
"command": "unlockWithTimeout",
"value": "unlocked with timeout"
}
]
},
"minCodeLength": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": []
},
"enumCommands": []
},
"codeReport": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "JsonObject",
"type": "object"
}
},
"additionalProperties": false,
"required": [
"value"
]
},
"enumCommands": []
},
"scanCodes": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "String",
"type": "string",
"maxLength": 255
}
},
"additionalProperties": false,
"required": []
},
"enumCommands": []
},
"lockCodes": {
"schema": {
"type": "object",
"properties": {
"value": {
"title": "String",
"type": "string",
"maxLength": 255
}
},
"additionalProperties": false,
"required": []
},
"enumCommands": []
}
},
"commands": {
"setCodeLength": {
"arguments": [
{
"name": "length",
"optional": false,
"schema": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
}
]
},
"reloadAllCodes": {
"arguments": []
},
"unlock": {
"arguments": []
},
"unlockWithTimeout": {
"arguments": []
},
"setCode": {
"arguments": [
{
"name": "codeSlot",
"optional": false,
"schema": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
},
{
"name": "codePIN",
"optional": false,
"schema": {
"title": "String",
"type": "string",
"maxLength": 255
}
},
{
"name": "codeName",
"optional": false,
"schema": {
"title": "String",
"type": "string",
"maxLength": 255
}
}
]
},
"updateCodes": {
"arguments": [
{
"name": "codes",
"optional": false,
"schema": {
"title": "JsonObject",
"type": "object"
}
}
]
},
"lock": {
"arguments": []
},
"requestCode": {
"arguments": [
{
"name": "codeSlot",
"optional": false,
"schema": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
}
]
},
"deleteCode": {
"arguments": [
{
"name": "codeSlot",
"optional": false,
"schema": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
}
]
},
"nameSlot": {
"arguments": [
{
"name": "codeSlot",
"optional": false,
"schema": {
"title": "PositiveInteger",
"type": "integer",
"minimum": 0
}
},
{
"name": "codeName",
"optional": false,
"schema": {
"title": "String",
"type": "string",
"maxLength": 255
}
}
]
}
}
}
It would seem the answer is: just wait.
Meanwhile, the groovy smartapp stuff does NOT have an EOL date yet and works fine. Even though they’re shutting down the old mobile app soon, I suspect the groovy backend will be much harder to sunset.