设备触发节点是将设备上报的属性(读写型)、事件数据或状态变更作为服务的输入,触发服务后续的业务逻辑。设备触发节点支持通过虚拟设备上报属性或事件触发服务,帮助您自定义设备信息响应的服务流。

节点配置

在业务逻辑开发编辑页面的节点 > 触发列表中,拖拽设备触发节点到中间画布并进行配置,如图所示。

设备触发
配置项说明
节点名称设置节点名称。支持中文汉字、英文字母、数字和下划线(_),长度不超过30个字符。
选择产品选择触发服务的产品。
选择设备选择产品下的全部设备指定设备

选择设备后,系统将自动指定一个在线调试服务的设备。具体的调试方法请参见步骤三:调试

重要 单个设备不支持同时应用于10个以上的设备触发服务。
触发条件设置全部或指定的属性上报事件上报状态变更来触发服务。

节点输出

  • 属性上报类型的输出数据格式:
    {
            "deviceContext": {
                "productKey": "设备的ProductKey",
                "deviceName": "设备的DeviceName",
                "gmtCreate": 设备的创建时间戳
            },
            "props": {
                "属性标识符": {
                "time": 设备上报信息的时间戳,
                "value": 设备上报的属性值
            }
        }
     }
  • 事件上报类型的输出数据格式:
    {
            "deviceContext": {
                "productKey": "设备的ProductKey",
                "deviceName": "设备的DeviceName",
                "gmtCreate": 设备的创建时间戳
            },
            "event": {
                "事件标识符": {
                   "outputs": {
                       "出参标识符": 出参值
                   },
                   "eventCode": "事件标识符",
                   "eventName": "事件名称" ,
                   "eventType": "事件类型(信息/告警/故障)" 
                }
           }
    }
  • 状态变更类型的输出数据格式:
    { 
             "deviceContext":{
                "productKey":"设备的ProductKey",
                "deviceName":"设备的DeviceName",
                "gmtCreate":设备的创建时间戳
            },
            "status":{
                "time":状态变更的时间戳,
                "value":"状态值"
            },
            "dataSource":{
                "status":"状态值"
            }
    }
字段描述示例
deviceContext设备信息。
{
  "productKey": "XXX", // 设备的productKey

  "deviceName": "XXX", // 设备的deviceName

  "gmtCreate": 1538109258028 // 设备创建时间戳
}
props设备上报的属性信息。当选择的上报类型中包含属性上报时,会出现该字段。

props字段内的具体内容,请在产品的功能定义页查看。

{
   "LightStatus":{  // 设备属性LightStatus
        "time":1538109258010,
        "value":0
    },
    "LightVolt":{ // 设备属性LightVolt
         "time":1538109258010,
         "value":1
    }
}
event设备上报的事件信息。当选择的上报类型中包含事件上报时,会出现该字段。

event字段内的具体内容,请在产品的功能定义页查看。

{
    "Identifier1": {// 事件标识符
        "eventCode": "Identifier1", // 事件标识符 
        "eventName": "Warm", // 事件名称
        "eventType": "info", // 事件类型
        "outputs": { // 输出参数
            "outPara1": 2, 
            "outPara2": 0
        }
    }, 
    "Identifier2": {
        "eventCode": "Identifier2", 
        "eventName": "Warm", 
        "eventType": "info", 
        "outputs": {
            "outPara1": 2, 
            "outPara2": 0
        }
    }
}
status状态变更的状态信息。当选择的上报类型中包含属性上报时,会出现该字段。

status字段内的具体内容,请在产品的功能定义页查看。

{
   "time":1630913898783,
   "value":"在线"
 }
       
dataSource表示当前的状态信息。当选择的上报类型中包含属性上报时,会出现该字段。
{
   "status":"在线"
 }

后续节点使用该节点输出数据

如果该服务的其他节点需要调用设备上报的属性或事件,可以通过query访问具体参数,或将本节点选择为后续节点的输入源。

  • 通过query访问。

    在配置后续节点,如脚本节点或钉钉机器人节点,编辑内容时,可使用query调用属性或事件数据。如:

    • query.props.属性标识符.value:调用设备上报的某属性值。
    • query.deviceContext.deviceName:调用设备名称。
    • query.props.event.事件标识符.eventName:调用设备上报的某事件名称。

    配置钉钉机器人调用设备上报的属性数据示例:

    钉钉机器人
  • 通过配置项访问。

    在配置后续节点时,如条件判断节点或路径选择节点,选择数据源为设备触发节点的某类型数据。

    配置项访问