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;
}