跳至主要內容

事件上报规则

约 740 字大约 2 分钟

事件上报规则

当云平台接收设备端的事件上报消息后,会触发该类规则。

事件上报规则目前支持以下操作:

OTA 升级检查

用于设备 OTA 固件升级时,由设备请求检查固件新版本。详细说明请查看 OTA 固件升级

推送到外部 MQTT

该操作将设备上报的事件消息直接转发到第三方 MQTT 服务器,需要填写 MQTT 主机名、端口、身份验证信息等。

推送到外部 URL

该操作将设备上报的事件消息,通过 HTTP 请求转发到您设置的第三方 URL。

请求格式

HTTP 请求头

Content-Type: application/json

HTTP 正文

采用 JSON 格式,数据示例如下:

{
    "device": {                 // 设备基础信息
        "id": "string",
        "name": "string",
        "device_key": "string"
    },
    "event": {                  // 设备上报的事件
        "method": "string",
        "params": {
            ...
        },
        "id": number
    },
    "ts": number                // 当前 Unixstamp 时间戳
}

向其它设备下发属性

该操作用于向其它设备下发属性,实现设备联动功能。

当前设备上报的事件消息,会作为 event 参数传入下发属性的构造函数,您可以编写一定的逻辑,来构造下发到其它设备的属性 attributes

例如,当前设备上报的事件消息为:

{
    "method": "switchRelay",
    "param": {
        "state1": true,
        "state2": false
    }
}

该操作的属性下发函数,我们这样来写:

module.exports = function (event) {

    var push_attributes = {
        relay1_state: event.params.state1 || false,
        relay2_state: event.params.state2 || false
    };
    return push_attributes;

}

将事件参数中的字段直接复制到下发的属性消息中,非常简单。更加复杂的场景以此类推即可。

参数

  • event:是当前设备上报的事件消息。

返回值

  • object 类型:下发到目标设备的属性集合。
  • null:表示不下发属性到设备。

提示

关于如何在设备上接收属性下发,请浏览
设备接收云端下发属性

向其它设备下发命令

该操作用于向其它设备下发命令,实现设备联动功能。

参数

  • event:是当前设备上报的事件消息。

返回值

  • object 类型:构造一个下发到目标设备的命令消息。
  • null:表示不下发命令到设备。

提示

关于下发命令的消息结构说明,请浏览 设备接收云端下发命令

云函数

除了各类专用的操作组件外,云平台面向企业客户提供通用的 云函数,支持比较大的自由度,可以自定义处理逻辑,并支持一些内置函数,例如:

  • 更新设备云端私有属性
  • 给指定设备下发属性
  • 给指定设备下发命令