设备功能接口
用户通过SDK订阅了设备后,可以查看已订阅的设备列表,可以修改设备的扩展属性,也可通过云智易RESTful接口取消订阅设备。
接口概览
接口详情
1.用户注册一个新的设备
云智易提供了用户可注册设备的入口,只需要在云智易管理台中的产品配置“允许用户注册设备”之后,用户可以通过本接口注册新的设备并与设备建立订阅关系。
Request
URL
POST /v2/user/{user_id}/register_device
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content
{
"product_id":"产品ID",
"mac":"MAC地址",
"name":"设备名称",
"access_key":"本地设备密码",
"mcu_mod":"MCU固件型号",
"mcu_version":"MCU固件版本",
"firmware_mod":"固件型号",
"firmware_version":"固件版本"
}
字段 | 是否必须 | 描述 |
---|---|---|
device_id | 是 | 产品ID |
mac | 是 | 设备MAC地址 |
name | 否 | 设备名称 |
access_key | 否 | 本地设备密码 |
mcu_mod | 否 | MCU固件型号 |
mcu_version | 否 | MCU固件版本 |
firmware_mod | 否 | 固件型号 |
firmware_version | 否 | 固件版本 |
Response
Header
HTTP/1.1 200 OK
Content
{
"device_id":"设备ID",
"product_id":"产品ID",
"mac":"MAC地址",
"name":"设备名称",
"access_key":"本地设备密码",
"mcu_mod":"MCU固件型号",
"mcu_version":"MCU固件版本",
"firmware_mod":"固件型号",
"firmware_version":"固件版本"
}
2.用户获取设备列表
用户获取设备列表
Request
URL
GET /v2/user/{user_id}/subscribe/devices?version={version}
字段 | 是否必须 | 描述 |
---|---|---|
version | 否 | 设备列表的版本号,起始版本默认为0。 |
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content
无
Response
Header
HTTP/1.1 200 OK
Content
{
"version":"版本号",
"list":
[
{
"id":"设备ID",
"mac":"设备MAC地址",
"is_active":"是否激活",
"active_date":"激活时间",
"is_online":"是否在线",
"last_login":"最近登录时间",
"active_code":"激活码",
"authorize_code":"认证码",
"mcu_mod":"MCU型号",
"mcu_version":"MCU版本号",
"firmware_mod":"固件型号",
"firmware_version":"固件版本号",
"product_id":"所属的产品ID",
"access_key":"设备访问码"
}
]
}
字段 | 是否必须 | 描述 |
---|---|---|
version | 是 | 当前列表的版本号,当返回的版本号于请求的版本不一致时,表示列表已发生更改。 |
字段 | 是否必须 | 描述 |
---|---|---|
id | 是 | 设备ID |
mac | 是 | 设备MAC地址 |
is_active | 是 | 是否激活,布尔值,true或false |
active_date | 是 | 激活时间,例:2015-10-09T08 : 15 : 40.843Z |
is_online | 是 | 是否在线,布尔值,true或false |
last_login | 是 | 最近登录时间,例:2015-10-09T08 : 15 : 40.843Z |
active_code | 是 | 激活码 |
authorize_code | 是 | 认证码 |
mcu_mod | 是 | MCU型号 |
mcu_version | 是 | MCU版本号 |
firmware_mod | 是 | 固件型号 |
firmware_version | 是 | 固件版本号 |
product_id | 是 | 所属的产品ID |
access_key | 是 | 设备本地密码 |
3.设置设备的扩展属性
用户可对拥有的设备进行属性信息扩展。
扩展属性以Key-Value方式设置储存,扩展属性限制为10个。
注意:扩展属性字段名不得包含小数点、空字符,不能以美元符号($)开头。
Request
URL
POST /v2/product/{product_id}/device/{device_id}/property
Header
Content-Type:"application/json"
Access-Token:"调用凭证"
Content
{
"{key}":"{value}",
"{key}":"{value}"
}
Response
Header
HTTP/1.1 200 OK
Content
{
"{key}":"{value}",
"{key}":"{value}"
}
4.获取设备的扩展属性列表
获取设备扩展属性列表。
Request
URL
GET /v2/product/{product_id}/device/{device_id}/property
Header
Content-Type:"application/json"
Access-Token:"调用凭证"
Content
无
Response
Header
HTTP/1.1 200 OK
Content
{
"{key}":"{value}",
"{key}":"{value}"
}
5.取消订阅设备
用户取消订阅设备是用户将与设备解除关系,设备不在出现在用户的设备列表
Request
URL
POST /v2/user/{user_id}/unsubscribe
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content
{"device_id":"设备ID"}
Respon
Header
HTTP/1.1 200 OK
Content
无
关于设备分享
用户可以将设备分享给其他用户,与其他用户共同拥有设备,共同控制设备,分享设备的用户为设备的管理者,被分享者为设备的普通用户。
只有设备的管理者才可分享设备给其他用户
设备分享流程:
1.设备管理者向其他用户发出设备分享
2.系统产生一则设备分享记录到设备管理者和被分享用户的消息列表中,消息将在一定时间后失效。
3.被分享用户这从消息列表获知这一则设备分享消息,可选择【接受】或【拒绝】别人分享的设备。
4.设备管理者可用在被分享用户【接受】或【拒绝】之前可以【取消】分享这个分享设备的消息,此时分享记录即被设为失效。
5.被分享用户【接受】了分享,与设备管理者共同拥有这一个分享的设备。
关于设备管理者
用户通过SDK连接云智易服务器并成功订阅设备才能是设备管理者。
用户手动注册一个新的设备并成为设备管理
设备分享的方式有三种:
- 通过用户ID进行分享
- 二维码分享
- 邮件方式分享
6.设备分享
设备管理者向其他用户分享设备。
Request
URL
POST /v2/share/device
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content
{
"device_id" : 设备ID,
"user" : "用户帐号",
"expire" : 7200,
"mode" : "分享方式"
}
字段 | 是否必须 | 描述 |
---|---|---|
device_id | 是 | 所要分享的设备ID |
user | 否 | 分享给谁;在进行二维码或者邮箱分享的时候,对方ID不确定,只需拿到分享码即可。可以为对方手机号或者邮箱号。 |
expire | 是 | 分享请求有效时间,单位秒 |
mode | 是 | 分享方式,枚举值,见附录 |
Response
Header
HTTP/1.1 200 OK
Content
{
"invite_code" : "分享ID"
}
7.取消分享
设备管理者可以在分享发出以后,通过本接口将分享取消。
Request
URL
POST /v2/share/device/cancel
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content
{
"invite_code" : "分享ID",
}
Response
Header
HTTP/1.1 200 OK
Content
无
8.接受分享
用户接受设备分享者的分享。
Requeset
URL
POST /v2/share/device/accept
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content
{
"invite_code" : "分享ID"
}
Response
Header
HTTP/1.1 200 OK
Content
无
9.拒绝分享
用户拒绝设备分享的分享
Request
URL
POST /v2/share/device/deny
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content
{
"invite_code" : "分享ID",
"reason":"用户拒绝分享的原因"
}
字段 | 是否必须 | 描述 |
---|---|---|
invite_code | 是 | 分享ID |
reason | 否 | 用户拒绝分享的原因 |
Response
Header
HTTP/1.1 200 OK
Content
无
10.获取设备分享列表
管理者和用户可以查询所有和自己有关的设备分享列表,包括管理者分享出去的和其他管理者分享给我的。
Request
URL
GET /v2/share/device/list
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content 无
Response
Header
HTTP/1.1 200 OK
Content
[
{
"invite_code" : 分享邀请码,
"from_id" : 分享者ID,
"from_user" : 分享者帐号,
"to_id" : 被分享者ID,
"to_user" : 被分享者帐号,
"device_id" : 设备ID,
"state" : 分享状态
"create_date" : 分享产生时间,
"expire_date" : 分享过期时间,
},
]
字段 | 是否必须 | 描述 |
---|---|---|
invite_code | 是 | 分享ID |
from_id | 是 | 分享者ID,一般都是设备管理员的ID。 |
from_user | 是 | 分享者帐号,一般都是设备管理员的ID。 |
to_id | 是 | 分享给谁 |
to_user | 是 | 分享给谁的帐号 |
device_id | 是 | 设备ID |
state | 是 | 分享状态;见附录 |
create_date | 是 | 分享产生时间 |
expire_date | 是 | 分享过期时间 |
11.删除设备分享记录
用户或者管理者删除分享记录。
Request
URL
DELETE /v2/share/device/delete/{invite_code}
Header
Content-Type : "application/json"
Access-Token : "调用凭证"
Content
无
Response
Header
HTTP/1.1 200 OK
Content
无
12.附录
枚举值 | 说明 | |
---|---|---|
app | 通过用户ID分享 | |
qrcode | 二维码方式分享 | |
邮件方式分享 |
枚举值 | 说明 | |
---|---|---|
pending | 等待接收 | |
accept | 已接收 |