UNPKG

node-red-contrib-broadlink

Version:
151 lines (147 loc) 6.79 kB
<script type="text/x-red" data-template-name="mp1device"> <div class="form-row"> <label for="node-config-input-mac"><i class="fa fa-cog"></i> <span data-i18n="mp1.label.mac"></span></label> <!--<select id="node-config-input-mac" style="width:70%"> <option value="_msg_" data-i18n="mp1.label.loading"></option> </select>--> <input type="text" id="node-config-input-mac" data-i18n="[placeholder]mp1.placeholder.mac"> </div> <div class="form-row"> <label for="node-config-input-host"><i class="fa fa-cog"></i> <span data-i18n="mp1.label.host"></span></label> <input type="text" id="node-config-input-host" data-i18n="[placeholder]mp1.placeholder.host"> </div> </script> <script type="text/javascript"> RED.nodes.registerType('mp1device', { category: 'config', defaults: { mac: { value: "", required: true, validate: RED.validators.regex(/^([0-9A-Fa-f]{12})$/) }, host: { value: "", required: true, validate: RED.validators.regex(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/) } }, /*oneditprepare: function () { var node = this, ddMac = $('#node-config-input-mac'); function updateDeviceList() { var url = 'broadlink/scan'; ddMac.val("_msg_"); $.getJSON(url, function (data) { ddMac.children().remove(); ddMac.append('<option value="_msg_">- установить из msg.payload -</option>'); for (var item in data.devices) { if ([0x4EB5].indexOf(data.devices[item].type) != -1) { ddMac.append('<option value="' + item + '">' + item.match(/[0-9A-Fa-f]{2}/g).join(':') + '</option>'); } } ddMac.val(node.mac); }); } updateDeviceList(); },*/ label: function () { return this.mac.match(/[0-9A-Fa-f]{2}/g).join(':'); } }); </script> <script type="text/javascript"> RED.nodes.registerType('MP1',{ category: 'broadlink', color: '#3FADB5', defaults: { name: { value: "" }, device: { type: "mp1device", required: false }, action: { value: "getState" }, s1: { value: true }, s2: { value: false }, s3: { value: false }, s4: { value: false }, state: { value: "true" } }, inputs:1, outputs:1, icon: "icon_sp2.png", oneditprepare: function () { $("#node-input-action").change(function () { var id = $("#node-input-action option:selected").val(); if (id != 'setState') { $(".mp1socket").hide(); $(".setState").hide(); } else { $(".mp1socket").show(); $(".setState").show(); } }); }, label: function() { return this.name||"MP1"; }, inputLabels: "parameter for input", outputLabels: ["output"] }); </script> <script type="text/x-red" data-template-name="MP1"> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="mp1.label.name"></span></label> <input type="text" id="node-input-name" data-i18n="[placeholder]mp1.placeholder.name"> </div> <div class="form-row"> <label for="node-input-device"><i class="fa fa-cog"></i> <span data-i18n="mp1.label.device"></span></label> <input type="text" id="node-input-device"> </div> <div class="form-row"> <label for="node-input-action"><i class="fa fa-code-fork"></i> <span data-i18n="mp1.label.action"></span></label> <select id="node-input-action" style="width:70%"> <option value="_msg_" data-i18n="mp1.label.option_action_msg"></option> <option value="getState" data-i18n="mp1.label.option_action_getState"></option> <option value="setState" data-i18n="mp1.label.option_action_setState"></option> </select> </div> <div class="form-row mp1socket"> <table> <tr> <td><label><i class="fa fa-plug"></i> <span data-i18n="mp1.label.socket"></span></label></td> <td> <table> <thead> <tr> <th>S1</th> <th>S2</th> <th>S3</th> <th>S4</th> </tr> </thead> <tbody> <tr> <td><input id="node-input-s1" type='checkbox' /></td> <td><input id="node-input-s2" type='checkbox' /></td> <td><input id="node-input-s3" type='checkbox' /></td> <td><input id="node-input-s4" type='checkbox' /></td> </tr> </tbody> </table> </td> </tr> </table> </div> <div class="form-row mp1socket"> <label for="node-input-state"><i class="fa fa-power-off"></i> <span data-i18n="mp1.label.state"></span></label> <select id="node-input-state" style="width:70%"> <option value="true" data-i18n="mp1.label.on"></option> <option value="false" data-i18n="mp1.label.off"></option> </select> </div> <div class="form-tips setState"><span data-i18n="mp1.message.setState"></span></div> <br class="setState" /> </script> <script type="text/x-red" data-help-name="MP1" data-lang="ru-RU"> <p><span >Узел, позволяющий управлять вашим Broadlink MP1.</span></p> <p><span >Выбирете действие, либо установите через</span> <code>msg.payload.action</code></p> <h3><span >Состояние</span></h3> <pre>msg.payload.action = 'getState';</pre> <h3><span >Установить</span></h3> <pre>msg.payload.action = 'setState'; msg.payload.state = false; msg.payload.s1 = true; msg.payload.s2 = true; msg.payload.s3 = false; msg.payload.s4 = false;</pre> </script>