UNPKG

node-red-contrib-homematic

Version:
204 lines (195 loc) 7.63 kB
<script type="text/x-red" data-template-name="homematic"> <div class="form-row" id="node-form-ccu"> <label for="node-input-ccu"><i class="fa fa-dot-circle-o"></i> CCU</label> <input type="text" id="node-input-ccu"> </div> <div class="form-row" id="node-form-device"> <label for="node-input-device"><i class="fa fa-dot-circle-o"></i> Device</label> <input type="text" id="node-input-device"> </div> <div class="form-row" id="node-form-function"> <label for="node-input-function"><i class="fa fa-list"></i> Function</label> <select id="node-input-function"> <option value=""></option> <option value="setValue">setValue</option> <option value="getValue">getValue</option> </select> </div> <div class="form-row" id="node-form-attribute"> <label for="node-input-attribute"><i class="fa fa-list"></i> Attribute</label> <select id="node-input-attribute"> <option value=""></option> <option value="ACTUAL_TEMPERATURE">ACTUAL_TEMPERATURE</option> <option value="ACTUAL_HUMIDITY">ACTUAL_HUMIDITY</option> <option value="ABS_HUMIDITY">ABS_HUMIDITY</option> <option value="HUMIDITY">HUMIDITY</option> <option value="SET_TEMPERATURE">SET_TEMPERATURE</option> <option value="MANU_MODE">MANU_MODE</option> <option value="AUTO_MODE">AUTO_MODE</option> <option value="BOOST_MODE">BOOST_MODE</option> <option value="COMFORT_MODE">COMFORT_MODE</option> <option value="LOWERING_MODE">LOWERING_MODE</option> <option value="PARTY_MODE">PARTY_MODE</option> <option value="PARTY_MODE_SUBMIT">PARTY_MODE_SUBMIT</option> <option value="PARTY_TEMPERATURE">PARTY_TEMPERATURE</option> <option value="PARTY_SET_POINT_TEMPERATURE">PARTY_SET_POINT_TEMPERATURE</option> <option value="LEVEL">LEVEL</option> <option value="STATE">STATE</option> <option value="OPEN">OPEN</option> <option value="BRIGHTNESS">BRIGHTNESS</option> <option value="MOTION">MOTION</option> <option value="LOWBAT">LOWBAT</option> <option value="ACTIVE_PROFILE">ACTIVE_PROFILE</option> <option value="WINDOW_STATE">WINDOW_STATE</option> <option value="SET_POINT_TEMPERATURE">SET_POINT_TEMPERATURE</option> <option value="SET_POINT_MODE">SET_POINT_MODE</option> <option value="CONFIG_PENDING">CONFIG_PENDING</option> <option value="CURRENT">CURRENT</option> <option value="FREQUENCY">FREQUENCY</option> <option value="VOLTAGE">VOLTAGE</option> <option value="POWER">POWER</option> <option value="RAMP_TIME">RAMP_TIME</option> </select> </div> <div class="form-row hidden" id="node-form-value"> <label for="node-input-value"><i class="fa fa-sign-out"></i> Value</label> <input type="text" id="node-input-value" placeholder="Value"> </div> <div class="form-row" id="node-form-nodeName"> <label for="node-input-nodeName"><i class="fa fa-tag"></i> Node Name</label> <input type="text" id="node-input-nodeName" placeholder="Homematic"> </div> </script> <script type="text/x-red" data-help-name="homematic"> <p>This Node provides predefined commands to control Homematic devices.</p> <p>Choose function, channel, attribute and value you want to set</p> <p></p> <p><b>Outputs:</b> a msg object containing "remote script calls" which can be send to the CCU using the http-request node.</p> <p><b>Find more infos on:</b></p> <p> <a href="https://github.com/firsttris/node-red-contrib-homematic" target="_blank">node-red-contrib-homematic Github page</a> </p> </script> <script type="text/javascript"> RED.nodes.registerType('homematic', { category: 'function', color: "#ecf0f1", defaults: { ccu: { type: "ccu-address" }, device: { type: "homematic-device" }, function: { value: "", required: true }, attribute: { value: "", required: true }, value: { value: "" }, nodeName: { value: "" } }, inputs: 1, outputs: 1, icon: "envelope.png", label: function () { if (this.nodeName) { return this.nodeName } else if (this.function) { return this.function + " " + this.value; } else { return "homematic" } }, labelStyle: function () { return (this.nodeName) ? "node_label_italic" : ""; }, oneditprepare: function () { $("#node-input-function").change(function () { var selectedMethod = $("#node-input-function").val(); if (selectedMethod === "setValue") { $("#node-form-value").show(); } if (selectedMethod === "getValue") { $("#node-form-value").hide(); } }); $("#node-input-function").change(); } }); </script> <script type="text/x-red" data-template-name="ccu-address"> <div class="form-row"> <label for="node-config-input-host"><i class="fa fa-tag"></i> Host</label> <input type="text" id="node-config-input-host" placeholder="Host"> </div> <div class="form-row"> <label for="node-config-input-interfaceName"><i class="fa fa-globe"></i> Interface</label> <select id="node-config-input-interfaceName"> <option value="HmIP-RF.">HmIP-RF</option> <option value="BidCos-Wired.">BidCos-Wired</option> <option value="BidCos-RF.">BidCos-RF</option> </select> </div> <div class="form-row"> <label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label> <input type="text" id="node-config-input-name" placeholder="Name"> </div> </script> <script type="text/x-red" data-help-name="ccu-address"> <p>Configure IP and Interface of your CCU</p> <p><i>CCU2 uses BidCos-RF</i></p> </script> <script type="text/javascript"> RED.nodes.registerType('ccu-address', { category: 'config', defaults: { host: { value: "" }, interfaceName: { value: "" }, name: { value: "" } }, label: function () { if (this.name) { return this.name; } else { return this.host; } } }); </script> <script type="text/x-red" data-template-name="homematic-device"> <div class="form-row"> <label for="node-config-input-channel"><i class="fa fa-tag"></i> Channel</label> <input type="text" id="node-config-input-channel" placeholder="Channel"> </div> <div class="form-row"> <label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label> <input type="text" id="node-config-input-name" placeholder="Name"> </div> </script> <script type="text/x-red" data-help-name="homematic-device"> <p>Configure your channels (devices)</p> </script> <script type="text/javascript"> RED.nodes.registerType('homematic-device', { category: 'config', defaults: { channel: { channel: "" }, name: { value: "" } }, label: function () { if (this.name) { return this.name; } else { return this.channel; } } }); </script>