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

 找回密码
 立即注册
查看: 79043|回复: 179

[教程系列] 让node-red可持久化存储变量

  [复制链接]

219

主题

1287

帖子

7947

积分

超级版主

Rank: 8Rank: 8

积分
7947
金钱
6630
HASS币
86

教程狂人论坛风云人物突出贡献

发表于 2018-12-18 17:52:01 | 显示全部楼层 |阅读模式
本帖最后由 lidicn 于 2018-12-18 17:57 编辑

前言

  1. node-red一共有三种变量
  2. context/flow/global

三种变量的使用请参考下列教程

node-red教程 5.4 context global与函数节点的其它功能

为何需要持久化存储变量

  1. node-red变量都存储在内存中,当涉及到需要长时间存储的变量就会蒙圈

修改settings.js

修改/config/node-red/settings.js在末尾添加下面代码,注意需要添加逗号与之前的配置隔开,

contextStorage: {
      store: { module: "localfilesystem"},
      default: { module: "memory" }
    }

重启node-red

持久化存储变量演示

TIM截图20181218173803.jpg

将一个时间戳存储为持久化变量的流程
TIM截图20181218173919.jpg

[{"id":"194cc8b7.c747d7","type":"function","z":"6fddb7c0.6e1238","name":"获取当前时间戳","func":"var now = new Date();\nvar timestamp = Date.parse(new Date());\nmsg.timestamp = timestamp;\nreturn msg","outputs":1,"noerr":0,"x":560,"y":400,"wires":[["33d327f2.612d98"]]},{"id":"33d327f2.612d98","type":"moment","z":"6fddb7c0.6e1238","name":"","topic":"","input":"timestamp","inputType":"msg","inTz":"Asia/Shanghai","adjAmount":0,"adjType":"days","adjDir":"add","format":"YYYY-MM-DD HH:mm","locale":"C","output":"time","outputType":"msg","outTz":"Asia/Shanghai","x":800,"y":400,"wires":[["c64f0690.f36dd8"]]},{"id":"c64f0690.f36dd8","type":"function","z":"6fddb7c0.6e1238","name":"记录内容","func":"msg.payload = {};\nmsg.payload = msg.time;\nreturn msg;","outputs":1,"noerr":0,"x":1020,"y":400,"wires":[["af66ec83.b4baf"]]},{"id":"39ec4955.dfcc36","type":"inject","z":"6fddb7c0.6e1238","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":340,"y":400,"wires":[["194cc8b7.c747d7"]]},{"id":"af66ec83.b4baf","type":"change","z":"6fddb7c0.6e1238","name":"","rules":[{"t":"move","p":"timestamp","pt":"msg","to":"#store):pen_door_time","tot":"global"}],"action":"","property":"","from":"","to":"","reg":false,"x":1220,"y":400,"wires":[["6938cf5a.1cd1e"]]},{"id":"6938cf5a.1cd1e","type":"debug","z":"6fddb7c0.6e1238","name":"调式信息","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1420,"y":400,"wires":[]}]

查看刚刚存的持久化变量,点击刷新
TIM截图20181218174219.jpg

读取持久化变量演示

  1. 持久化存储的变量与存储在内存的变量是两个变量,即使它们名称完全一样
  2. 读取持久化变量的时候,需声明变量类型,否则会优先读取内存变量,即使这个变量不存在
    TIM截图20181218174708.jpg

TIM截图20181218174741.jpg

[{"id":"17b92e08.db1f12","type":"inject","z":"6fddb7c0.6e1238","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":620,"y":540,"wires":[["ce9d5ed6.2510a"]]},{"id":"ce9d5ed6.2510a","type":"function","z":"6fddb7c0.6e1238","name":"读取开门时间","func":"var message = global.get('open_door_time', \"store\");\n\nmsg.payload = {};\nmsg.payload.data = {\"message\":message,\"miai_num\":\"0\"};\nreturn msg;\n","outputs":1,"noerr":0,"x":800,"y":560,"wires":[["5f7fa373.528d2c"]]},{"id":"5f7fa373.528d2c","type":"debug","z":"6fddb7c0.6e1238","name":"调式信息","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1000,"y":560,"wires":[]}]

持久化存储的秘密

存成文件了
TIM截图20181218175554.jpg


游客,如果您要查看本帖隐藏内容请回复



评分

参与人数 2金钱 +9 收起 理由
summ99111 + 1 感谢楼主分享!
flashsoft + 8 大神666!

查看全部评分

回复

使用道具 举报

4

主题

313

帖子

1965

积分

金牌会员

Rank: 6Rank: 6

积分
1965
金钱
1652
HASS币
0
发表于 2018-12-18 17:59:06 | 显示全部楼层
看看看看,学习,自动化还是nodered
回复

使用道具 举报

6

主题

484

帖子

4040

积分

论坛元老

Rank: 8Rank: 8

积分
4040
金钱
3556
HASS币
0
发表于 2018-12-18 18:38:25 | 显示全部楼层
谢谢分享
回复

使用道具 举报

10

主题

276

帖子

1192

积分

金牌会员

Rank: 6Rank: 6

积分
1192
金钱
916
HASS币
10
发表于 2018-12-18 19:40:28 | 显示全部楼层
这个好 !!!!
回复

使用道具 举报

0

主题

163

帖子

1019

积分

金牌会员

Rank: 6Rank: 6

积分
1019
金钱
856
HASS币
0
发表于 2018-12-18 20:05:12 | 显示全部楼层

谢谢分享
回复

使用道具 举报

9

主题

242

帖子

1792

积分

金牌会员

Rank: 6Rank: 6

积分
1792
金钱
1550
HASS币
0
发表于 2018-12-18 21:32:50 | 显示全部楼层
学习下呢!
回复

使用道具 举报

9

主题

787

帖子

3860

积分

论坛元老

Rank: 8Rank: 8

积分
3860
金钱
3073
HASS币
87
发表于 2018-12-18 21:41:35 | 显示全部楼层
之前只知道有全局变量,居然还能这样.node真是强大
回复

使用道具 举报

2

主题

316

帖子

1626

积分

金牌会员

Rank: 6Rank: 6

积分
1626
金钱
1310
HASS币
0
发表于 2018-12-19 00:01:00 | 显示全部楼层
谢谢分享
回复

使用道具 举报

8

主题

2073

帖子

6055

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6055
金钱
3982
HASS币
145

灌水之王

发表于 2018-12-19 09:49:18 | 显示全部楼层
这种级别的操作 暂时看看就好
回复

使用道具 举报

8

主题

870

帖子

5218

积分

论坛元老

Rank: 8Rank: 8

积分
5218
金钱
4348
HASS币
0
发表于 2018-12-19 11:53:54 | 显示全部楼层
谢谢分享,学习
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-4 01:27 , Processed in 0.070908 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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