node-red-contrib-broadlink-control
Version:
Node Red nodes to control the Broadlink RM devices and other Broadlink home automation nodes.
100 lines (92 loc) • 4.46 kB
HTML
<script type="text/x-red" data-template-name="a1device">
<div class="form-row">
<label for="node-config-input-mac"><i class="fa fa-cog"></i> <span data-i18n="a1.label.mac"></span></label>
<!--<select id="node-config-input-mac" style="width:70%">
<option value="_msg_" data-i18n="a1.label.loading"></option>
</select>-->
<input type="text" id="node-config-input-mac" data-i18n="[placeholder]a1.placeholder.mac">
</div>
<div class="form-row">
<label for="node-config-input-host"><i class="fa fa-cog"></i> <span data-i18n="a1.label.host"></span></label>
<input type="text" id="node-config-input-host" data-i18n="[placeholder]a1.placeholder.host">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('a1device', {
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 ([0x2714].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('A1',{
category: 'broadlink',
color: '#C7E9C0',
defaults: {
name: { value: "" },
device: { type: "a1device", required: false }
},
inputs:1,
outputs:1,
icon: "icon_a1.png",
label: function() {
return this.name||"A1";
},
inputLabels: "parameter for input",
outputLabels: ["output"]
});
</script>
<script type="text/x-red" data-template-name="A1">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="a1.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]a1.placeholder.name">
</div>
<div class="form-row">
<label for="node-input-device"><i class="fa fa-cog"></i> <span data-i18n="a1.label.device"></span></label>
<input type="text" id="node-input-device">
</div>
<!--<div class="form-tips" data-i18n="a1.message.udptip"></div>-->
</script>
<script type="text/x-red" data-help-name="A1" data-lang="ru-RU">
<p>Узел, позволяющий получать данные с вашего Broadlink A1.</p>
<ul>
<li>Температура: <code>msg.payload.temperature</code></li>
<li>Влажность: <code>msg.payload.humidity</code></li>
<li>Уровень освещения: <code>msg.payload.light</code></li>
<li>Качество воздуха: <code>msg.payload.air_quality</code></li>
<li>Уровень шума: <code>msg.payload.noise</code></li>
</ul>
</script>
<script type = "text / x-red" data-help-name = "A1" data-lang = "en-US">
<p>A node that allows you to receive data from your Broadlink A1.</p>
<ul>
<li> Temperature: <code>msg.payload.temperature</code></li>
<li> Humidity: <code>msg.payload.humidity</code></li>
<li> Lighting level: <code>msg.payload.light</code></li>
<li> Air quality: <code>msg.payload.air_quality</code></li>
<li> Noise level: <code>msg.payload.noise</code></li>
</ul>
</script>