node-red-contrib-homekit-mqtt
Version:
Node-RED nodes to simulate Apple HomeKit devices
179 lines (160 loc) • 5.93 kB
HTML
<!--
NodeRED HomeKit MQTT
Copyright (C) 2017 Michael Jacobsen / Marius Schmeding.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<script type="text/x-red" data-template-name="homekit-lightsensor-v2">
<div class="form-row">
<b>MQTT Settings</b>
</div>
<div class="form-row">
<label for="node-input-client"><i class="fa fa-globe"></i> MQTT Server</span></label>
<input type="text" id="node-input-client">
</div>
<div class="form-row">
<label for="node-input-nodename"><i class="fa fa-tag"></i> Nodename</span></label>
<input type="text" id="node-input-nodename" Nodename>
</div>
<div class="form-row">
<label for="node-input-dataid"><i class="fa fa-tag"></i> Data Id</span></label>
<input type="text" id="node-input-dataid" Data Id>
</div>
<div class="form-row">
<label for="node-input-wdt"><i class="fa fa-tag"></i> Watchdog</span></label>
<input type="text" id="node-input-wdt" 60>
</div>
<div class="form-row">
<b>HomeKit Settings</b>
</div>
<div class="form-row">
<label for="node-input-accessory">
<i class="fa fa-rocket"></i>
Accessory</label>
<input id="node-input-accessory">
</div>
<div class="form-row">
<label for="node-input-name">
<i class="fa fa-tag"></i>
Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<b>Default values</b>
</div>
<div class="form-row">
<label for="node-config-input-statusactive" style="width: auto"><i class="fa fa-cog"></i> Active</label>
<input type="checkbox" id="node-config-input-statusactive" style="display: inline-block; width: auto; vertical-align: top;">
</div>
<div class="form-row">
<label for="node-input-statusfault"><i class="fa fa-cog"></i> Status Fault</span></label>
<select id="node-input-statusfault">
<option value="-1">Do not set default value (-1)</option>
<option value="0">No Fault (0)</option>
<option value="1">General Fault (1)</option>
</select>
</div>
<div class="form-row">
<label for="node-input-statustampered"><i class="fa fa-cog"></i> Status Tampered</span></label>
<select id="node-input-statustampered">
<option value="-1">Do not set default value (-1)</option>
<option value="0">Not Tampered (0)</option>
<option value="1">Tampered (1)</option>
</select>
</div>
<div class="form-row">
<label for="node-input-statuslowbattery"><i class="fa fa-cog"></i> Status Battery</span></label>
<select id="node-input-statuslowbattery">
<option value="-1">Do not set default value (-1)</option>
<option value="0">Battery Level Normal (0)</option>
<option value="1">Battery Level Low (1)</option>
</select>
</div>
<div class="form-tips">
<b>Input</b><br/>
<code>msg.topic</code> must be one of these:<br/>
<i><nbsp>currentambientlightlevel</i> (Float)<br/>
<i><nbsp>statusactive</i> (Bool)<br/>
<i><nbsp>statusfault</i> (UInt8)<br/>
<i><nbsp>statustampered</i> (UInt8)<br/>
<i><nbsp>statuslowbattery</i> (UInt8)<br/>
<br/>
<b>Outputs</b><br/>
<code>1:</code> Transactions<br/>
<code>2:</code> Log<br/>
<code>3:</code> Online/Offline status<br/>
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('homekit-lightsensor-v2', {
category: 'homekit_mqtt-function',
paletteLabel: 'LightSensor',
defaults: {
client: {
type: "homekit-mqtt-client",
required: true
},
nodename: {
value: "",
required: true
},
dataid: {
value: "LightSensor.",
required: true
},
wdt: {
value: 65,
required: true,
validate:RED.validators.number()
},
accessory: {
value: "",
type: "homekit-accessory-v2",
required: true
},
name: {
value: ""
},
serviceName: {
value: "LightSensor",
required: true
},
statusactive: {
value: true
},
statusfault: {
value: -1
},
statustampered: {
value: -1
},
statuslowbattery: {
value: -1
}
},
inputs: 1,
outputs: 3,
icon: "homekit.png",
color: "#fcc127",
label: function() {
return this.name || "LightSensor";
},
labelStyle: function() {
return this.name ? "node_label_italic" : ""
},
oneditprepare: function () {
if (typeof this.statusactive === 'undefined') {
this.statusactive = true
}
$("#node-config-input-statusactive").prop("checked", this.statusactive)
}
})
</script>