向空调控制器下发温度设置,转为自定义报文
约 411 字大约 1 分钟
向空调控制器下发温度设置,转为自定义报文
用户使用某个空调控制器模块,通过 ThingsCloud 下发温度控制数值。模块采用非 Modbus 标准的 HEX 通信协议,例如:
下发温度 20 度,下发消息为:
01 32 14 01 01 01 4A
下发温度 10 度,下发消息为:
01 32 0A 01 01 01 40
根据模块协议文档,可知协议如下:
01 32 {温度} 01 01 01 {校验码}
通过 ThingsCloud 属性下发规则云函数,可以在属性下发时自动生成自定义数据流下发,将 HEX 指令下发到设备。这样一来,就可以在控制台、可视化看板、用户 App 中,通过数值控制组件来操作属性数值的下发。
我们创建一个属性下发规则,使用 自定义数据下发函数 操作,在云函数中使用如下示例代码,请通过代码中的注释进行学习。
函数代码如下:
module.exports = function (push_attributes) {
/**
* push_attributes: 下发的属性对象,作为函数参数传入。
* data: 构造下发的自定义数据对象,下发到硬件。
*/
var data = {}
if (push_attributes.set_temperature !== undefined) {
let sum = 0x01 + 0x32 + push_attributes.set_temperature + 0x01 + 0x01 + 0x01;
data = {
type: "hex",
msg: "01 32 " + push_attributes.set_temperature.toString(16).padStart(2, '0') + " 01 01 01 " + sum.toString(16).padStart(2, '0')
}
}
return data;
}
通过规则对属性下发进行自动转换后,我们就可以在可视化看板、用户App中放置控制组件,例如:在用户 App 中使用以下数值控制组件:
详细了解 ThingsCloud 消息规则,请浏览 消息规则