hnjzjql 发表于 2023-2-9 14:23:24

求教怎么用node,求出数值差值

想做一个抽湿换气的开关,思路是:30分钟获取一次数值和5秒钟获取一次数值,如果后者数值大于前者20%点就开启开关,但是。。。。没有相关基础知识卡在不知道怎么用function节点去计算差值。所以有没有大佬教学怎么用node,求出数值差值。

bainiu 发表于 2023-2-9 15:18:36

本帖最后由 bainiu 于 2023-2-9 15:19 编辑

var a = msg.wumiao;//5秒数据
var b = msg.shanshifen;//30分钟数据

if ( a > 0.2* b)
{
    return {
    payload:{
       "domain":"switch",
       "service":"turn_on",
       "data":
       {"entity_id": "switch.ce_shi_kai_guan"}
    }

dscao 发表于 2023-2-9 16:42:27

本帖最后由 dscao 于 2023-2-9 16:53 编辑

https://bbs.hassbian.com/forum.php?mod=viewthread&tid=14619
这里搜索到一个类似的解决方法。


另外:https://www.home-assistant.io/integrations/statistics/
这个好像可以更简单的用于温湿度变化场景的自动化
创建一个过去6小时或24小时的中位数实体,这个肯定是正常情况下的状态。当前值与这个中位数比较,大于某个值时一般是温度或湿度出现偏高,则打开开关,小于某个值时表示恢复正常,则关闭开关。
只用一个传感器,就可实现洗澡后湿度变大将排气扇打开湿度恢复后关闭,或检测燃气灶旁边的温度来判断燃气灶是使用状态。



如果一定要用node-red来求差值,可以用历史节点。
https://bbs.hassbian.com/thread-6421-1-1.html
取30分钟前的,示例是24小时前的。



gmshiwoge 发表于 2023-2-9 17:47:49

bainiu 发表于 2023-2-9 15:18


老哥 问一个问题node red的js可以延迟5秒再运行吗

aprking 发表于 2023-2-9 18:00:18

gmshiwoge 发表于 2023-2-9 17:47
老哥 问一个问题node red的js可以延迟5秒再运行吗

可使用delay延迟信息

hnjzjql 发表于 2023-2-10 14:32:12

dscao 发表于 2023-2-9 16:42
https://bbs.hassbian.com/forum.php?mod=viewthread&tid=14619
这里搜索到一个类似的解决方法。



那个帖子我看了,但是复制不出来。比较白,看代码头疼。。。差值搞出来了。

hnjzjql 发表于 2023-2-10 22:04:48

bainiu 发表于 2023-2-9 15:18


谢谢大佬
页: [1]
查看完整版本: 求教怎么用node,求出数值差值