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

 找回密码
 立即注册
查看: 7892|回复: 6

[已解决] 求助node-red里面function的数值运算写法和运行时间传递

[复制链接]

17

主题

357

帖子

2098

积分

论坛DIY达人

积分
2098
金钱
1731
HASS币
40
发表于 2019-11-11 21:01:38 | 显示全部楼层 |阅读模式
本帖最后由 hugh_jie 于 2019-11-12 17:41 编辑

如题,最近搞了个窗帘,想用esphome接入到HA,主要思路是:2个干簧管反馈起始位置和终点位置,2个继电器分别控制电机的正反转,时间百分比反馈,流程如下:
未命名1573476387.png 未命名1573476457.png

目前获取到了当前位置百分比和之前位置的百分比,我设定0是完全打开,100是完全关闭,思路是当设定值>当前值时,窗帘往关闭方向运行,时间是两个的差值乘以总时间,相反就反方向运行
然后问题就来了:
1、运算这一步不知道该怎么写函数内容了,获取到的两个位置是string,用number()转换了也不行,function完全不输出东西。。
位置.png 计算.png
2、还有一个问题是获取到了运行时间后该用什么方式去让switch打开这个时间然后关闭,刚开始我以为delay这个节点的覆盖能实现这个功能,但是好像并不管用。。
感谢大家帮忙~~~
解决办法见[url=【垃圾佬的日常】一种奇怪的电动窗帘接入方式 https://bbs.hassbian.com/thread-8616-1-1.html (出处: 『瀚思彼岸』» 智能家居技术论坛)]【垃圾佬的日常】一种奇怪的电动窗帘接入方式 https://bbs.hassbian.com/thread-8616-1-1.html (出处: 『瀚思彼岸』» 智能家居技术论坛)[/url]


回复

使用道具 举报

0

主题

71

帖子

1331

积分

论坛积极会员

积分
1331
金钱
1260
HASS币
0
发表于 2019-11-12 08:47:18 | 显示全部楼层
var z1 = Number((x-y)*10)
回复

使用道具 举报

17

主题

357

帖子

2098

积分

论坛DIY达人

积分
2098
金钱
1731
HASS币
40
 楼主| 发表于 2019-11-12 10:16:19 | 显示全部楼层
zhou1104 发表于 2019-11-12 08:47
var z1 = Number((x-y)*10)

非常感谢你的回答,不过还是没有反应,我现在在一步步拆分在看,现在第一步就遇到问题了,我直接返回xy的值,一个提示不能返回字符串,一个返回了object,然后给他们都加上Number()提示不能返回number....不知道为啥这样。。
回复

使用道具 举报

0

主题

71

帖子

1331

积分

论坛积极会员

积分
1331
金钱
1260
HASS币
0
发表于 2019-11-12 11:24:00 | 显示全部楼层
你提取数值这个function接一个debug,输出完整信息看下
另外为啥要转string
回复

使用道具 举报

17

主题

357

帖子

2098

积分

论坛DIY达人

积分
2098
金钱
1731
HASS币
40
 楼主| 发表于 2019-11-12 12:02:28 | 显示全部楼层
zhou1104 发表于 2019-11-12 11:24
你提取数值这个function接一个debug,输出完整信息看下
另外为啥要转string

因为我不确定function里面的数值运算是不是只能用number格式,又没有找到能直接提取number的方法,所以只能先转string再转number,,感谢您提供的思路,我把两个数值合并成了一个数组,然后在function里面计算,现在已经完成了计算这一步了,下面要解决的就是怎么把输出的值用于电机运转的时间了 未命名1573531096.png
回复

使用道具 举报

23

主题

660

帖子

3110

积分

论坛元老

Rank: 8Rank: 8

积分
3110
金钱
2450
HASS币
10
发表于 2019-11-26 19:53:41 | 显示全部楼层
弱弱的问一下,node-red怎么实现  entity ID 2分钟持续 off  就触发 这种?
回复

使用道具 举报

17

主题

357

帖子

2098

积分

论坛DIY达人

积分
2098
金钱
1731
HASS币
40
 楼主| 发表于 2019-11-26 20:05:22 | 显示全部楼层
wshc1216 发表于 2019-11-26 19:53
弱弱的问一下,node-red怎么实现  entity ID 2分钟持续 off  就触发 这种?

我用的trigger这个节点,就上面淡紫色那个 未命名1574769616.png
接在传感器什么的后面,原理是第一次接收到off就触发2min等待时间,这2分钟内如果传感器on了,就取消,如果没有就2min持续时间结速后发送一个off给后面
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-29 14:56 , Processed in 1.502241 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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