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