更新时间:2024-09-10 01:49:16下载pdf
本文为您介绍设备基础服务 API。
请求方式 | API | 描述 |
---|---|---|
GET | /v1.0/devices/{device_id} | 获取设备详情 |
GET | /v1.0/devices/{device_id}/logs | 查询设备日志 |
PUT | /v1.0/devices/{device_id}/reset-factory | 恢复设备出厂设置 |
DELETE | /v1.0/devices/{device_id} | 根据设备 ID 来移除设备 |
GET | /v1.0/devices/{deviceId}/sub-devices | 查询网关下的设备列表 |
GET | /v1.0/devices/factory-infos | 查询设备出厂信息 |
PUT | /v1.0/devices/{device_id} | 修改设备名称 |
GET | /v1.0/devices/{device_id}/status | 获取设备最新状态 |
可查询设备的详情信息,包括设备属性和设备最新状态。
GET /v1.0/devices/{device_id}
参数名 | 类型 | 参数类型 | 必填 | 说明 |
---|---|---|---|---|
device_id | String | URI | 是 | 设备 ID |
参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 响应码,详见 错误码。 |
success | Boolean | 判断请求是否成功。
|
msg | String | 请求失败返回的信息,成功则返回空值。 |
result | Object<result> | 返回结果。 |
result 说明
参数名 | 类型 | 说明 |
---|---|---|
id | String | 设备编号 |
name | String | 设备名称 |
uid | String | 用户 ID |
local_key | String | 密钥 |
category | String | 产品类别 |
product_id | String | 产品 ID |
product_name | String | 产品名称 |
sub | Boolean | 判断是否为子设备
|
uuid | String | 设备唯一标识 |
owner_id | String | 家庭 ID |
online | Boolean | 设备在线状态 |
status | Object<status> | 设备功能状态 |
active_time | Long | 设备激活时间,时间戳,精确到秒 |
biz_type | Long | 应用 biztype |
icon | String | 设备图标,中国区前缀是 https://images.tuyacn.com ,如果您获取的相对路径是 smart/product_icon/cz.png ,实际的图标地址为 https://images.tuyacn.com/smart/product_icon/cz.png |
ip | String | 设备 IP |
status 说明
参数名 | 类型 | 说明 |
---|---|---|
code | String | 功能点 Code |
value | String | 功能点的值 |
type | String | 功能点的类型 |
GET /v1.0/devices/vdevo153490924188132
TuyaClient client = new TuyaClient(clientId, secret, RegionEnum.CN);
DeviceVo deviceVo = client.getDeviceInfo(DEV_ID);
System.out.println("获取设备信息: ");
System.out.println(JSONObject.toJSONString(deviceVo));
{
"success": true,
"result": {
"active_time": 1589505938,
"biz_type": 299009,
"category": "qt",
"create_time": 1560827137,
"icon": "smart/icon/15402589135gknz23xajb_0.png",
"id": "60613135b121cddc294****",
"ip": "120.198.****.****",
"local_key": "3a9b50126fe473****",
"name": "体脂秤",
"online": true,
"owner_id": "1070****",
"product_id": "g0er6hSKgMqr****",
"product_name": "Wifi scales_OEM",
"status": [
{
"code": "weight",
"value": 48900
},
{
"code": "left_hand_r",
"value": 0
},
{
"code": "right_hand_r",
"value": 0
},
{
"code": "left_leg_r",
"value": 0
},
{
"code": "right_leg_r",
"value": 0
},
{
"code": "body_r",
"value": 653
},
{
"code": "battery_low",
"value": false
}
],
"sub": false,
"time_zone": "+08:00",
"uid": "ay157896239864843g****",
"update_time": 1589764585,
"uuid": "60613135b23cddc294****"
}
}
以下为该接口常见的业务异常,更多的异常错误,请参考 全局错误码。
错误码 | 说明 |
---|---|
500 | 系统错误 |
1106 | 权限非法 |
根据查询条件查询设备操作历史记录。
GET /v1.0/devices/{device_id}/logs
参数名 | 类型 | 参数位置 | 必填 | 说明 |
---|---|---|---|---|
device_id | String | URI | 是 | 设备 ID |
type | String | URL | 是 | 日志查询支持的类型。支持多个事件类型的查询,用半角逗号(,)隔开,必传,详情请参考 事件类型说明。 |
start_time | Long | URL | 是 | 查询的 13 位开始时间戳。如果为 0 或者为空,会自动设置为近 7 天前的时间戳,建议 start_time 设置大一点,避免一次查询太多的数据导致超时。 |
end_time | Long | URL | 是 | 查询的 13 位结束时间戳。 |
codes | String | URL | 否 | 设备支持的功能点。支持多个功能点的查询,用半角逗号(,)隔开,默认为空。 |
start_row_key | String | URL | 否 | 免费版参数,查询 Hbase 的行键。默认值为空。 |
last_row_key | String | URL | 否 | 收费版分页参数,最后一条数据的行键。默认值为空,查第一页,收费版必传。 |
last_event_time | Long | URL | 否 | 收费版分页参数,最后一条数据的事件发生时间。默认为空查第一页,收费版必传。 |
size | int | URL | 否 | 查询的日志数量大小。默认为 20。 |
query_type | Integer | URL | 否 | 查询类型,默认为 1。
|
免费版示例
{{url}}/v1.0/devices/78304402ecfabc1fd5b2/logs?start_row_key=&type=1,2&start_time=0&end_time=1545898159935&size=20
收费版示例
GET /v1.0/devices/03200026dc4f221b6d6d/logs?type=7&start_time=0&end_time=1545898159935&size=20&query_type=2&last_row_key=650823455f68a9cbafce08700557_9223370475075511414_1&last_event_time=1561779264393
参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 响应码,详见 全局错误码。 |
success | Boolean | 判断请求是否成功。
|
msg | String | 请求失败返回的信息,成功则返回空值。 |
result | Object<result> | 返回结果 |
t | Long | 时间戳 |
result 说明
参数名 | 类型 | 说明 |
---|---|---|
logs | Object<logs> | 日志消息体。 |
has_next | Boolean | 是否还有下一条。 |
device_id | String | 设备 ID。 |
current_row_key | String | 免费版参数,Hbase 的当前行键。 |
next_row_key | String | 免费版参数,下一条满足查询条件的 Hbase 行键。说明:如果返回值为 null,表示为没有满足查询条件的下一条日志。 |
count | Long | 收费版参数,满足查询条件的日志总数。 |
logs 说明
参数名 | 类型 | 说明 |
---|---|---|
code | String | 功能点 Code |
value | String | 功能点的值 |
event_time | String | 事件发生的时间戳 |
event_from | String | 事件触发的来源,请参考 事件来源说明。 |
event_id | String | 事件的类型,请参考 事件类型说明。 |
status | String | 数据有效,没有被删除。默认值为 1。 |
row | String | 收费版参数,为当前 Hbase 行键。 |
返回成功示例
免费版
{
"success": true,
"t": 1561344464370,
"result": {
"logs": [
{
"code": "switch_1",
"value": "false",
"event_time": 1560872567955,
"event_from": "1",
"event_id": 7
},
{
"code": "switch_1",
"value": "false",
"event_time": 1560783276382,
"event_from": "1",
"event_id": 7
}
],
"device_id": "75500780ecfabc9a****",
"has_next": true,
"current_row_key": "NjUwODIzNDU1ZjY4YTljYmFmY2UwODcwMDU1N185MjIzMzcwNDc1OTgyMjA3ODUyXzdfMQ==",
"next_row_key": "NjUwODIzNDU1ZjY4YTljYmFmY2UwODcwMDU1N185MjIzMzcwNDc2MDcxNDk5OTM0XzdfMQ=="
}
}
收费版
{
"success":true,
"t":1561344464370,
"result":{
"count":32,
"device_id":"75500780ecfabc9a****",
"has_next":true,
"logs":[
{
"event_id":1,
"event_time":1562031576431,
"event_from":"1",
"row":"650823455f68a9cbafce08700557_9223370474823199376_1",
"status":"1"
},
{
"event_id":1,
"event_time":1562031394665,
"event_from":"1",
"row":"650823455f68a9cbafce08700557_9223370474823381142_1",
"status":"1"
},
{
"event_id":1,
"event_time":1562031277824,
"event_from":"1",
"row":"650823455f68a9cbafce08700557_9223370474823497983_1",
"status":"1"
},
{
"event_id":1,
"event_time":1561935500636,
"event_from":"1",
"row":"650823455f68a9cbafce08700557_9223370474919275171_1",
"status":"1"
}
]
}
}
返回失败示例
{
"success": false,
"code": 2009,
"msg": "not support this device",
"t": 1561348644346
}
事件来源说明
code | 说明 |
---|---|
1 | 设备本身 |
2 | 客户端指令 |
3 | 第三方平台 |
4 | 云端指令 |
5 | App 移除 |
6 | App 恢复出厂设置 |
7 | App 提醒升级 |
8 | 硬件强制升级 |
9 | App 强制升级 |
10 | App 检测升级 |
11 | IoT 平台移除 |
12 | 涂鸦开发者移除 |
13 | 用户端移除 |
16 | 节能小程序 |
-1 | 未知 |
事件类型说明
code | 说明 |
---|---|
1 | 上线 |
2 | 下线 |
3 | 设备激活 |
4 | 设备重置 |
5 | 指令下发 |
6 | 固件升级 |
7 | 数据点上报 |
8 | 设备信号量 |
9 | 设备重启 |
10 | 定时信息 |
根据设备 ID 来恢复出厂设置。
PUT /v1.0/devices/{device_id}/reset-factory
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
device_id | String | 是 | 设备 ID |
PUT /v1.0/devices/6c362ac3c53fbd6f3e****/reset-factory
参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 响应码,详见 全局错误码。 |
success | Boolean | 判断请求是否成功。
|
msg | String | 请求失败返回的信息,成功则返回空值。 |
result | Boolean | 返回结果。 |
{
"success": true,
"t": 1550642917632,
"result": true
}
根据设备 ID 来移除设备。
DELETE /v1.0/devices/{device_id}
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
device_id | String | 是 | 设备 ID |
DELETE /v1.0/devices/6c362ac3c53fbd6f3ew***
参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 响应码,详见 全局错误码。 |
success | Boolean | 判断请求是否成功。
|
msg | String | 请求失败返回的信息,成功则返回空值。 |
result | Boolean | 返回结果。 |
查询网关下的设备列表。
GET /v1.0/devices/{deviceId}/sub-devices
参数名 | 类型 | 参数类型 | 必填 | 说明 |
---|---|---|---|---|
device_id | String | URI | 是 | 设备 ID |
名称 | 类型 | 描述 |
---|---|---|
t | Long | 时间戳 |
success | Boolean | 是否成功 |
result | List<result> | 结果 |
result 说明
参数名 | 参数类型 | 说明 |
---|---|---|
id | String | 设备 ID |
name | String | 设备名称 |
online | Boolean | 在线状态 |
owner_id | Long | 家庭 ID |
category | Integer | 类型 |
product_id | Integer | 产品 |
active_time | String | 激活时间 |
update_time | String | 更新时间 |
GET /v1.0/devices/vedeo16236124/sub-devices
{
"result": [
{
"active_time": 1586169374,
"category": "sj",
"id": "6c0746cfe887e21e8b****",
"name": "水浸警报",
"online": true,
"owner_id": "1059****",
"product_id": "rzeSU2h9uoklx***",
"update_time": 1586169379
}
],
"success": true,
"t": 1586169580204
}
以下为该接口常见的业务异常,更多的异常错误,请参考 全局错误码。
错误码 | 说明 |
---|---|
500 | 系统错误 |
查询设备出厂信息。
GET /v1.0/devices/factory-infos
参数名 | 类型 | 参数类型 | 必填 | 说明 |
---|---|---|---|---|
device_ids | String | URL | 是 | 设备 ID,以逗号分隔 |
名称 | 类型 | 描述 |
---|---|---|
t | Long | 时间戳 |
success | Boolean | 是否成功 |
result | List<result> | 结果 |
result 说明
参数名 | 参数类型 | 说明 |
---|---|---|
id | String | 设备 ID |
uuid | String | 设备名称 |
sn | String | 设备序列号 |
mac | String | 设备 MAC 地址 |
GET /v1.0/devices/factory-infos?device_ids=002008535ccf7f530***
{
"result": [
{
"id": "002008535ccf7f53****",
"mac": "5c:cf:7f:53:**:**",
"uuid": "002008535ccf7f53****"
}
],
"success": true,
"t": 1585619435816
}
以下为该接口常见的业务异常,更多的异常错误,请参考 全局错误码。
错误码 | 说明 |
---|---|
500 | 系统错误 |
修改设备名称。
PUT /v1.0/devices/{device_id}
参数名 | 类型 | 参数类型 | 必填 | 说明 |
---|---|---|---|---|
device_id | String | URI | 是 | 设备 ID |
name | String | BODY | 是 | 名称 |
名称 | 类型 | 描述 |
---|---|---|
t | Long | 时间戳 |
success | Boolean | 是否成功 |
result | Boolean | 结果 |
PUT /v1.0/devices/vedeo234567
{
"name":""
}
{
"t":1234876331,
"success":true,
"result": true
}
以下为该接口常见的业务异常,更多的异常错误,请参考 全局错误码。
错误码 | 说明 |
---|---|
500 | 系统错误 |
根据设备 ID 来查询设备最新状态。
GET /v1.0/devices/{device_id}/status
参数名 | 类型 | 参数类型 | 必填 | 说明 |
---|---|---|---|---|
device_id | String | URI | 是 | 设备 ID |
参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 错误码。 |
success | Boolean | 判断请求是否成功。 true:成功 false:失败 |
msg | String | 请求失败返回的信息,成功则返回空值。 |
result | Boolean | 是否成功。 |
GET /v1.0/devices/{device_id}/status
TuyaClient client = new TuyaClient(clientId, secret, RegionEnum.CN);
List<Status> deviceStatus= client.getDeviceStatus(DEV_ID);
System.out.println("获取设备状态信息: ");
System.out.println(JSONObject.toJSONString(deviceStatus));
{
"success": true,
"t": 1545447665981,
"result": [
{
"code": "switch_led",
"value": true
},
{
"code": "work_mode",
"value": "scene_2"
},
{
"code": "bright_value",
"value": 25
},
{
"code": "temp_value",
"value": 0
},
{
"code": "colour_data",
"value": "{\"h\":37.0,\"s\":255.0,\"v\":189.0}"
},
{
"code": "scene_data",
"value": ""
},
{
"code": "flash_scene_1",
"value": ""
},
{
"code": "flash_scene_2",
"value": ""
},
{
"code": "flash_scene_3",
"value": ""
},
{
"code": "flash_scene_4",
"value": "{\"bright\":255,\"frequency\":80,\"hsv\":[{\"h\":0.0,\"s\":255.0,\"v\":255.0},{\"h\":120.0,\"s\":255.0,\"v\":255.0},{\"h\":240.0,\"s\":255.0,\"v\":255.0},{\"h\":300.0,\"s\":255.0,\"v\":255.0},{\"h\":240.0,\"s\":255.0,\"v\":255.0},{\"h\":0.0,\"s\":255.0,\"v\":255.0}],\"temperature\":255}"
}
]
}
以下为该接口常见的业务异常,更多的异常错误,请参考 全局错误码。
错误码 | 说明 |
---|---|
500 | 系统错误 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈