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, KNX AI for diagnosticsand KNX routing between interfaces. Easy to use and highly configurable.
135 lines (128 loc) • 7.64 kB
HTML
<script type="text/javascript" src="resources/node-red-contrib-knx-ultimate/htmlUtils.js"></script>
<script type="text/javascript">
RED.nodes.registerType('knxUltimateRouterFilter', {
category: "KNX Ultimate Router",
color: 'lightblue',
defaults: {
name: { value: "KNX Router Filter", required: false },
allowWrite: { value: true },
allowResponse: { value: true },
allowRead: { value: true },
gaMode: { value: "off" },
gaPatterns: { value: "" },
srcMode: { value: "off" },
srcPatterns: { value: "" },
rewriteGA: { value: false },
gaRewriteRules: { value: "" },
rewriteSource: { value: false },
srcRewriteRules: { value: "" }
},
inputs: 1,
outputs: 2,
outputLabels: function (i) {
if (i === 0) return RED._('knxUltimateRouterFilter.outputs.passed');
return RED._('knxUltimateRouterFilter.outputs.dropped');
},
icon: "node-knx-icon.svg",
label: function () {
return (this.name || "KNX Router Filter");
},
paletteLabel: "KNX Router Filter",
oneditprepare: function () {
try { RED.sidebar.show("help"); } catch (error) { }
const toggleRewrite = () => {
if ($("#node-input-rewriteGA").is(":checked")) {
$("#knx-router-filter-ga-rewrite-row").show();
} else {
$("#knx-router-filter-ga-rewrite-row").hide();
}
if ($("#node-input-rewriteSource").is(":checked")) {
$("#knx-router-filter-src-rewrite-row").show();
} else {
$("#knx-router-filter-src-rewrite-row").hide();
}
};
$("#node-input-rewriteGA").on("change", toggleRewrite);
$("#node-input-rewriteSource").on("change", toggleRewrite);
toggleRewrite();
},
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="knxUltimateRouterFilter">
<div class="form-row">
<b><span data-i18n="knxUltimateRouterFilter.title"></span></b>  <span style="color:red"    <i class="fa fa-youtube"></i></span> <a
target="_blank" href="https://youtu.be/fGT6BrkTkiM"><u><span data-i18n="common.youtube_sample"></span></u></a>
<br/><br/>
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="knxUltimateRouterFilter.properties.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateRouterFilter.properties.name" style="flex:1 1 240px; min-width:240px; max-width:240px;">
</div>
<div class="form-row">
<b><span data-i18n="knxUltimateRouterFilter.sections.events"></span></b>
</div>
<div class="form-row">
<input type="checkbox" id="node-input-allowWrite" style="display:inline-block; width:auto; vertical-align:top;">
<label style="width:auto" for="node-input-allowWrite"> <span data-i18n="knxUltimateRouterFilter.properties.allowWrite"></span></label>
</div>
<div class="form-row">
<input type="checkbox" id="node-input-allowResponse" style="display:inline-block; width:auto; vertical-align:top;">
<label style="width:auto" for="node-input-allowResponse"> <span data-i18n="knxUltimateRouterFilter.properties.allowResponse"></span></label>
</div>
<div class="form-row">
<input type="checkbox" id="node-input-allowRead" style="display:inline-block; width:auto; vertical-align:top;">
<label style="width:auto" for="node-input-allowRead"> <span data-i18n="knxUltimateRouterFilter.properties.allowRead"></span></label>
</div>
<div class="form-row">
<b><span data-i18n="knxUltimateRouterFilter.sections.ga"></span></b>
</div>
<div class="form-row">
<label style="width:120px" for="node-input-gaMode"><span data-i18n="knxUltimateRouterFilter.properties.mode"></span></label>
<select style="width:calc(100% - 130px)" id="node-input-gaMode">
<option value="off" data-i18n="knxUltimateRouterFilter.selectlists.mode.off"></option>
<option value="allow" data-i18n="knxUltimateRouterFilter.selectlists.mode.allow"></option>
<option value="block" data-i18n="knxUltimateRouterFilter.selectlists.mode.block"></option>
</select>
</div>
<div class="form-row">
<label for="node-input-gaPatterns"><i class="fa fa-filter"></i> <span data-i18n="knxUltimateRouterFilter.properties.gaPatterns"></span></label>
<textarea style="width:100%; height:80px;" id="node-input-gaPatterns" data-i18n="[placeholder]knxUltimateRouterFilter.placeholder.gaPatterns"></textarea>
</div>
<div class="form-row">
<input type="checkbox" id="node-input-rewriteGA" style="display:inline-block; width:auto; vertical-align:top;">
<label style="width:auto" for="node-input-rewriteGA"> <span data-i18n="knxUltimateRouterFilter.properties.rewriteGA"></span></label>
</div>
<div class="form-row" id="knx-router-filter-ga-rewrite-row">
<label for="node-input-gaRewriteRules"><i class="fa fa-random"></i> <span data-i18n="knxUltimateRouterFilter.properties.gaRewriteRules"></span></label>
<textarea style="width:100%; height:90px;" id="node-input-gaRewriteRules" data-i18n="[placeholder]knxUltimateRouterFilter.placeholder.gaRewriteRules"></textarea>
</div>
<div class="form-row">
<b><span data-i18n="knxUltimateRouterFilter.sections.src"></span></b>
</div>
<div class="form-row">
<label style="width:120px" for="node-input-srcMode"><span data-i18n="knxUltimateRouterFilter.properties.mode"></span></label>
<select style="width:calc(100% - 130px)" id="node-input-srcMode">
<option value="off" data-i18n="knxUltimateRouterFilter.selectlists.mode.off"></option>
<option value="allow" data-i18n="knxUltimateRouterFilter.selectlists.mode.allow"></option>
<option value="block" data-i18n="knxUltimateRouterFilter.selectlists.mode.block"></option>
</select>
</div>
<div class="form-row">
<label for="node-input-srcPatterns"><i class="fa fa-filter"></i> <span data-i18n="knxUltimateRouterFilter.properties.srcPatterns"></span></label>
<textarea style="width:100%; height:80px;" id="node-input-srcPatterns" data-i18n="[placeholder]knxUltimateRouterFilter.placeholder.srcPatterns"></textarea>
</div>
<div class="form-row">
<input type="checkbox" id="node-input-rewriteSource" style="display:inline-block; width:auto; vertical-align:top;">
<label style="width:auto" for="node-input-rewriteSource"> <span data-i18n="knxUltimateRouterFilter.properties.rewriteSource"></span></label>
</div>
<div class="form-row" id="knx-router-filter-src-rewrite-row">
<label for="node-input-srcRewriteRules"><i class="fa fa-random"></i> <span data-i18n="knxUltimateRouterFilter.properties.srcRewriteRules"></span></label>
<textarea style="width:100%; height:90px;" id="node-input-srcRewriteRules" data-i18n="[placeholder]knxUltimateRouterFilter.placeholder.srcRewriteRules"></textarea>
</div>
</script>