diff --git a/node-red-contrib-xiaomi-all/xiaomi-all.html b/node-red-contrib-xiaomi-all/xiaomi-all.html index e63c67a..bd70aaf 100644 --- a/node-red-contrib-xiaomi-all/xiaomi-all.html +++ b/node-red-contrib-xiaomi-all/xiaomi-all.html @@ -19,12 +19,20 @@ oneditprepare: function() { var node = this; + function getOnlyModelsValue(input) { + var cleanOnlyModels = []; + input.forEach((value) => { + cleanOnlyModels = cleanOnlyModels.concat(value.split(',')); + }); + return cleanOnlyModels; + } + function changeGateway(gateway, onlyModels, excludedSids) { var configNodeID = gateway || $('#node-input-gateway').val(); if (configNodeID) { var configNode = RED.nodes.node(configNodeID); if(configNode) { - onlyModels = onlyModels || $('#node-input-onlyModels').val() || []; + onlyModels = getOnlyModelsValue(onlyModels || $('#node-input-onlyModels').val() || []); excludedSids = excludedSids || $('#node-input-excludedSids').val() || []; $('#node-input-excludedSids').empty(); for (key in configNode.deviceList) { diff --git a/node-red-contrib-xiaomi-all/xiaomi-all.js b/node-red-contrib-xiaomi-all/xiaomi-all.js index df3cb30..04c96fc 100644 --- a/node-red-contrib-xiaomi-all/xiaomi-all.js +++ b/node-red-contrib-xiaomi-all/xiaomi-all.js @@ -32,7 +32,7 @@ module.exports = (RED) => { if (this.gateway) { this.on('input', (msg) => { // Filter input - if(msg.payload.model && msg.payload.sid) { + if(msg.payload && msg.payload.model && msg.payload.sid) { if(!this.isDeviceValid(msg.payload)) { msg = null; } diff --git a/package.json b/package.json index bfc4283..7e9de31 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "keywords": [ "Xiaomi", "Aqara", + "Yeelight", "node-red" ], "node-red": {