UNPKG

node-red-contrib-knx-ultimate

Version:

Control your KNX and KNX Secure intallation via Node-Red! A bunch of KNX nodes, with integrated Philips HUE control, ETS group address importer, and KNX routing between interfaces. Easy to use and highly configurable.

128 lines (116 loc) 7.31 kB
<script type="text/javascript" src="resources/node-red-contrib-knx-ultimate/htmlUtils.js"></script> <script type="text/javascript"> RED.nodes.registerType('knxUltimateMultiRouting', { category: "KNX Ultimate Router", color: 'lightblue', defaults: { mode: { value: "gateway", required: true }, server: { type: "knxUltimate-config", required: false }, name: { value: "KNX Multi Routing", required: false }, outputtopic: { value: "", required: false }, dropIfSameGateway: { value: true }, respectRoutingCounter: { value: true }, decrementRoutingCounter: { value: false }, // KNX/IP tunneling server options (mode=server) tunnelListenHost: { value: "0.0.0.0", required: false }, tunnelListenPort: { value: 3671, required: false, validate: RED.validators.number() }, tunnelAdvertiseHost: { value: "", required: false }, tunnelAssignedIndividualAddress: { value: "15.15.255", required: false }, tunnelMaxSessions: { value: 1, required: false, validate: RED.validators.number() }, tunnelGatewayId: { value: "", required: false } }, inputs: 1, outputs: 1, outputLabels: function () { return RED._('knxUltimateMultiRouting.outputs.raw'); }, icon: "node-knx-icon.svg", label: function () { return (this.name || "KNX Multi Routing"); }, paletteLabel: "KNX Multi Routing", oneditprepare: function () { try { RED.sidebar.show("help"); } catch (error) { } const toggleMode = () => { const mode = $("#node-input-mode").val() || "gateway"; if (mode === "server") { $(".knxmr-row-gateway").hide(); $(".knxmr-row-tunnel").show(); } else { $(".knxmr-row-gateway").show(); $(".knxmr-row-tunnel").hide(); } }; $("#node-input-mode").on("change", toggleMode); toggleMode(); }, oneditsave: function () { try { RED.sidebar.show("info"); } catch (error) { } }, oneditcancel: function () { try { RED.sidebar.show("info"); } catch (error) { } } }) </script> <script type="text/html" data-template-name="knxUltimateMultiRouting"> <div class="form-row"> <b><span data-i18n="knxUltimateMultiRouting.title"></span></b>&nbsp&nbsp<span style="color:red" &nbsp &nbsp<i class="fa fa-youtube"></i></span>&nbsp<a target="_blank" href="https://youtu.be/fGT6BrkTkiM"><u><span data-i18n="common.youtube_sample"></span></u></a> <br/><br/> <label for="node-input-mode"><i class="fa fa-sliders"></i> <span data-i18n="knxUltimateMultiRouting.properties.mode"></span></label> <select id="node-input-mode"> <option value="gateway" data-i18n="knxUltimateMultiRouting.properties.modeGateway"></option> <option value="server" data-i18n="knxUltimateMultiRouting.properties.modeServer"></option> </select> </div> <div class="form-row knxmr-row-gateway"> <label for="node-input-server"><i class="fa fa-tag"></i> <span data-i18n="knxUltimateMultiRouting.properties.server"></span></label> <input type="text" id="node-input-server"> </div> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="knxUltimateMultiRouting.properties.name"></span></label> <input type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateMultiRouting.properties.name" style="flex:1 1 240px; min-width:240px; max-width:240px;"> </div> <div class="form-row"> <label for="node-input-outputtopic"><i class="fa fa-tasks"></i> <span data-i18n="knxUltimateMultiRouting.properties.outputtopic"></span></label> <input type="text" id="node-input-outputtopic" data-i18n="[placeholder]knxUltimateMultiRouting.properties.outputtopic"> </div> <div class="form-row"> <input type="checkbox" id="node-input-dropIfSameGateway" style="display:inline-block; width:auto; vertical-align:top;"> <label style="width:auto" for="node-input-dropIfSameGateway">&nbsp;&nbsp;<span data-i18n="knxUltimateMultiRouting.properties.dropIfSameGateway"></span></label> </div> <div class="form-row"> <input type="checkbox" id="node-input-respectRoutingCounter" style="display:inline-block; width:auto; vertical-align:top;"> <label style="width:auto" for="node-input-respectRoutingCounter">&nbsp;&nbsp;<span data-i18n="knxUltimateMultiRouting.properties.respectRoutingCounter"></span></label> </div> <div class="form-row"> <input type="checkbox" id="node-input-decrementRoutingCounter" style="display:inline-block; width:auto; vertical-align:top;"> <label style="width:auto" for="node-input-decrementRoutingCounter">&nbsp;&nbsp;<span data-i18n="knxUltimateMultiRouting.properties.decrementRoutingCounter"></span></label> </div> <div class="form-row knxmr-row-tunnel"> <hr/> <b><span data-i18n="knxUltimateMultiRouting.properties.tunnelTitle"></span></b> </div> <div class="form-row knxmr-row-tunnel"> <label for="node-input-tunnelListenHost"><i class="fa fa-globe"></i> <span data-i18n="knxUltimateMultiRouting.properties.tunnelListenHost"></span></label> <input type="text" id="node-input-tunnelListenHost" placeholder="0.0.0.0"> </div> <div class="form-row knxmr-row-tunnel"> <label for="node-input-tunnelListenPort"><i class="fa fa-plug"></i> <span data-i18n="knxUltimateMultiRouting.properties.tunnelListenPort"></span></label> <input type="text" id="node-input-tunnelListenPort" placeholder="3671"> </div> <div class="form-row knxmr-row-tunnel"> <label for="node-input-tunnelAdvertiseHost"><i class="fa fa-bullhorn"></i> <span data-i18n="knxUltimateMultiRouting.properties.tunnelAdvertiseHost"></span></label> <input type="text" id="node-input-tunnelAdvertiseHost" data-i18n="[placeholder]knxUltimateMultiRouting.properties.tunnelAdvertiseHostPlaceholder"> </div> <div class="form-row knxmr-row-tunnel"> <label for="node-input-tunnelAssignedIndividualAddress"><i class="fa fa-id-card-o"></i> <span data-i18n="knxUltimateMultiRouting.properties.tunnelAssignedIndividualAddress"></span></label> <input type="text" id="node-input-tunnelAssignedIndividualAddress" placeholder="15.15.255"> </div> <div class="form-row knxmr-row-tunnel"> <label for="node-input-tunnelGatewayId"><i class="fa fa-tag"></i> <span data-i18n="knxUltimateMultiRouting.properties.tunnelGatewayId"></span></label> <input type="text" id="node-input-tunnelGatewayId" data-i18n="[placeholder]knxUltimateMultiRouting.properties.tunnelGatewayIdPlaceholder"> </div> <div class="form-row knxmr-row-tunnel"> <label for="node-input-tunnelMaxSessions"><i class="fa fa-users"></i> <span data-i18n="knxUltimateMultiRouting.properties.tunnelMaxSessions"></span></label> <input type="text" id="node-input-tunnelMaxSessions" placeholder="1"> </div> </script>