回顾一下,消息规则的预处理机制
消息规则 在 ThingsCloud 中发挥着重要的作用,它可以按照设定的条件,对设备和云平台之间传递的消息进行各种计算、处理、流转等操作。
消息规则支持多种类型的规则,其中包括常用的预处理规则:
- 属性上报预处理规则:在云平台接收到设备端上报的属性后,且更新设备属性前,触发该类规则。
- 属性下发预处理规则:在云平台将要向设备端下发属性时,触发该类规则。
看板也支持数据预处理
消息规则中的预处理操作可以满足大多数场景需要,不过在有些情况下,我们不希望改变设备属性本身的数据格式,而仅需要在可视化看板中数据展示的时候进行一些预处理计算,或者在下发或更新设备属性时,进行快速的预处理,这时候就可以使用看板的数据预处理功能。
看板的数据预处理,支持 显示值预处理 和 更新值预处理。
显示值预处理 是指在显示属性值时执行预处理函数,仅用于显示,不会对设备属性进行实际修改。更新值预处理 是指在更新属性值时执行预处理函数,会对设备属性进行实际修改。
下面我们来看几个例子吧!
将用电量数据,转为碳排放量数据
我们已将电能表接入 ThingsCloud,实现了累计用电量的数据采集。在 ThingsCloud 可视化看板中,可以轻松的展示不同时间范围的总用电量。
接下来,我们看看如何在看板中显示碳排放量的计算结果。
小知识
要计算用电量的碳排放,您需要知道每千瓦时电的碳排放因子。二氧化碳排放因子指从电网获取和消费单位电量(1kWh)所导致的间接二氧化碳排放。
这个因子会因地区的能源结构不同而有较大差异,例如,以化石燃料为主的发电方式碳排放较高,而以水力、风力、太阳能等可再生能源为主的发电方式碳排放较低。截止 2020 年,我国不同地域的能源结构数据如下:
- 火电主要分布于山东、江苏、内蒙古等地区,其装机容量占全国总装机比重分别达到9%、8%和8%;
- 水电主要分布于四川、云南、湖北等西南及中南地区,其装机容量占全国总装机比重分别达到24%、20%和9%;
- 核电主要分布于广东、福建、浙江等东部沿海地区,其装机容量占全国总装机比重分别达到30%、22%和18%;
- 风光发电主要分布于山东、内蒙古、河北等地区,其风电和光电装机占全国总装机比重分别达到6%、13%、8%和11%、4%、10%。
计算碳排放量的公式如下:
碳排放量(千克CO2) = 用电量(千瓦时)x 碳排放因子(千克CO2/千瓦时)
举个例子:
如果一个工厂在一年内使用了4000千瓦时的电,并且当地的碳排放因子是0.5千克CO₂/千瓦时,则该工厂一年的电力碳排放量为:
4000千瓦时 * 0.5千克CO2/千瓦时 = 2000千克CO2
这样,您就可以根据用电量估算出碳排放量,对于评估环境影响和制定减排策略都是很有帮助的。
在看板中生成碳排放数值
接下来,我们在看板中添加一个普通的数值组件,数据源设置为电表的有功总电能属性,打开属性设置,可以看到数值组件支持数据预处理,勾选开启预处理。
假设当前的碳排放因子是 0.5,只需编写一个简单的函数代码,对原来有数值 value
进行计算,返回计算结果给看板组件用于显示。在显示值预处理函数中编写如下:
return value*0.5;
同样,还可以在每日用电量统计的历史数据时序图中,对每个时间点的数值都进行预处理计算,如下图:
经过预处理后,我们看到的是计算后的数值,这些计算仅在显示时有效,并不会修改原数据。
通过用电量数据,生成电费
学会碳排放量的预处理计算后,同理,您也可以进行电费的计算。
对于固定费率的用电价格,将总用电量乘一个价格系数即可,假如办公区的电费是 0.84元/度,显示值预处理函数如下:
这里我们先通过数据源的历史数据,自动计算今日的用电量,在经过预处理,生成今日电费,如下图:
温度单位转换
利用显示值的预处理功能,您还可以实现各种数值单位转换,满足全球不同地域客户的度量衡规范。例如:温度单位转换,距离单位转换,能量消耗单位转换等。
这里我们将其中一个温度传感器的数值,从摄氏度转为华氏度,计算公式可以简化为:
F = 1.8 * C + 32
这里,( C ) 是摄氏温度,而 ( F ) 是计算得出的华氏温度。
在看板的显示值预处理中,编写一个简单的预处理代码,如下图:
快速解析一些复杂数据格式
有些时候您会遇到一些设备上报的 JSON 格式别出心裁,例如:
{
"relay3": [{
"value": true
}]
}
如果不想在消息规则中进行预处理,仅希望在看板中显示为开关量组件,可以编写显示值预处理函数如下:
return value[0].value;
这样便可以提取出数组和对象中的开关量值,使用开关组件正确的展示状态,如下图:
下发控制也可以预处理
对于上边提到的开关状态,如果下发时也需要保持和上报的格式相同,这里可以使用更新值预处理函数,如下:
return [
{
value: value,
},
];
在操作开关组件时,预处理函数便会将开关量转化为实际要下发的数组格式。
这一篇介绍的看板数据预处理,您学会了吗?快来尝试一下!
关于 ThingsCloud
ThingsCloud 是新一代物联网设备统一接入平台,帮助企业在极短的时间内搭建个性化的物联网平台和应用,并适应不断变化的发展需求。目前广泛应用于制造、电力、能源、环境、农业、楼宇、家居、教育、交通、物流、自动化等领域。
ThingsCloud 可接入各类网关,传感器、执行器、控制器、通信模组、智能硬件等,实现数据采集、远程控制,数据分析、告警通知、智能联动。还可以零代码生成项目应用 SaaS 和用户应用 App,并开放 API 和实时消息,便于业务系统集成和扩展开发。
通过使用 ThingsCloud,企业可以大大缩短搭建物联网系统的时间,节省软件开发费用,降低定制开发的风险,快速落地数字化和智能化项目。我们的客户遍布各行业,包括中国石化、中国铁塔、中国燃气、吉林大学、北控水务、ACE、中国民航大学、西安交通大学、精量电子、大秦铁路、宁波水利局等。