Last Updated on : 2024-09-10 09:43:43
This topic describes the APIs related to device control, including getting instruction set, specifications, properties, the latest statuses, and sending instructions.
Request method | API | Description |
---|---|---|
GET | /v1.0/functions/{category} | Get the instruction set by category |
GET | /v1.0/devices/{device_id}/functions | Get the instruction set by device |
GET | /v1.0/devices/{device_id}/specifications | Get the device’s specifications and properties (including instruction set and status set) |
POST | /v1.0/devices/{device_id}/commands | Send instructions to the device |
PUT | /v1.0/devices/{device_id}/functions/{function_code} | Modify the name of a data point |
Query the instruction set by category. This instruction set has the biggest amount of instructions in the category of the all-in-one apps, which can be used and referred to by developers. If you are a platform developer, you can develop applications according to this instruction set.
GET /v1.0/functions/{category}
Parameter name | Data type | Parameter type | Required | Description |
---|---|---|---|---|
category | String | URI | Yes | Category name, such as kg, cz, and dj. |
Parameter name | Data type | Description |
---|---|---|
code | Integer | Error code. |
success | Boolean | Determine whether the request succeeded or not. true: succeeded false: failed |
msg | String | The message returned if the request fails. It will return null if the request succeeds. |
result | Object<result> | The returned result. |
Description of result
Parameter name | Category | Description |
---|---|---|
category | String | Product category |
functions | List<funnctions> | Instruction set |
Description of functions
Parameter name | Category | Description |
---|---|---|
code | String | Instruction |
values | String | The range of input parameter values |
name | String | Instruction name |
desc | String | Description |
GET /v1.0/functions/kg
TuyaClient client = new TuyaClient(clientId, secret, RegionEnum.CN);
CategoryFunctions categoryFunctions = client.getFunctionByCategory("kg");
System.out.println("Get the function list by category: ");
System.out.println(JSONObject.toJSONString(categoryFunctions));
{
"success": true,
"t": 1571293457435,
"result": {
"category": "kg",
"functions": [
{
"name": "Switch",
"desc": "The master switch. true: Open all sub switches. false: Close all sub switches",
"code": "switch",
"type": "Boolean",
"values": "{}"
},
{
"name": "Switch 1",
"desc": "Switch 1",
"code": "switch_1",
"type": "Boolean",
"values": "{}"
},
{
"name": "Switch 2",
"desc": "Switch 2",
"code": "switch_2",
"type": "Boolean",
"values": "{}"
},
{
"name": "Switch 3",
"desc": "Switch 3",
"code": "switch_3",
"type": "Boolean",
"values": "{}"
},
{
"name": "Switch 4",
"desc": "Switch 4",
"code": "switch_4",
"type": "Boolean",
"values": "{}"
},
{
"name": "Switch 5",
"desc": "Switch 5",
"code": "switch_5",
"type": "Boolean",
"values": "{}"
},
{
"name": "Switch 6",
"desc": "Switch 6",
"code": "switch_6",
"type": "Boolean",
"values": "{}"
},
{
"name": "The countdown of switch 1",
"desc": "The countdown of switch 1",
"code": "countdown_1",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
},
{
"name": "The countdown of switch 2",
"desc": "The countdown of switch 2",
"code": "countdown_2",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
},
{
"name": "The countdown of switch 3",
"desc": "The countdown of switch 3",
"code": "countdown_3",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
},
{
"name": "The countdown of switch 4",
"desc": "The countdown of switch 4",
"code": "countdown_4",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
},
{
"name": "The countdown of switch 5",
"desc": "The countdown of switch 5",
"code": "countdown_5",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
},
{
"name": "The countdown of switch 6",
"desc": "The countdown of switch 6",
"code": "countdown_6",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
},
{
"name": "The countdown of USB 1",
"desc": "The countdown of USB 1",
"code": "countdown_usb1",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
},
{
"name": "The countdown of USB 2",
"desc": "The countdown of USB 2",
"code": "countdown_usb2",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
},
{
"name": "USB1 ",
"desc": "USB 1",
"code": "switch_usb1",
"type": "Boolean",
"values": "{}"
},
{
"name": "USB 2",
"desc": "USB 2",
"code": "switch_usb2",
"type": "Boolean",
"values": "{}"
}
]
}
}
The following are common service exceptions for this interface. For more exception errors, see Error Code.
Error code | Description |
---|---|
500 | System error |
2015 | This category is not supported at present |
Query the functions supported by the device. You can send control by the obtained instructions.
GET /v1.0/devices/{device_id}/functions
Parameter name | Data type | Parameter type | Required | Description |
---|---|---|---|---|
device_id | String | URI | Yes | Device ID |
Parameter name | Data type | Description |
---|---|---|
code | Integer | Error code. |
success | Boolean | Determine whether the request succeeded or not. true: succeeded false: failed |
msg | String | The message returned if the request fails. It will return null if the request succeeds. |
result | Object<result> | The returned result. |
Description of result
Parameter name | Category | Description |
---|---|---|
category | String | Product category |
functions | List<function> | Instruction set |
Description of functions
Parameter name | Category | Description |
---|---|---|
code | String | Instruction |
type | String | Instruction type |
values | String | The range of input parameter values |
name | String | Instruction name |
desc | String | Description |
GET /v1.0/devices/vdevo155XXXX83954683/functions
TuyaClient client = new TuyaClient(clientId, secret, RegionEnum.CN);
categoryFunctions = client.getFunctionsByDevId(DEV_ID);
System.out.println("Get the function list by device ID: ");
System.out.println(JSONObject.toJSONString(categoryFunctions));
{
"success": true,
"t": 1571293776551,
"result": {
"category": "cz",
"functions": [
{
"name": "Switch",
"desc": "Switch",
"code": "switch_1",
"type": "Boolean",
"values": "{}"
},
{
"name": "The countdown of switch 1",
"desc": "The countdown of switch 1",
"code": "countdown_1",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
}
]
}
}
The following are common service exceptions for this interface. For more exception errors, see Error Code.
Error code | description |
---|---|
500 | System error |
1106 | Illegal permission |
Query the functions supported by the devices List. You can send control by the obtained instructions. support up to 20 devices
GET /v1.0/devices/functions
Parameter name | Data type | Parameter type | Required | Description |
---|---|---|---|---|
device_ids | String | URI | Yes | Devices List |
Parameter name | Data type | Description |
---|---|---|
code | Integer | Error code. |
success | Boolean | Determine whether the request succeeded or not. true: succeeded false: failed |
msg | String | The message returned if the request fails. It will return null if the request succeeds. |
result | Object<result> | The returned result. |
Description of result
Parameter name | Category | Description |
---|---|---|
category | String | Product category |
functions | List<function> | Instruction set |
devices | List | device Id List |
Description of functions
Parameter name | Category | Description |
---|---|---|
code | String | Instruction |
type | String | Instruction type |
values | String | The range of input parameter values |
name | String | Instruction name |
desc | String | Description |
GET /v1.0/devices/functions?device_ids=06200286dc4f22c8418c,6c8beb2fa517fbc901dtln
TuyaClient client = new TuyaClient(clientId, secret, RegionEnum.CN);
categoryFunctions = client.getFunctionsByDevsList(DEV_ID);
System.out.println("Get the function list by devices List: ");
System.out.println(JSONObject.toJSONString(categoryFunctions));
{
"result": [
{
"category": "cz",
"devices": [
"06200286dc4f22c8418c"
],
"functions": [
{
"code": "switch",
"desc": "开关",
"name": "开关",
"type": "Boolean",
"values": "{}"
},
{
"code": "countdown_1",
"desc": "开关1倒计时",
"name": "开关1倒计时",
"type": "Integer",
"values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
}
]
}
],
"success": true,
"t": 1618822009199
}
The following are common service exceptions for this interface. For more exception errors, see Error Code.
Error code | description |
---|---|
500 | System error |
1106 | Illegal permission |
This interface is used to get the instruction set and status set supported by the device according to the device ID.
GET /v1.0/devices/{device_id}/specifications
Parameter name | Data type | Parameter type | Required | Description |
---|---|---|---|---|
device_id | String | URI | Yes | Device ID |
Parameter name | Data type | Description |
---|---|---|
code | Integer | Error Code. |
success | Boolean | Determine whether the request succeeded or not. true: succeeded false: failed |
msg | String | The message returned if the request fails. It will return null if the request succeeds. |
result | Object<result> | The returned result. |
Description of result
Parameter name | Category | Description |
---|---|---|
category | String | Product category |
functions | List<functions> | Instruction set |
status | List<status> | Status set |
Description of functions
Parameter name | Category | Description |
---|---|---|
code | String | command |
type | String | Type |
values | String | The range of parameter values |
Description of status
Parameter name | Category | Description |
---|---|---|
code | String | status code |
type | String | Type |
values | String | The range of parameter values |
GET /v1.0/devices/vdevoXXXXXXXXXXXXXXX/specifications
N/A
{
"success": true,
"t": 1571201730542,
"result": {
"category": "dj",
"functions": [
{
"code": "switch_led",
"type": "Boolean",
"values": "{}"
},
{
"code": "work_mode",
"type": "Enum",
"values": "{\"range\":[\"colour\"]}"
},
{
"code": "bright_value",
"type": "Integer",
"values": "{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1}"
},
{
"code": "colour_data",
"type": "Json",
"values": "{\"h\":{\"min\":1,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":1,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1},\"v\":{\"min\":1,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1}}"
}
],
"status": [
{
"code": "switch_led",
"type": "Boolean",
"values": "{}"
},
{
"code": "work_mode",
"type": "Enum",
"values": "{\"range\":[\"colour\"]}"
},
{
"code": "bright_value",
"type": "Integer",
"values": "{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1}"
},
{
"code": "colour_data",
"type": "Json",
"values": "{\"h\":{\"min\":1,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":1,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1},\"v\":{\"min\":1,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1}}"
}
]
}
}
This interface is used to send one or more obtained instruction sets. Whether instruction sets can be sent simultaneously depends on the product.
POST /v1.0/devices/{device_id}/commands
Parameter name | Data type | Parameter type | Required | Description |
---|---|---|---|---|
device_id | String | URI | Yes | Device ID |
commands | Object | body | Yes | Command set |
Parameter name | Data type | Description |
---|---|---|
code | Integer | Error code. |
success | Boolean | Determine whether the request succeeded or not. true: succeeded false: failed |
msg | String | The message returned if the request fails. It will return null if the request succeeds. |
result | Boolean | Determine whether the request succeeded or not. |
POST /v1.0/devices/vdevo1552XXXX3954683/commands
{
"commands":[
{
"code":"switch_led",
"value":true
},
{
"code":"bright",
"value":30
}
]
}
TuyaClient client = new TuyaClient(clientId, secret, RegionEnum.CN);
JSONObject temp = new JSONObject();
temp.put("v", 0);
temp.put("s", 1);
temp.put("h", 1);
Command command = new Command("colour_data", temp);
List<Command> list = new ArrayList<Command>(1);
list.add(command);
Boolean isSuccess = client.postDeviceCommand("vdevo155013689282523", list);
System.out.println("Send device control instructions: ");
System.out.println(isSuccess);
{
"success":true,
"t":1551851043862,
"result":true
}
The following are common service exceptions for this interface. For more exception errors, see Error Code.
Error code | Description |
---|---|
500 | System error |
2008 | Instruction not supported. Confirm whether the instruction or value is correct |
Modify the name of a data point for a sub-device.
PUT /v1.0/devices/{device_id}/functions/{function_code}
Parameter name | Data type | Parameter location | Required | Description |
---|---|---|---|---|
device_id | String | URI | Yes | The device ID. |
function_code | String | URI | Yes | The code of a specified data point. |
name | String | Body | Yes | The name of a specified data point. |
PUT /v1.0/devices/vdevo156083035305868/functions/switch_1
{
"name":"lalal"
}
Parameter name | Data type | Description |
---|---|---|
code | Integer | The response code. See Global Error Codes. |
success | Boolean | Indicates whether the operation is successful. Valid values:
|
msg | String | The error message returned if the API call fails. This parameter value is empty if the API call succeeds. |
result | Object | The returned result. |
t | Long | The timestamp. |
{
"success": true,
"t": 1562229928732,
"result": true
}
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback