子设备数据云边交互方式
更新时间:2022-03-29
子设备数据云边交互方式
本节对子设备数据云边交互协议做一些补充。 驱动接受真实设备的数据,并将数据同步至broker。通过订阅broker的topic,可以看到子设备数据的云边交互格式。
子设备定期上报数据
- $baetyl/device/{device-name}/report
该主题当中的消息为驱动采集设备上传到云端的数据
{
"kind":"deviceReport",
"meta":{
"device":"mod-test-1"
},
"content":{
"high-temperature-alarm":false,
"high-temperature-threshold":324,
"humidity":74.66774,
"switch":true,
"temperature":315.88257
}
}
边缘侧请求设备数据
- $baetyl/device/{device-name}/get
- $baetyl/device/{device-name}/getResponse
向主题$baetyl/device/{device-name}/get
发送任意消息,比如{'hello':'world'}
,或者123
,驱动都会主动采集一次设备数据,并将采集到是数据发送到主题$baetyl/device/{device-name}/getResponse
,数据格式如下:
{
"kind":"response",
"meta":{
"device":"mod-test-1"
},
"content":{
"name":"mod-test-1",
"report":{
"high-temperature-alarm":true,
"high-temperature-threshold":324,
"humidity":13.870032,
"status":"online",
"switch":true,
"temperature":370.4124
},
"desire":{
"high-temperature-threshold":370
}
}
}
驱动接收来自云端的变更(置数)
- $baetyl/device/{device-name}/delta
云端对边缘子设备的置数消息,会发送消息到此主题。消息格式如下:
{
"kind":"deviceDelta",
"meta":{
"address":"10.164.28.155",
"device":"mod-test-1",
"name":"modbus-test-1",
"namespace":"1cd2d7790b6f4347bbeb3ecee54eca6e"
},
"content":{
"high-temperature-alarm":null,
"high-temperature-threshold":300,
"humidity":null,
"switch":null,
"temperature":null
}
}
驱动订阅云端对子设备的置数请求,将会发起置数操作。
驱动接收来自云端的事件(召测)
- $baetyl/device/{device-name}/event
- $baetyl/device/{device-name}/report
云端对边缘子设备的召测请求,会发送消息到此主题。消息格式如下:
{
"kind":"deviceEvent",
"meta":{
"cloud-name":"modbus-test-1",
"cloud-namespace":"1cd2d7790b6f4347bbeb3ecee54eca6e",
"device":"mod-test-1",
"push":"true"
},
"content":{
"type":"report"
}
}
驱动订阅云端对子设备的召测请求,将会发起数据采集并上报的操作。同步会在$baetyl/device/{device-name}/report
这个topic当中订阅到上报到云端的数据,格式如下:
{
"kind":"deviceReport",
"meta":{
"device":"mod-test-1"
},
"content":{
"high-temperature-alarm":true,
"high-temperature-threshold":324,
"humidity":29.014072,
"switch":true,
"temperature":354.14474
}
}