From fc00b1d66efcdbd5f0fb9e4c7b28687688b290c8 Mon Sep 17 00:00:00 2001 From: hdoukas Date: Sat, 12 Apr 2014 11:32:23 +0200 Subject: [PATCH] fixed backwards compatibility These changes affect the settings of hue node through the message input. msg.lamp sets the lamp ID msg.color sets the lamp color (e.g., msg.color="DF0101" will set the color to red) msg.brightness sets the lamp brightness (e.g., msg.brightness=50) msg.payload is used to se the lamp status (on/off/alert) (e.g., msg.payload="alert" will flash the Lamp once) msg.topic can be still used to set the color (compatibility with previous versions) --- hardware/hue/104-hue_manage.html | 10 +++++++++- hardware/hue/104-hue_manage.js | 29 ++++++++++++++++------------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/hardware/hue/104-hue_manage.html b/hardware/hue/104-hue_manage.html index a506c6ed..d23f3973 100644 --- a/hardware/hue/104-hue_manage.html +++ b/hardware/hue/104-hue_manage.html @@ -56,7 +56,15 @@ diff --git a/hardware/hue/104-hue_manage.js b/hardware/hue/104-hue_manage.js index e01f4be5..9d1374f2 100644 --- a/hardware/hue/104-hue_manage.js +++ b/hardware/hue/104-hue_manage.js @@ -92,27 +92,30 @@ function HueNode(n) { if(node.lamp_status=="AUTO") { var color; var brightness; - //check for lamp ID in the topic - if(myMsg.topic.length>1) { - var tmp_status = myMsg.topic.split(":"); - myMsg.topic = tmp_status[1]; - lamp = tmp_status[0]; + + //get lamp id from msg.lamp: + lamp = myMsg.lamp; + + //get brightness: + brightness = myMsg.brightness; + + //get colour either from msg.color or msg.topic + if(myMsg.color!=null && myMsg.color.length>0) { + color = myMsg.color; + } + else if(myMsg.topic!=null && myMsg.topic.length>0) { + color = myMsg.topic; } - //check for brightness & color: - if(myMsg.payload.length>1) { - var tmp_topic = myMsg.payload.split(":"); - color = tmp_topic[0]; - brightness = tmp_topic[1]; - } + //check the payload for on/off/alert: //case of ALERT: - if(myMsg.topic=="ALERT"){ + if(myMsg.payload=="ALERT" || myMsg.payload=="alert"){ api.setLightState(lamp, state.alert()).then(displayResult).fail(displayError).done(); } //case of ON: - if(myMsg.topic=="ON") { + if(myMsg.payload=="ON" || myMsg.payload=="on") { api.setLightState(lamp, state.on().rgb(hexToRgb(color).r,hexToRgb(color).g,hexToRgb(color).b).brightness(brightness)).then(displayResult).fail(displayError).done(); } else {