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

 找回密码
 立即注册
查看: 1461|回复: 7

[流程系列] nodered 怎么获取家庭环境温度推送到钉钉

[复制链接]

4

主题

28

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
金钱
268
HASS币
0
发表于 2024-1-29 16:13:43 | 显示全部楼层 |阅读模式
钉钉机器人测试好了可以接收消息,论坛找了一个流,不知道怎么获取 ha 里面的家庭温度,请求指导一下?
CleanShot 2024-01-29 at 16.11.41@2x.png
CleanShot 2024-01-29 at 16.12.35@2x.png
回复

使用道具 举报

4

主题

28

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
金钱
268
HASS币
0
 楼主| 发表于 2024-1-30 03:55:01 | 显示全部楼层
大概理解一部分,知识这个流的信息模版事钉钉的模版改的,我不明白家庭温度怎么赋值给var contentmsg=""的?
回复

使用道具 举报

12

主题

243

帖子

1919

积分

论坛技术达人

积分
1919
金钱
1665
HASS币
40
发表于 2024-1-30 09:22:10 | 显示全部楼层
funciton设置个全局变量,然后从homeassistant节点获取温度赋值,然后在你msg的消息里直接写这个全局变量就可以了
回复

使用道具 举报

1

主题

49

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
金钱
295
HASS币
0
发表于 2024-1-30 10:13:54 | 显示全部楼层
fengfeng 发表于 2024-1-30 03:55
大概理解一部分,知识这个流的信息模版事钉钉的模版改的,我不明白家庭温度怎么赋值给var contentmsg=""的 ...

var contentmsg只是定义了一个变量,只是用来拼接的的一个字符串
回复

使用道具 举报

22

主题

610

帖子

2747

积分

金牌会员

Rank: 6Rank: 6

积分
2747
金钱
2137
HASS币
0
发表于 2024-1-30 10:26:26 | 显示全部楼层
钉钉可以反向控制吗?
回复

使用道具 举报

4

主题

28

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
金钱
268
HASS币
0
 楼主| 发表于 2024-1-30 15:36:09 | 显示全部楼层
needs 发表于 2024-1-30 09:22
funciton设置个全局变量,然后从homeassistant节点获取温度赋值,然后在你msg的消息里直接写这个全局变量就 ...

我现在 function 函数设置// 假设温度数据在 msg.payload 中
var temperature = msg.payload;
msg.payload = {
    "msgtype": "text",
    "text": {
        "content": "家庭温度更新:" + temperature + "℃"
    }
};

return msg;
// 假设温度数据在 msg.payload 中
var temperature = msg.payload;
msg.payload = {
    "msgtype": "text",
    "text": {
        "content": "家庭温度更新:" + temperature + "℃"
    }
};

return msg;
可以给钉钉发送温度消息。但是加入 inject 周期性触发之后一直显示时间戳而不是温度。

目前流

目前流

function

function

引入 inject】后 debug 错误

引入 inject】后 debug 错误
回复

使用道具 举报

4

主题

28

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
金钱
268
HASS币
0
 楼主| 发表于 2024-1-30 15:37:40 | 显示全部楼层
a_dongde 发表于 2024-1-30 10:26
钉钉可以反向控制吗?

还没玩到那一步
回复

使用道具 举报

3

主题

58

帖子

727

积分

高级会员

Rank: 4

积分
727
金钱
669
HASS币
0
发表于 2024-2-8 22:51:27 | 显示全部楼层
var temp = msg.payload;  //定义变量"temp"为"msg.payload"的值
var temp_old = flow.get("temp_old");  //定义变量"temp_old"为全局变量中的"temp_old"
if(temp > -20 && temp < 60){  //如果"temp"在-20到60℃之间
    flow.set("temo_old",temp);  //将"temp"的新值赋值到全局变量"temp_old"
    msg.payload = {
        "msgtype": "text",
        "text" :{
            "content": "新温度" + temp + "℃"
        }
    }
}
else{ //否则
    msg.payload = {
        "msgtype": "text",
        "text" :{
            "content": "新温度" + temp_old + "℃"
        }
    }
}
return msg;

这个应该可以满足你现在的需求,还可以用你写的function 然后向下图一样修改节点
屏幕截图 2024-02-08 224150.png
不懂编程、英语很差的小白
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 04:41 , Processed in 1.886799 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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