UNPKG

node-red-contrib-broadlink-devices

Version:

Broadlink Node-RED control module

84 lines (80 loc) 2.88 kB
<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>