ThingsBoard:如何在仪表盘展示前对数值进行简单数学转换?
解决方案:pH传感器4-20mA转真实pH值(无需复杂规则链或极简规则链)
方法一:无需规则链,仪表盘直接转换
适合仅在仪表盘展示转换后数据的场景,操作简单:
- 打开目标仪表盘,点击右上角的编辑按钮进入编辑模式
- 找到展示原始mA数据的部件(比如数字卡片、折线图),点击部件右上角的铅笔图标进入配置
- 在部件配置的数据标签下,找到对应遥测键(比如你存储mA值的键名
ph_ma) - 找到数据转换选项(不同部件位置略有差异,数字卡片一般在数据键设置下方),输入转换公式:
部分支持直接数学表达式的部件,也可以直接写return (value - 4)/16*14;(value - 4)/16*14 - 保存配置并退出编辑模式,仪表盘就会实时显示转换后的0-14范围pH值
方法二:极简规则链(全局转换,可选)
如果需要所有场景(比如历史数据查询、多仪表盘复用)都使用转换后的数据,可以用最简单的规则链配置:
- 进入ThingsBoard后台的规则链页面,点击根规则链进入编辑界面
- 从左侧组件库拖入一个脚本节点到画布
- 点击"消息类型:遥测上传"节点的输出端口,连接到脚本节点的输入端口
- 双击脚本节点,编辑处理脚本(替换成你的实际遥测键名):
// 替换ph_ma为你存储原始mA数据的遥测键 const maValue = msg.ph_ma; if (maValue !== undefined) { // 生成转换后的真实pH值,键名ph_real可自定义 msg.ph_real = (maValue - 4)/16*14; // 可选:如果不需要保留原始mA数据,取消下面注释 // delete msg.ph_ma; } return {msg: msg, metadata: metadata, msgType: msgType}; - 保存脚本后,连接脚本节点的输出端口到保存时序数据节点,确保转换后的数据存入数据库
- 激活规则链,之后新上传的遥测数据会自动生成转换后的pH值,仪表盘直接选择
ph_real即可展示
内容的提问来源于stack exchange,提问作者Edu Gimeno
相关产品推荐
相关产品推荐

