diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..472b029 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Created by .ignore support plugin (hsz.mobi) + +*.iml diff --git a/node-red-contrib-xiaomi-gateway/xiaomi-gateway.html b/node-red-contrib-xiaomi-gateway/xiaomi-gateway.html index 27bc130..0ea9b93 100644 --- a/node-red-contrib-xiaomi-gateway/xiaomi-gateway.html +++ b/node-red-contrib-xiaomi-gateway/xiaomi-gateway.html @@ -3,12 +3,75 @@ category: 'config', defaults: { name: {value: ""}, - group: {value: "224.0.0.50", required: true}, - port: {value: 9898, required: true, validate:RED.validators.number()}, - udpv: {value: "udp4"} + deviceList: {value:[{ sid:"a", desc:"b", model:"plug"}]} }, label: function () { return this.name || "xiaomi-gateway"; + }, + oneditprepare: function() { + var node = this; + + console.log("config window openend: " + node.deviceList); + + $("#node-config-input-devices").css('min-height','250px').css('min-width','450px').editableList({ + addItem: function(container, i, device) { + if (!device.hasOwnProperty('model')) { + device.model = 'sensor_ht'; + } + var row = $('
').appendTo(container); + + $('',{for:"node-config-input-sid-"+i, style:"margin-left: 3px; width: 30px;vertical-align:middle"}).text("sid").appendTo(row); + var sid = $('',{id:"node-config-input-sid-"+i,type:"text", style:"width:auto;vertical-align:top"}).appendTo(row); + + $('',{for:"node-config-input-desc-"+i, style:"margin-left: 7px; width: 35px;vertical-align:middle"}).text("desc.").appendTo(row); + var desc = $('',{id:"node-config-input-desc-"+i, type:"text", style:"width:auto;vertical-align:top"}).appendTo(row); + + var model = $('',{id:"node-config-input-model-"+i},{style:"width:120px; margin-left: 5px; text-align: center;"}).appendTo(row); + model.append($("").val("sensor_ht").text("sensor_ht")); + model.append($("").val("magnet").text("magnet")); + model.append($("").val("plug").text("plug")); + model.append($("").val("gateway").text("gateway")); + model.append($("").val("switch").text("switch")); + + sid.val(device.sid); + desc.val(device.desc); + model.val(device.model); + + }, + removeItem: function(opt) { + }, + sortItems: function(rules) { + }, + sortable: true, + removable: true + }); + + console.log("Devices: " + JSON.stringify(node.deviceList)); + for (var i=0;i