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

 找回密码
 立即注册
查看: 3419|回复: 20

[进阶教程] 求助,Function之多设备同时满足条件的写法

[复制链接]

11

主题

182

帖子

1454

积分

金牌会员

Rank: 6Rank: 6

积分
1454
金钱
1272
HASS币
10
发表于 2023-8-31 15:51:17 | 显示全部楼层 |阅读模式
如下图,写了一半,
变量那要怎么填,才能分别获取到设备状态的信息啊?
2个人体传感器
想实现当2个传感器状态都为off时,返回信息

微信截图_20230831154219.jpg
回复

使用道具 举报

12

主题

85

帖子

746

积分

高级会员

Rank: 4

积分
746
金钱
661
HASS币
10
发表于 2023-8-31 22:00:24 | 显示全部楼层
你用函数写,两个payload 都是off, 你函数里判断也不能用&& ,可以写 a === b === off
回复

使用道具 举报

11

主题

182

帖子

1454

积分

金牌会员

Rank: 6Rank: 6

积分
1454
金钱
1272
HASS币
10
 楼主| 发表于 2023-8-31 22:34:40 | 显示全部楼层
KevinYAN 发表于 2023-8-31 22:00
你用函数写,两个payload 都是off, 你函数里判断也不能用&& ,可以写 a === b === off
...

定义变量那,我需要怎么指定对应的实体,不知填什么上去
回复

使用道具 举报

12

主题

85

帖子

746

积分

高级会员

Rank: 4

积分
746
金钱
661
HASS币
10
发表于 2023-8-31 23:45:40 | 显示全部楼层
360341024 发表于 2023-8-31 22:34
定义变量那,我需要怎么指定对应的实体,不知填什么上去

在床右人体传感节点里,输出那里换个名字,别也用payload.  比如你上边的用msg.chuangzuo ,下边用msg.chuangyou,  然后你函数里 a = msg.chuangzuo     b = msg.chuangyou
回复

使用道具 举报

13

主题

583

帖子

3077

积分

论坛元老

HomeAssistant

Rank: 8Rank: 8

积分
3077
金钱
2489
HASS币
20
发表于 2023-9-1 10:08:10 | 显示全部楼层
也可以通过判断msg.topic来区分
回复

使用道具 举报

11

主题

182

帖子

1454

积分

金牌会员

Rank: 6Rank: 6

积分
1454
金钱
1272
HASS币
10
 楼主| 发表于 2023-9-1 14:56:03 | 显示全部楼层
KevinYAN 发表于 2023-8-31 23:45
在床右人体传感节点里,输出那里换个名字,别也用payload.  比如你上边的用msg.chuangzuo ,下边用msg.chu ...

已解决一部分,但是到了判断语句那 显示我的OFF 不合规,是不能有var 声明变量吗 微信截图_20230901145421.jpg
回复

使用道具 举报

11

主题

182

帖子

1454

积分

金牌会员

Rank: 6Rank: 6

积分
1454
金钱
1272
HASS币
10
 楼主| 发表于 2023-9-1 15:01:08 | 显示全部楼层
360341024 发表于 2023-9-1 14:56
已解决一部分,但是到了判断语句那 显示我的OFF 不合规,是不能有var 声明变量吗
...

原来off属于字符串,打漏引号了,但是计算结果却反了过来了
正常不是应该true吗
微信截图_20230901145938.jpg


回复

使用道具 举报

12

主题

85

帖子

746

积分

高级会员

Rank: 4

积分
746
金钱
661
HASS币
10
发表于 2023-9-1 16:43:36 | 显示全部楼层
360341024 发表于 2023-9-1 15:01
原来off属于字符串,打漏引号了,但是计算结果却反了过来了
正常不是应该true吗

你的if里的mysg.payload 给反了, 两个都为off, payload应该为false , 下边否则为true.
回复

使用道具 举报

11

主题

182

帖子

1454

积分

金牌会员

Rank: 6Rank: 6

积分
1454
金钱
1272
HASS币
10
 楼主| 发表于 2023-9-1 21:11:03 | 显示全部楼层
KevinYAN 发表于 2023-9-1 16:43
你的if里的mysg.payload 给反了, 两个都为off, payload应该为false , 下边否则为true. ...

搞懵了,a b都是OFF状态, a == "off" &&  b == "off",不是应该成立true吗,咋会输出是else的fasle
回复

使用道具 举报

11

主题

182

帖子

1454

积分

金牌会员

Rank: 6Rank: 6

积分
1454
金钱
1272
HASS币
10
 楼主| 发表于 2023-9-3 10:17:09 | 显示全部楼层
KevinYAN 发表于 2023-9-1 16:43
你的if里的mysg.payload 给反了, 两个都为off, payload应该为false , 下边否则为true. ...

明白了,if本身就带有判断,当条件为true的才会执行,2个OFF的AND判断结果是fasle,所以会执行else的语句
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 21:50 , Processed in 0.266654 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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