设备功能接口

用户通过SDK订阅了设备后,可以查看已订阅的设备列表,可以修改设备的扩展属性,也可通过云智易RESTful接口取消订阅设备。

接口概览

  1. 用户注册一个新的设备
  2. 用户获取设备列表
  3. 设置设备的扩展属性
  4. 获取设备的扩展属性列表
  5. 删除设备
  6. 设备分享
  7. 取消分享
  8. 接受分享
  9. 拒绝分享
  10. 获取设备分享列表
  11. 删除设备分享记录
  12. 附录

接口详情

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 二维码方式分享
email 邮件方式分享

分享状态

枚举值 说明
pending 等待接收
accept 已接收