node-red-contrib-broadlink-devices
Version:
Broadlink Node-RED control module
84 lines (80 loc) • 2.88 kB
HTML
<script type="text/javascript">
RED.nodes.registerType('RM',{
category: 'broadlink',
color: '#3FADB5',
defaults: {
name: { value: '' },
device: { type: 'broadlink-rm-config', required: true }
},
inputs: 1,
outputs: 1,
icon: "icon_rm.png",
label: function() {
return this.name||"RM";
}
});
RED.nodes.registerType('broadlink-rm-config',{
category: 'config',
color: '#3FADB5',
defaults: {
name: { value: '', required: true },
mac: { value: '', required: true },
},
inputs: 1,
outputs: 1,
icon: "icon_rm.png",
label: function() {
return this.name||"RM Device";
},
oneditprepare: () => {
const node = this, macInput = $('#node-config-input-mac'), macSelector = $('#node-config-input-mac-selector');
$.getJSON('broadlink/discover', (data) => {
macSelector.children().remove();
if (data.length === 0) {
macSelector.append(`<option value="">No devices found</option>`);
return;
}
data.forEach((dev) => {
if (dev.type === 'RM2') {
macSelector.append(`<option value="${dev.id}">${dev.mac} @ ${dev.ip}</option>`)
}
});
macSelector.on('change', function () {
macInput.val(macSelector.val());
})
macSelector.val(macInput.val());
});
}
});
</script>
<script type="text/x-red" data-template-name="broadlink-rm-config">
<div class="form-row">
<label for="node-config-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-config-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-config-input-mac"><i class="fa fa-cog"></i> MAC Address</label>
<input type="hidden" id="node-config-input-mac" placeholder="Mac Address">
<select id="node-config-input-mac-selector" style="width:70%">
<option value="_msg_">Loading ...</option>
</select>
</div>
</script>
<script type="text/x-red" data-help-name="broadlink-rm-config">
<p>RM Device Configuration <code>msg.payload</code>:</p>
<pre>{"mac":"b4430dc30cb3","host":"192.168.10.14"}</pre>
</script>
<script type="text/x-red" data-template-name="RM">
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-device"><i class="icon-tag"></i> Device</label>
<input type="text" id="node-input-device" placeholder="Device">
</div>
</script>
<script type="text/x-red" data-help-name="RM">
<p>RM Device Configuration <code>msg.payload</code>:</p>
<pre>{"mac":"b4430dc30cb3","host":"192.168.10.14"}</pre>
</script>