『瀚思彼岸』» 智能家居技术论坛

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

[技术探讨] 4~20mA传感器modbus模拟量模块接实际入数据怎么转换成...

[复制链接]

1

主题

15

帖子

252

积分

中级会员

Rank: 3Rank: 3

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

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

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



回复

使用道具 举报

1

主题

15

帖子

252

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

9

主题

225

帖子

2113

积分

论坛UI达人

积分
2113
金钱
1888
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;
回复

使用道具 举报

46

主题

1654

帖子

6676

积分

论坛元老

Rank: 8Rank: 8

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

使用道具 举报

1

主题

15

帖子

252

积分

中级会员

Rank: 3Rank: 3

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

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

太深噢了
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 05:25 , Processed in 0.117915 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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