@@ -1,4 +1,12 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
function getOnlyModelsValue(input) {
|
||||||
|
var cleanOnlyModels = [];
|
||||||
|
input.forEach(function(value) {
|
||||||
|
cleanOnlyModels = cleanOnlyModels.concat(value.split(','));
|
||||||
|
});
|
||||||
|
return cleanOnlyModels;
|
||||||
|
}
|
||||||
|
|
||||||
RED.nodes.registerType('xiaomi-all', {
|
RED.nodes.registerType('xiaomi-all', {
|
||||||
category: 'xiaomi',
|
category: 'xiaomi',
|
||||||
color: '#3FADB5',
|
color: '#3FADB5',
|
||||||
@@ -24,7 +32,7 @@
|
|||||||
if (configNodeID) {
|
if (configNodeID) {
|
||||||
var configNode = RED.nodes.node(configNodeID);
|
var configNode = RED.nodes.node(configNodeID);
|
||||||
if(configNode) {
|
if(configNode) {
|
||||||
onlyModels = onlyModels || $('#node-input-onlyModels').val() || [];
|
onlyModels = getOnlyModelsValue(onlyModels || $('#node-input-onlyModels').val() || []);
|
||||||
excludedSids = excludedSids || $('#node-input-excludedSids').val() || [];
|
excludedSids = excludedSids || $('#node-input-excludedSids').val() || [];
|
||||||
$('#node-input-excludedSids').empty();
|
$('#node-input-excludedSids').empty();
|
||||||
for (key in configNode.deviceList) {
|
for (key in configNode.deviceList) {
|
||||||
@@ -53,6 +61,7 @@
|
|||||||
if(!$('#node-input-excludedSids').val()) {
|
if(!$('#node-input-excludedSids').val()) {
|
||||||
this.excludedSids = [];
|
this.excludedSids = [];
|
||||||
}
|
}
|
||||||
|
this.onlyModels = getOnlyModelsValue(this.onlyModels);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -71,10 +80,10 @@
|
|||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label for="node-input-onlyModels"><i class="icon-tag"></i> Only</label>
|
<label for="node-input-onlyModels"><i class="icon-tag"></i> Only</label>
|
||||||
<select multiple id="node-input-onlyModels">
|
<select multiple id="node-input-onlyModels">
|
||||||
<option value="sensor_ht">Temperature/humidty</option>
|
<option value="sensor_ht,weather.v1">Temperature/humidty</option>
|
||||||
<option value="motion">Motion</option>
|
<option value="motion">Motion</option>
|
||||||
<option value="switch">Switches</option>
|
<option value="switch,sensor_switch.aq2">Switches</option>
|
||||||
<option value="magnet">Contacts</option>
|
<option value="magnet,sensor_magnet.aq2">Contacts</option>
|
||||||
<option value="plug">Plugs</option>
|
<option value="plug">Plugs</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ module.exports = (RED) => {
|
|||||||
this.gateway = RED.nodes.getNode(config.gateway);
|
this.gateway = RED.nodes.getNode(config.gateway);
|
||||||
this.onlyModels = config.onlyModels;
|
this.onlyModels = config.onlyModels;
|
||||||
this.excludedSids = config.excludedSids;
|
this.excludedSids = config.excludedSids;
|
||||||
|
console.log(this.onlyModels);
|
||||||
|
|
||||||
|
|
||||||
this.isDeviceValid = (device) => {
|
this.isDeviceValid = (device) => {
|
||||||
if((!this.onlyModels || this.onlyModels.length == 0) && (!this.excludedSids || this.excludedSids.length == 0)) {
|
if((!this.onlyModels || this.onlyModels.length == 0) && (!this.excludedSids || this.excludedSids.length == 0)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
// Is excluded
|
||||||
if((this.excludedSids && this.excludedSids.length != 0) && this.excludedSids.indexOf(device.sid) >= 0) {
|
if((this.excludedSids && this.excludedSids.length != 0) && this.excludedSids.indexOf(device.sid) >= 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user