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

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

[流程系列] 关于自动化,向Node RED大佬求助(刚刚发错区了)

[复制链接]

9

主题

43

帖子

507

积分

高级会员

Rank: 4

积分
507
金钱
464
HASS币
0
发表于 2024-5-30 12:01:19 | 显示全部楼层 |阅读模式
自动化编写遇到两个问题:

1)当我使用current_state节点获取设备状态的时候经常发生一些错误(如下),手动测试的情况下有时候需要4-5次才可以正确获得数据(而触发只执行一次)。除了反复执行,有没有其他方法,我担心反复执行会影响后续的流程(抑或出错后后续流程不会反复执行)
InputError: Entity could not be found in cache for entityId
"NoConnectionError: NoConnectionError"

2)我准备做一个旋钮,每次能把灯的亮度调亮“一点儿”,我看主流的做法是通过函数获取当前亮度再将增加后的亮度重新传送给灯。有没有更加直接的方法,通过call service节点下方的“数据表达式”或“{}JSON”来实现?比如brightness=brightness+20
1717032103326.jpg
请大佬指导,先谢过了

回复

使用道具 举报

3

主题

129

帖子

1943

积分

金牌会员

Rank: 6Rank: 6

积分
1943
金钱
1814
HASS币
0
发表于 2024-5-30 13:34:08 | 显示全部楼层

1,NoConnectionError: 刚刚部署完node red,要稍等十来秒,看你设备速度,不然就会显示连接错误。连上以后就不会了。
2. 数据表达式,那个位置是可以写亮度信息的,比如   {"brightness_pct": "50"}     , 是把亮度调到50%,如果是1-255那种,就用 brightness。
   这里后面不建议直接调用原始亮度,可能出错。 还是在前面加一个funtion,获取原始亮度值,保存到payload,然后 后面的data 这么写  {"brightness_pct": msg.payload + 10},就是亮度增加10。
   当然严谨一点还要判断是否大于100,要设定最大100,{"brightness_pct": $min([msg.payload + 10, 100]) }。
希望有用。
回复

使用道具 举报

9

主题

43

帖子

507

积分

高级会员

Rank: 4

积分
507
金钱
464
HASS币
0
 楼主| 发表于 2024-5-30 13:46:38 | 显示全部楼层
谢谢大佬
回复

使用道具 举报

10

主题

1282

帖子

4049

积分

论坛元老

Rank: 8Rank: 8

积分
4049
金钱
2767
HASS币
0
发表于 2024-5-30 17:05:20 | 显示全部楼层
zfgjy2005 发表于 2024-5-30 13:34
1,NoConnectionError: 刚刚部署完node red,要稍等十来秒,看你设备速度,不然就会显示连接错误。连上以 ...

哇,又学到好多
回复

使用道具 举报

9

主题

43

帖子

507

积分

高级会员

Rank: 4

积分
507
金钱
464
HASS币
0
 楼主| 发表于 2024-5-30 22:08:12 | 显示全部楼层
在zfgjy2005大佬帮助下,也参考了隔壁的王叔叔大佬之前的设计,旋钮控制窗帘已经完成了。
按住旋转控制亮度明天做,谢谢两位
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-9-21 11:20 , Processed in 0.051935 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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