找回密码
 立即注册
查看: 649|回复: 5

[流程系列] 新手学着玩魔方,求助一个旋转调灯光

[复制链接]

2

主题

15

回帖

637

积分

高级会员

积分
637
金钱
620
HASS币
0
发表于 2024-10-11 21:19:04 | 显示全部楼层 |阅读模式
我通过新建辅助元素实体直接提取出来了魔方旋转的角度(msg.jiaodu)
然后msg.data.attributes.brightness获取了灯泡的亮度(msg.liangdu)
到这里数值都是正常输出没有问题

旋转角度为正数则+20,否则-20
最大100最小为1

找AI帮我写了一个function

if (msg.jiaodu > 0) {
        msg.liangdu + 20;
    } else {
        msg.payload - 20;
    }

    // 确保msg.liangdu的值在1到100之间
    msg.liangdu = Math.min(Math.max(msg.liangdu, 1), 100);

    // 将结果存储在msg.payload中
    msg.payload = msg.liangdu;


return msg;


最后通过call service的light turn on {"brightness_pct": msg.payload}实现简单的调光

但是msg.payload输出结果不是数字(debug写的null)
自己又不会写代码,求大神帮忙看看哪里有问题

折腾一晚上了,感谢大佬们
微信图片_20241011211432.jpg
回复

使用道具 举报

20

主题

482

回帖

3401

积分

论坛元老

积分
3401
金钱
2899
HASS币
8
发表于 2024-10-11 22:16:15 | 显示全部楼层
试试这段代码:
let liangdu = msg.liangdu;
if (msg.jiaodu > 0) {
        liangdu += 20;
} else {
        liangdu -= 20;
}

// 确保liangdu的值在1到100之间
liangdu = Math.min(Math.max(liangdu, 1), 100);

// 将结果存储在msg.payload中
msg.payload = liangdu;

return msg;
回复

使用道具 举报

2

主题

15

回帖

637

积分

高级会员

积分
637
金钱
620
HASS币
0
 楼主| 发表于 2024-10-12 15:38:42 | 显示全部楼层

成功了,感谢
回复

使用道具 举报

2

主题

15

回帖

637

积分

高级会员

积分
637
金钱
620
HASS币
0
 楼主| 发表于 2024-10-12 16:01:50 | 显示全部楼层

大佬,能不能帮我加一句亮度为0不开灯

if (liangdu === 0) {
    // 这里可以添加不开灯的逻辑,比如设置msg的某个属性表示不开灯
    
这里怎么写

    // 亮度不为零,将结果存储在msg.payload中
    msg.payload = liangdu;
}
回复

使用道具 举报

20

主题

482

回帖

3401

积分

论坛元老

积分
3401
金钱
2899
HASS币
8
发表于 2024-10-12 17:05:07 | 显示全部楼层
你这个需求不需要再写代码了,流程上修改下:
拉一个switch节点到function后面,switch里设置两个规则,第一个是:==数字0,第二个是:除此以外。
原来的call service节点连接到switch第二个输出上,第一个输出重新拉一个call service,动作为light turn off。
回复

使用道具 举报

2

主题

15

回帖

637

积分

高级会员

积分
637
金钱
620
HASS币
0
 楼主| 发表于 2024-10-12 17:38:18 | 显示全部楼层
cjnt007 发表于 2024-10-12 17:05
你这个需求不需要再写代码了,流程上修改下:
拉一个switch节点到function后面,switch里设置两个规则,第 ...

妙啊大佬
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-1 15:26 , Processed in 0.805286 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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