# 使用说明

注意:设备与平台的通信格式中各能力需要携带自定模块与标识符,格式为:模块标识符:能力标识符,中间为英文冒号。
例如,在物模型 TSL 中,自定义模块标识符为:test_model_id,能力标识符为:test_ability_id
则通信数据中的格式为:test_model_id:test_ability_id

# 设备属性上报

  • 设备端请求的topic: /fabric/sys/${productKey}/${deviceName}/thing/property/post
  • 请求数据格式:
{
  "id": "123456",
  "version": "1.0",
  "sys":{
      "ack":0
  },
  "params": {
    "model_id:Switch": {
      "value": "on",
      "time": 1634841971000
    },
    "model_id:Temperature": {
      "value": 35.6,
      "time": 1634841971000
    }
  },
  "method": "thing.property.post"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  • 参数说明
参数类型说明
paramsobjectvalue 可以是普通的值类型,比如:
"Switch:"on"
也可以是结构体,可以附带其他参数,比如时间戳:
"Switch": { "value": "on", "time": 1634841971000}
sysobject扩展功能
ackintsys扩展功能中的参数,表示是否需要平台返回响应
- 1: 需要平台返回响应
- 2: 不需要平台返回响应
  • 平台端响应的topic: /fabric/sys/${productKey}/${deviceName}/thing/property/post_reply
  • 响应数据格式:
{
  "id": "123456",
  "code": 0,
  "data": {}
}
1
2
3
4
5
  • 参数说明
参数类型说明
idstring响应 payload 中的 id 与请求 payload 中的 id 一致,用于平台匹配命令请求与响应的关系

# 属性设置

  • 平台端请求的 topic: /fabric/sys/${productKey}/${deviceName}/thing/property/set
  • 请求数据格式:
{
  "id": "123456",
  "version": "1.0",
  "params": {
    "model_id:Wifi": "close"
  },
  "method": "thing.property.set"
}
1
2
3
4
5
6
7
8
  • 参数说明
参数类型说明
paramsobjectparams 可以用键值对的形式传递参数,比如:
 "params": {
     "Switch": "on", 
     "Wifi": "close"
 } 
1
2
3
4


当需要额外传递时间戳时,需使用结构体将所有参数包装起来:

"params":{
    "value": {
        "Switch": "on",
        "Wifi": "close"
    },
    "time": 1634841971000
}
1
2
3
4
5
6
7
  • 设备端响应的 topic: /fabric/sys/${productKey}/${deviceName}/thing/property/set_reply
  • 响应数据格式:
{
  "id": "123456",
  "code": 0,
  "data": {}
}
1
2
3
4
5

# 设备事件上报

  • 设备端请求的topic: /fabric/sys/${productKey}/${deviceName}/thing/event/model_id:identifier/post
  • 请求数据格式:
{
  "id": "123456",
  "version": "1.0",
  "sys":{
      "ack":0
  },
  "params": {
    "value": {
      "Switch": "on",
      "Wifi": "open"
    },
    "time": 1634841971000
  },
  "method": "thing.event.post.model_id:identifier"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • 参数说明
参数类型说明
paramsobjectparams 可以用键值对的形式传递参数,比如:
 "params": {
     "Switch": "on", 
     "Wifi": "close"
 } 
1
2
3
4


当需要额外传递时间戳时,需使用结构体将所有参数包装起来:

"params":{
    "value": {
        "Switch": "on",
        "Wifi": "close"
    },
    "time": 1634841971000
}
1
2
3
4
5
6
7
  • 平台端响应的 topic: /fabric/sys/${productKey}/${deviceName}/thing/event/model_id:identifier/post_reply
  • 响应数据格式:
{
  "id": "123456",
  "code": 0,
  "data": {}
}
1
2
3
4
5

# 设备方法调用(异步)

  • 平台端请求的 topic: /fabric/sys/${productKey}/${deviceName}/thing/action/model_id:identifier/exec
  • 请求数据格式:
{
  "id": "123456",
  "version": "1.0",
  "params": {
    "Switch": "on",
    "Wifi": "close"
  },
  "method": "thing.action.exec.model_id:identifier"
}
1
2
3
4
5
6
7
8
9
  • 设备端响应的 topic: /fabric/sys/${productKey}/${deviceName}/thing/action/model_id:identifier/exec_reply
  • 响应数据格式:
{
  "id": "123456",
  "code": 0,
  "data": {
    "Switch": "on",
    "Wifi": "close"
  }
}
1
2
3
4
5
6
7
8

# 设备方法调用(同步)

  • 平台端请求的 topic: /fabric/sys/${productKey}/${deviceName}/rrpc/request/${messageId}
  • 请求数据格式:
{
  "id": "123456",
  "version": "1.0",
  "params": {
    "Switch": "on",
    "Wifi": "close"
  },
  "method": "thing.action.exec.[model_id:]identifier"
}
1
2
3
4
5
6
7
8
9
  • 设备端响应的 topic: /fabric/sys/${productKey}/${deviceName}/rrpc/response/${messageId}
  • 响应数据格式:
{
  "id": "123456",
  "code": 0,
  "data": {
    "Switch": "on",
    "Wifi": "close"
  }
}
1
2
3
4
5
6
7
8

# 设备获取期望属性

  • 设备端请求的 topic: /fabric/sys/${productKey}/${deviceName}/thing/property/desired/get
  • 请求数据格式:
{
    "id" : "123456",
    "version":"1.0",
    "params" : [
        "model_id:Switch",
        "model_id:Wifi"
    ],
    "method":"thing.property.desired.get"
}
1
2
3
4
5
6
7
8
9
  • 平台端响应的 topic: /fabric/sys/${productKey}/${deviceName}/thing/property/desired/get_reply
  • 响应数据格式:
{
    "id":"123456",
    "code":0,
    "data":{
        "model_id:Switch": {
            "value": "on",
            "version": 1
        },
        "model_id:Wifi": {
            "value": "close",
            "version": 2
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 设备删除期望属性

  • 设备端请求的 topic: //fabric/sys/${productKey}/${deviceName}/thing/property/desired/delete
  • 请求数据格式:
{
    "id": "123456",
    "version": "1.0",
    "sys":{
      "ack":0
  },
    "params": {
        "model_id:Switch": {
            "version": 1
        },
        "model_id:Wifi": {}
    },
    "method":"thing.property.desired.delete"  
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • 参数说明
参数类型说明
paramsobject清除属性时,可以指定清除特定的版本号,如:
"params": {
    "model_id:Switch": {
        "version": 1
    }
}
1
2
3
4
5


也可以不指定版本号,直接清除整个属性,如:

"params": {
    "model_id:Wifi": {}
}
1
2
3
  • 平台端响应的 topic: /fabric/sys/${productKey}/${deviceName}/thing/property/desired/delete_reply
  • 响应数据格式:
{
    "id": "123456",
    "code": 0,
    "data": {}
}
1
2
3
4
5