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

 找回密码
 立即注册
12
返回列表 发新帖
楼主: logan

[教程系列] node-red空调编写请教!

[复制链接]

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2022-2-28 17:09:53 | 显示全部楼层
本帖最后由 bainiu 于 2022-2-28 17:11 编辑
raspberry0316 发表于 2021-7-20 15:04
举个例子 fuction里面这样的,后面直接拉一个空白call service。自己改下自己的实体就行了 ...

请教一下大佬:
我在用天猫精灵控制空调,云端的mqtt数据已传递到本地nodered,但我不会函数,如果设置温度时语音呼叫设成28度,mqtt传递过来的信息是

msg.payload : string[108]"{"method":"thing.service.property.set","id":"676463223","params":{"targetTemperature":28},"version":"1.0.0"}"我想把这个温度的变量28度,传递给你这个函数,然后直接调用空调温度设定服务ac = {   domain:"climate",   service:"set_temperature",   data:{        temperature:25,        entity_id:"climate.kong_diao"   }}msg.payload = acreturn msg;请问如何把我传递过来的"targetTemperature"这个字串后面跟的数据(语音呼叫产生的温度变量),嵌入到你这个函数中替代25,我不知道我说清楚了没。谢谢大佬
回复

使用道具 举报

15

主题

636

帖子

2201

积分

金牌会员

Rank: 6Rank: 6

积分
2201
金钱
1565
HASS币
0
发表于 2022-2-28 19:17:39 | 显示全部楼层
bainiu 发表于 2022-2-28 17:09
请教一下大佬:
我在用天猫精灵控制空调,云端的mqtt数据已传递到本地nodered,但我不会函数,如果设置温 ...

我也是个小白,尝试弄了下,你看看能不能行。

首先,不知道猫精传过来的参数是字符串还是json对象。我用change节点模拟了下字符串,然后用json节点转成json对象。
接着function节点弄出来的。

你试试吧。
Screen Shot 2022-02-28 at 7.16.13 PM.png
Screen Shot 2022-02-28 at 7.16.18 PM.png
Screen Shot 2022-02-28 at 7.16.28 PM.png
回复

使用道具 举报

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2022-2-28 19:41:45 | 显示全部楼层
telanx 发表于 2022-2-28 19:17
我也是个小白,尝试弄了下,你看看能不能行。

首先,不知道猫精传过来的参数是字符串还是json对象。我用 ...

谢谢大佬,我在网上找js字符串操作函数,也勉强搞好了,能返回正确的结果了
var temper = msg.payload.substring(85,90);
     tem = temper.replace(/[^0-9]/ig,"")
     xx = parseInt(tem)

ac = {
   domain:"climate",
   service:"set_temperature",
   data:{
        temperature:xx,
        entity_id:"climate.ke_ting_kong_diao"
   }
}
msg.payload = ac
return msg;
回复

使用道具 举报

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2022-3-1 09:14:29 | 显示全部楼层
本帖最后由 bainiu 于 2022-3-1 09:21 编辑
telanx 发表于 2022-2-28 19:17
我也是个小白,尝试弄了下,你看看能不能行。

首先,不知道猫精传过来的参数是字符串还是json对象。我用 ...

谢谢楼主,我开始没有用json节点转换,一直读不到数据,按你的方法已经成功。你的比我那个截取字串,截取数字串,再字串转数字好多了。对字串string和对象object的区别有一点了解
回复

使用道具 举报

2

主题

25

帖子

112

积分

注册会员

Rank: 2

积分
112
金钱
87
HASS币
0
发表于 2024-8-12 11:28:30 | 显示全部楼层
// 假设上下文名为'airconTemp'  
var currentTemp = msg.空调的温度路径; 
currentTemp += 1; // 增加1度  
// 更新上下文中的温度  
  
// 构建一个包含新温度的消息  
msg.payload = {  
    domain: "climate",  
    service: "set_temperature",  
    data: {  
        temperature: currentTemp,  
        entity_id: "climate.kong_diao"  
    }  
};  
  
return msg;
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-21 18:30 , Processed in 0.082847 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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