对设备属性值判断实现设备联动
在以上内容中,温度设备可以在平台进行状态判断,通过设备栏中的其它产品节点可以非常方便实现联动,这里演示温度设备与小灯的联动,通过编排服务实现温度过高打开小灯,低于限定值自动关闭小灯的自动化托管程序,并通过Web可视化页面将设备实时状态展现出来。
设备模型
温度产品1:
包含温度属性CurrentTemperature 
小灯产品2:
实现设备端开发的灯属性上报和控制即可,此处基于设备的主灯开关属性”LightSwitch”进行

服务开发
服务开发实现温度报警过高自动打开风扇,温度低于温度阈值一定范围自动关闭风扇,采用功能节点编排内容如下:
设备触发中配置设备为「温度设备」,其中「风扇」功能节点是对风扇产品的抽象,可通过此节点对风扇设备的属性进行设置,风扇的开关属性为fanSwitch,通过在参数中填充如下内容,便可实现设备的联动:
{"properties":{"LightSwitch":0}}
如果熟悉脚本编程,较为复杂的多种条件判断可以在脚本功能节点中通过if else来进行判断,可以直接简化以上服务流为以下:
| 功能节点 | 配置内容 |
|---|---|
![]() |
配置为温度设备的温度属性上报即可 |
![]() |
module.exports = async function(payload, node, query, context) { //获取温度数值 var temp = payload.props.CurrentTemperature.value; if(temp>23){ //打开风扇 payload.switch = 1; return payload; } else if(temp<20){ //关闭风扇 payload.switch = 0; return payload; } } |
![]() |
{ “properties”: { “LightSwitch”: } } |
![]() |
module.exports = async function(payload, node, query, context) { console.log(“payload: “, payload); var temp = node[“node_accc8bf0”].props.CurrentTemperature.value; var controll = node[“node_accc8bf0”].switch; let res = “”; switch(controll){ case 1: res = “温度超限打开风扇,报警温度:” + temp; break; case 0: res = “温度下降,关闭风扇,当前温度:” + temp; break; } return res; } |
![]() |
配置text内容为””即可 |
在脚本中,使用node["node_accc8bf0"]获取上一个脚本节点的输出,因为当小灯功能节点完成开关的指令下发后返回均为code=200,通过node[id]可以方便获取到各个节点的输出。
部署服务后,待设备温度过高,将会自动发送消息到钉钉机器人,设备温度低于关闭的阈值时,将会自动下发指令关闭小灯,同时推送消息到钉钉机器人。
如果熟悉脚本编程,较为复杂的多种条件判断可以在脚本功能节点中通过if else来进行判断,可以直接简化以上服务流为以下:
| 功能节点 | 配置内容 |
|---|---|
![]() |
配置为温度设备的温度属性上报即可 |
![]() |
module.exports = async function(payload, node, query, context) { //获取温度数值 var temp = payload.props.CurrentTemperature.value; if(temp>23){ //打开风扇 payload.switch = 1; return payload; } else if(temp<20){ //关闭风扇 payload.switch = 0; return payload; } } |
![]() |
{ “properties”: { “fanSwitch”:{{payload.switch}} } } |
![]() |
module.exports = async function(payload, node, query, context) { console.log(“payload: “, payload); var temp = node[“node_accc8bf0”].props.CurrentTemperature.value; var controll = node[“node_accc8bf0”].switch; let res = “”; switch(controll){ case 1: res = “温度超限打开风扇,报警温度:” + temp; break; case 1: res = “温度下降,关闭风扇,当前温度:” + temp; break; } return res; } |
![]() |
配置text内容为”{{payload}}”即可 |
Web可视化
新建Web可视化,通过卡片、开关组件可以快速搭建显示温度设备与风扇设备最新状态,可以手动通过Web对设备进行操作,设备状态也会被编排服务自动控制,并将控制的结果反映在Web可视化页面上。
服务调试
在服务编排中提供单节点粒度和全局调试日志。









