找回密码
 立即注册
查看: 1266|回复: 4

[信息发布] 4~20mA传感器modbus模拟量模块接实际入数据怎么转换成...

[复制链接]
qian 手机认证

1

主题

14

回帖

311

积分

中级会员

积分
311
金钱
296
HASS币
0
QQ
发表于 2024-7-25 18:17:40 | 显示全部楼层 |阅读模式
本帖最后由 qian 于 2024-7-25 18:44 编辑

4~20mA模拟量水位,压力传感器用modbus模拟量采集模块通过tcp转485直接接入HA,采集数据怎么转换成实际水位(M),压力(Mpa),水位传感器参数4~20mA  0~2米,压力传感器参数4~20mA  0~1.0Mpa

1721902216113(1).jpg 1721902271632.jpg 1721902298555.jpg



回复

使用道具 举报

qian 手机认证

1

主题

14

回帖

311

积分

中级会员

积分
311
金钱
296
HASS币
0
QQ
 楼主| 发表于 2024-7-25 18:57:06 | 显示全部楼层
这是有人物联网平台同时采集实际显示数据 1721904724889.jpg
回复

使用道具 举报

hhh. 手机认证

9

主题

298

回帖

2782

积分

论坛UI达人

积分
2782
金钱
2475
HASS币
0
发表于 2024-7-25 19:38:35 | 显示全部楼层
这种问题,问AI来的快,

在HA中使用模板实现如下:
{% set current_mA = states('sensor.pressure_sensor') | float %}
          {% set min_mA = 4 %}
          {% set max_mA = 20 %}
          {% set min_level = 0 %}
          {% set max_level = 2 %}
          {% set level = ((current_mA - min_mA) / (max_mA - min_mA)) * (max_level - min_level) + min_level %}
          {{ level | round(2) }}


在NR中使用function节点实现如下:
// 获取当前电流值(mA)
var current_mA = msg.payload;

// 定义电流和液位的范围
var min_mA = 4;
var max_mA = 20;
var min_level = 0;
var max_level = 2;

// 计算液位高度
var level = ((current_mA - min_mA) / (max_mA - min_mA)) * (max_level - min_level) + min_level;

// 将计算结果四舍五入到小数点后两位
level = Math.round(level * 100) / 100;

// 设置消息负载为计算的液位高度
msg.payload = level;

return msg;
回复

使用道具 举报

jjcs 手机认证

51

主题

1921

回帖

7769

积分

论坛元老

积分
7769
金钱
5787
HASS币
40
发表于 2024-7-25 19:45:18 | 显示全部楼层
解析建议全在底层完成
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

qian 手机认证

1

主题

14

回帖

311

积分

中级会员

积分
311
金钱
296
HASS币
0
QQ
 楼主| 发表于 2024-8-21 22:21:30 | 显示全部楼层
hhh. 发表于 2024-7-25 19:38
这种问题,问AI来的快,

在HA中使用模板实现如下:

太深噢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-5-8 00:01 , Processed in 0.069061 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表