Skip to content

Commit ee22f95

Browse files
authored
Merge pull request #77 from Samsung/dev
Fix : State node bug when there are no rules
2 parents cb89ee1 + 2153342 commit ee22f95

File tree

2 files changed

+51
-51
lines changed

2 files changed

+51
-51
lines changed

101-SmartThings.js

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -636,59 +636,59 @@ module.exports = function (RED) {
636636
NODE.send(resultMsg);
637637
} else if (NODE.type == ST_STATUS_DEVICE) {
638638
OneApi.getDeviceStates(param, authToken)
639-
.then(function (response) {
640-
NODE.loggingEditor && NODE.warn("[SmartThings] Status :" + NODE.name || NODE.alias || NODE.type);
641-
var deviceStatus = response.data;
642-
var opCheck = false;
643-
NODE.capabilityId = NODE.capabilityId.split('_v')[0]
644-
NODE.rules.forEach((rule, idx) => {
645-
var attributeValue = deviceStatus.components[deviceConfig.componentId || 'main'][NODE.capabilityId][NODE.attributeId].value;
646-
647-
let ruleValue = rule.value;
648-
649-
if (rule.valueType == 'object') {
650-
ruleValue = {};
651-
for (let k in rule.value) {
652-
const data = rule.value[k];
653-
ruleValue[k] = RED.util.evaluateNodeProperty(data.value, rule.type, NODE, msg);
654-
}
655-
} else {
656-
if (rule.argType === 'jsonata') {
657-
ruleValue = RED.util.evaluateJSONataExpression(ruleValue, msg);
658-
} else {
659-
ruleValue = RED.util.evaluateNodeProperty(ruleValue, rule.argType, NODE, msg);
660-
}
661-
}
639+
.then(function (response) {
640+
NODE.loggingEditor && NODE.warn("[SmartThings] Status :" + NODE.name || NODE.alias || NODE.type);
641+
var data = response.data;
642+
var opCheck = false;
643+
NODE.capabilityId = NODE.capabilityId.split('_v')[0]
644+
NODE.rules.forEach((rule, idx) => {
645+
var attributeValue = data.components[deviceConfig.componentId || 'main'][NODE.capabilityId][NODE.attributeId].value;
646+
647+
let ruleValue = rule.value;
648+
649+
if (rule.valueType == 'object') {
650+
ruleValue = {};
651+
for (let k in rule.value) {
652+
const data = rule.value[k];
653+
ruleValue[k] = RED.util.evaluateNodeProperty(data.value, rule.type, NODE, msg);
654+
}
655+
} else {
656+
if (rule.argType === 'jsonata') {
657+
ruleValue = RED.util.evaluateJSONataExpression(ruleValue, msg);
658+
} else {
659+
ruleValue = RED.util.evaluateNodeProperty(ruleValue, rule.argType, NODE, msg);
660+
}
661+
}
662662

663-
if (ruleValue == '' || ruleValue == undefined) {
664-
ruleValue = "\'\'";
665-
}
666-
if (rule.valueType == 'Iso8601Date') {
667-
opCheck = operators[rule.operator](new Date(ruleValue), new Date(attributeValue));
668-
} else {
669-
opCheck = operators[rule.operator](ruleValue, attributeValue);
670-
}
671-
if (opCheck) {
672-
// sendDebug(NODE.attributeId+"=\""+attributeValue+"\", ("+idx+")port success")
673-
RED.util.setMessageProperty(msg, 'payload', attributeValue);
674-
onward.push(msg);
675-
} else {
676-
// sendDebug(NODE.attributeId+"=\""+attributeValue+"\", ("+idx+")port fail")
677-
onward.push(null);
678-
}
679-
})
663+
if (ruleValue == '' || ruleValue == undefined) {
664+
ruleValue = "\'\'";
665+
}
666+
if (rule.valueType == 'Iso8601Date') {
667+
opCheck = operators[rule.operator](new Date(ruleValue), new Date(attributeValue));
668+
} else {
669+
opCheck = operators[rule.operator](ruleValue, attributeValue);
670+
}
671+
if (opCheck) {
672+
// sendDebug(NODE.attributeId+"=\""+attributeValue+"\", ("+idx+")port success")
673+
RED.util.setMessageProperty(msg, 'payload', attributeValue);
674+
onward.push(msg);
675+
} else {
676+
// sendDebug(NODE.attributeId+"=\""+attributeValue+"\", ("+idx+")port fail")
677+
onward.push(null);
678+
}
679+
})
680680

681-
if (NODE.rules.length == 0) {
682-
RED.util.setMessageProperty(msg, 'payload', data);
683-
onward.push(msg);
684-
}
685-
NODE.send(onward);
681+
if (NODE.rules.length == 0) {
682+
RED.util.setMessageProperty(msg, 'payload', data);
683+
onward.push(msg);
684+
}
685+
NODE.send(onward);
686686

687-
})
688-
.catch(function (err) {
689-
NODE.loggingEditor && console.error(err);
690-
NODE.loggingConsole && NODE.error("[error] " + err.errCd + ", " + err.errMsg);
691-
});
687+
})
688+
.catch(function (err) {
689+
NODE.loggingEditor && console.error(err);
690+
NODE.loggingConsole && NODE.error("[error] " + err.errCd + ", " + err.errMsg);
691+
});
692692
} else {
693693
NODE.loggingEditor && NODE.warn("[SmartThings] Action:" + NODE.name || NODE.alias || NODE.type);
694694

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "node-red-contrib-samsung-automation-studio-nodes",
3-
"version": "1.1.15",
3+
"version": "1.1.16",
44
"description": "Samsung Automation Studio Nodes for Node-RED",
55
"keywords": [
66
"SmartThings",

0 commit comments

Comments
 (0)