NodeRED - 全局变量的使用笔记


NodeRED - 全局变量的使用笔记

global

  • global.get(..) :获取全局范围的上下文属性
  • global.set(..) :设置全局范围的上下文属性
  • global.keys(..) :返回所有全局作用域上下文属性键的列表

语法

// 设置全局变量的值
global.set("variable",true); 

// 将全局变量取出并赋值给myvariable
var my_variable = global.get("variable");  

//如果上下文对象中不存在variable,则使我们的局部变量variable为零
var my_variable = global.get('variable') || false;

使用示例

插座状态值反馈
//查找当前插座状态值
var outlet_status_current = global.get('outlet_status') || false;

//定义目标插座状态值
var outlet_status_target = msg.payload.outlet;

//定义新对象
var newMsg = {};

if(outlet_status_target != outlet_status_current)
{
    newMsg= {payload :outlet_status_target,topic:"智能插座" };
    //设置当前状态值到全局变量
    global.set("outlet_status",outlet_status_target);
    return newMsg;
}
else{
    return null;
}



判断当前开关并发送指令
//查找当前插座状态值
var outlet_status_current = global.get('outlet_status') || false;
//定义目标插座状态值
var outlet_status_target = msg.payload;
// 定义新对象
var msg1= {};

if(outlet_status_target != outlet_status_current)
{
    if(msg.payload === true)
{    msg1 = {payload:'{"outlet":true}'};}
else
{    msg1 =  {payload:'{"outlet":false}'};}
global.set("outlet_status",outlet_status_target)
return msg1;
}
else{
    return null;
}



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM