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

 找回密码
 立即注册
查看: 342|回复: 15

[流程系列] function 运行函数问题

[复制链接]

9

主题

55

帖子

178

积分

注册会员

Rank: 2

积分
178
金钱
123
HASS币
0
发表于 2025-1-1 17:13:43 | 显示全部楼层 |阅读模式
请问,2个设备的状态已经是on,通过比对2个结果都是on为什么不输出  payload on呢。只判断一个设备情况下是能够判断是否输出on。
97ed4f05a9119c7c7efc9bc2436e33d.png
回复

使用道具 举报

49

主题

1788

帖子

7090

积分

论坛元老

Rank: 8Rank: 8

积分
7090
金钱
5292
HASS币
40
发表于 2025-1-1 19:14:30 | 显示全部楼层
这个代码可以直接简化,直接一条if
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

2

主题

197

帖子

1365

积分

金牌会员

Rank: 6Rank: 6

积分
1365
金钱
1168
HASS币
0
发表于 2025-1-1 20:13:02 | 显示全部楼层
function只有1个入口

                               
登录/注册后可看大图
★Raspberry + Raspbian + Home Assistant v0.1
★树莓派 + Raspbian系统 + HomeAssistant
https://github.com/huangqian8/homeassistant
回复

使用道具 举报

9

主题

248

帖子

2412

积分

论坛UI达人

积分
2412
金钱
2164
HASS币
0
发表于 2025-1-2 01:25:54 | 显示全部楼层
结合你的两条帖子,个人感觉你把自动化搞得很复杂。

首先不知道你想实现什么自动化。
按照你的图片,可以看到使用的FP2人体存在传感器。
你可以在HA中去实现前面的步骤,例如:在辅助元素创建群组,用于实现同时触发,才能触发。

其次,不知何种自动化,需要轮询查看实体状态,FP2本来就是触发器,而且可以多条件触发。
在node-red中,也可以实现,触发+条件的这种触发流程,例如:两个设备同时作为触发器,也同时作为判断条件。

你想实现同时满足几个条件来触发,很简单。

你想在node-red中通过轮询的方式对比两个实体的状态,然后输出结果,这很复杂。

回复

使用道具 举报

17

主题

82

帖子

751

积分

论坛UI达人

积分
751
金钱
669
HASS币
10
发表于 2025-1-2 10:08:27 | 显示全部楼层
你这个时间戳看似是同时触发两个传感器读取,但是实际上到达function是存在先后的,
function里的变量一次性的,device1和device2的输入不在同一payload里无法比较,需要先储存变量,
可以设置全局变量或者流变量或者上下文变量来实现变量储存,又或者使用join节点汇合两个传感器状态合成一个payload后输入给function做判断
回复

使用道具 举报

9

主题

55

帖子

178

积分

注册会员

Rank: 2

积分
178
金钱
123
HASS币
0
 楼主| 发表于 2025-1-2 10:12:53 | 显示全部楼层
gasment 发表于 2025-1-2 10:08
你这个时间戳看似是同时触发两个传感器读取,但是实际上到达function是存在先后的,
function里的变量一次 ...

小白一个,对编程只是参考了 AI模型给出的答案自己整理一下出来的东西。太复杂的代码逻辑我还不会调用。
回复

使用道具 举报

0

主题

21

帖子

84

积分

注册会员

Rank: 2

积分
84
金钱
63
HASS币
0
发表于 2025-1-2 10:19:36 | 显示全部楼层
return msg.payload = "on";
回复

使用道具 举报

0

主题

21

帖子

84

积分

注册会员

Rank: 2

积分
84
金钱
63
HASS币
0
发表于 2025-1-2 10:21:37 | 显示全部楼层
没看懂你写的是啥- -#。 逻辑就有问题吧。
回复

使用道具 举报

0

主题

21

帖子

84

积分

注册会员

Rank: 2

积分
84
金钱
63
HASS币
0
发表于 2025-1-2 10:26:27 | 显示全部楼层
msg.topic ='device1'   msg.topic ='device2'  这两个条件这么可能同时达到呢?
回复

使用道具 举报

9

主题

55

帖子

178

积分

注册会员

Rank: 2

积分
178
金钱
123
HASS币
0
 楼主| 发表于 2025-1-2 11:04:51 | 显示全部楼层
dandymin 发表于 2025-1-2 10:26
msg.topic ='device1'   msg.topic ='device2'  这两个条件这么可能同时达到呢?

这个是AI给的例子代码我整理一下弄的,我不清楚怎么实现把2个设备的输出信息分流出来做判断
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-1-22 09:15 , Processed in 0.241828 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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