node-red-contrib-knx-ultimate 2.1.12 → 2.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/nodes/hue-config.html +3 -3
- package/nodes/knxUltimate-config.html +1 -1
- package/nodes/knxUltimate.html +1 -1
- package/nodes/knxUltimateAlerter.html +1 -1
- package/nodes/knxUltimateGlobalContext.html +1 -1
- package/nodes/knxUltimateHueButton.html +1 -1
- package/nodes/knxUltimateHueLight.html +136 -117
- package/nodes/knxUltimateHueLight.js +7 -8
- package/nodes/knxUltimateHueLightSensor.html +1 -1
- package/nodes/knxUltimateHueMotion.html +1 -1
- package/nodes/knxUltimateHueTapDial.html +1 -1
- package/nodes/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/knxUltimateLoadControl.html +1 -1
- package/nodes/knxUltimateLogger.html +1 -1
- package/nodes/knxUltimateSceneController.html +1 -1
- package/nodes/knxUltimateViewer.html +1 -1
- package/nodes/knxUltimateWatchDog.html +1 -1
- package/nodes/locales/de-disabled/hue-config.html +1 -1
- package/nodes/locales/de-disabled/knxUltimate-config.html +1 -1
- package/nodes/locales/de-disabled/knxUltimate.html +1 -1
- package/nodes/locales/de-disabled/knxUltimateAlerter.html +1 -1
- package/nodes/locales/de-disabled/knxUltimateGlobalContext.html +1 -1
- package/nodes/locales/de-disabled/knxUltimateHueLight.html +1 -1
- package/nodes/locales/de-disabled/knxUltimateLoadControl.html +1 -1
- package/nodes/locales/de-disabled/knxUltimateLogger.html +1 -1
- package/nodes/locales/de-disabled/knxUltimateSceneController.html +1 -1
- package/nodes/locales/de-disabled/knxUltimateViewer.html +1 -1
- package/nodes/locales/de-disabled/knxUltimateWatchDog.html +1 -1
- package/nodes/locales/en-US/knxUltimateAlerter.html +1 -1
- package/nodes/locales/en-US/knxUltimateGlobalContext.html +1 -1
- package/nodes/locales/en-US/knxUltimateLoadControl.html +1 -1
- package/nodes/locales/en-US/knxUltimateLogger.html +1 -1
- package/nodes/locales/en-US/knxUltimateSceneController.html +1 -1
- package/nodes/locales/en-US/knxUltimateViewer.html +1 -1
- package/nodes/locales/en-US/knxUltimateWatchDog.html +1 -1
- package/nodes/locales/it-disabled/hue-config.html +1 -1
- package/nodes/locales/it-disabled/knxUltimate-config.html +1 -1
- package/nodes/locales/it-disabled/knxUltimate.html +1 -1
- package/nodes/locales/it-disabled/knxUltimateAlerter.html +1 -1
- package/nodes/locales/it-disabled/knxUltimateGlobalContext.html +1 -1
- package/nodes/locales/it-disabled/knxUltimateHueLight.html +1 -1
- package/nodes/locales/it-disabled/knxUltimateLoadControl.html +1 -1
- package/nodes/locales/it-disabled/knxUltimateLogger.html +1 -1
- package/nodes/locales/it-disabled/knxUltimateSceneController.html +1 -1
- package/nodes/locales/it-disabled/knxUltimateViewer.html +1 -1
- package/nodes/locales/it-disabled/knxUltimateWatchDog.html +1 -1
- package/nodes/locales/zh-CN-disabled/hue-config.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimate-config.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimate.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimateAlerter.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimateGlobalContext.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimateHueLight.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimateLoadControl.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimateLogger.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimateSceneController.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimateViewer.html +1 -1
- package/nodes/locales/zh-CN-disabled/knxUltimateWatchDog.html +1 -1
- package/nodes/utils/hueColorConverter.js +9 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
# CHANGELOG
|
|
8
8
|
|
|
9
|
+
<p>
|
|
10
|
+
<b>Version 2.1.13</b> - June 2023<br/>
|
|
11
|
+
- Hue Light node: fixed inversion in the color temp state.<br/>
|
|
12
|
+
- Hue Light node: switching on/off the light, now sets the DIM to 100%/0% as well.<br/>
|
|
13
|
+
</p>
|
|
9
14
|
<p>
|
|
10
15
|
<b>Version 2.1.12</b> - June 2023<br/>
|
|
11
16
|
- Hue Light node: added tunable white.<br/>
|
package/nodes/hue-config.html
CHANGED
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
</script>
|
|
83
83
|
|
|
84
84
|
|
|
85
|
-
<script type="text/
|
|
85
|
+
<script type="text/html" data-template-name="hue-config">
|
|
86
86
|
<div class="form-row">
|
|
87
87
|
<b><span data-i18n="hue-config.properties.title"></span></b>  <span style="color:red" data-i18n="[html]hue-config.properties.helplink"></span>
|
|
88
88
|
|
|
@@ -129,8 +129,8 @@
|
|
|
129
129
|
|
|
130
130
|
|
|
131
131
|
</script>
|
|
132
|
-
<script type="text/
|
|
133
|
-
<p> This node
|
|
132
|
+
<script type="text/html" data-help-name="hue-config">
|
|
133
|
+
<p> This node registers to the Hue Bridge.<br/>
|
|
134
134
|
|
|
135
135
|
Just click **Connect** button.
|
|
136
136
|
|
|
@@ -220,7 +220,7 @@
|
|
|
220
220
|
color: #459e00;
|
|
221
221
|
}
|
|
222
222
|
</style>
|
|
223
|
-
<script type="text/
|
|
223
|
+
<script type="text/html" data-template-name="knxUltimate-config">
|
|
224
224
|
<div class="form-row">
|
|
225
225
|
<b><span data-i18n="knxUltimate-config.properties.title"></span></b>  <span style="color:red" data-i18n="[html]knxUltimate-config.properties.helplink"></span>
|
|
226
226
|
<br/><br/>
|
package/nodes/knxUltimate.html
CHANGED
|
@@ -361,7 +361,7 @@
|
|
|
361
361
|
|
|
362
362
|
</script>
|
|
363
363
|
|
|
364
|
-
<script type="text/
|
|
364
|
+
<script type="text/html" data-template-name="knxUltimate">
|
|
365
365
|
|
|
366
366
|
<!-- Setted by oneditprepare and used in oneditsave to warn user if no CSV file has been loaded -->
|
|
367
367
|
<input id="isETSFileLoaded" name="isETSFileLoaded" type="hidden" value="false" />
|
|
@@ -80,6 +80,8 @@
|
|
|
80
80
|
var oNodeServer = RED.nodes.node($("#node-input-server").val()); // Store the config-node
|
|
81
81
|
var oNodeServerHue = RED.nodes.node($("#node-input-serverHue").val()); // Store the config-node
|
|
82
82
|
|
|
83
|
+
$("#tabs").tabs();
|
|
84
|
+
|
|
83
85
|
// 19/02/2020 Used to get the server sooner als deploy.
|
|
84
86
|
$("#node-input-server").change(function () {
|
|
85
87
|
try {
|
|
@@ -338,7 +340,7 @@
|
|
|
338
340
|
if (dpt.value === "3.007") {
|
|
339
341
|
$("#node-input-dptLightHSV").append($("<option></option>")
|
|
340
342
|
.attr("value", dpt.value)
|
|
341
|
-
.text(dpt.text))
|
|
343
|
+
.text(dpt.text))
|
|
342
344
|
}
|
|
343
345
|
});
|
|
344
346
|
|
|
@@ -647,7 +649,7 @@
|
|
|
647
649
|
</script>
|
|
648
650
|
<script src="https://kit.fontawesome.com/11f26b4500.js" crossorigin="anonymous"></script>
|
|
649
651
|
|
|
650
|
-
<script type="text/
|
|
652
|
+
<script type="text/html" data-template-name="knxUltimateHueLight">
|
|
651
653
|
|
|
652
654
|
|
|
653
655
|
<div class="form-row">
|
|
@@ -690,154 +692,171 @@
|
|
|
690
692
|
|
|
691
693
|
<br/>
|
|
692
694
|
|
|
693
|
-
<p>
|
|
694
|
-
<b>KNX LINK</b>
|
|
695
|
-
</p>
|
|
696
|
-
<div class="form-row">
|
|
697
|
-
<label for="node-input-nameLightSwitch" style="width:100px;"><i class="fa fa-play-circle-o"></i> <span data-i18n="knxUltimateHueLight.node-input-nameLightSwitch"></span></label>
|
|
698
|
-
|
|
699
|
-
<label for="node-input-GALightSwitch" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightSwitch"></span></label>
|
|
700
|
-
<input type="text" id="node-input-GALightSwitch" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
701
|
-
|
|
702
|
-
<label for="node-input-dptLightSwitch" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
703
|
-
<select id="node-input-dptLightSwitch" style="width:140px;"></select>
|
|
704
|
-
|
|
705
|
-
<label for="node-input-nameLightSwitch" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
706
|
-
<input type="text" id="node-input-nameLightSwitch" style="width:200px;margin-left: 5px; text-align: left;">
|
|
707
|
-
</div>
|
|
708
|
-
<div class="form-row">
|
|
709
|
-
<label for="node-input-nameLightState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Switch Status</label>
|
|
710
|
-
|
|
711
|
-
<label for="node-input-GALightState" style="width:20px;">GA</label>
|
|
712
|
-
<input type="text" id="node-input-GALightState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
713
|
-
|
|
714
|
-
<label for="node-input-dptLightState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
715
|
-
<select id="node-input-dptLightState" style="width:140px;"></select>
|
|
716
|
-
|
|
717
|
-
<label for="node-input-nameLightState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
718
|
-
<input type="text" id="node-input-nameLightState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
719
|
-
</div>
|
|
720
695
|
|
|
721
|
-
|
|
696
|
+
<div id="tabs">
|
|
697
|
+
<ul>
|
|
698
|
+
<li><a href="#tabs-1">Switching</a></li>
|
|
699
|
+
<li><a href="#tabs-2">Dimming/Brightness</a></li>
|
|
700
|
+
<li><a href="#tabs-3">Tunable white</a></li>
|
|
701
|
+
<li><a href="#tabs-4">Colors</a></li>
|
|
702
|
+
<li><a href="#tabs-5">Effects</a></li>
|
|
703
|
+
</ul>
|
|
704
|
+
<div id="tabs-1">
|
|
705
|
+
<p>
|
|
706
|
+
<div class="form-row">
|
|
707
|
+
<label for="node-input-nameLightSwitch" style="width:100px;"><i class="fa fa-play-circle-o"></i> <span data-i18n="knxUltimateHueLight.node-input-nameLightSwitch"></span></label>
|
|
708
|
+
|
|
709
|
+
<label for="node-input-GALightSwitch" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightSwitch"></span></label>
|
|
710
|
+
<input type="text" id="node-input-GALightSwitch" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
711
|
+
|
|
712
|
+
<label for="node-input-dptLightSwitch" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
713
|
+
<select id="node-input-dptLightSwitch" style="width:140px;"></select>
|
|
714
|
+
|
|
715
|
+
<label for="node-input-nameLightSwitch" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
716
|
+
<input type="text" id="node-input-nameLightSwitch" style="width:200px;margin-left: 5px; text-align: left;">
|
|
717
|
+
</div>
|
|
718
|
+
<div class="form-row">
|
|
719
|
+
<label for="node-input-nameLightState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Switch Status</label>
|
|
720
|
+
|
|
721
|
+
<label for="node-input-GALightState" style="width:20px;">GA</label>
|
|
722
|
+
<input type="text" id="node-input-GALightState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
723
|
+
|
|
724
|
+
<label for="node-input-dptLightState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
725
|
+
<select id="node-input-dptLightState" style="width:140px;"></select>
|
|
726
|
+
|
|
727
|
+
<label for="node-input-nameLightState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
728
|
+
<input type="text" id="node-input-nameLightState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
729
|
+
</div>
|
|
730
|
+
</p>
|
|
731
|
+
</div>
|
|
732
|
+
<div id="tabs-2">
|
|
733
|
+
<p>
|
|
722
734
|
<div class="form-row">
|
|
723
735
|
<label for="node-input-nameLightDIM" style="width:100px;"><i class="fa fa-play-circle-o"></i> Dimming</label>
|
|
724
736
|
|
|
725
737
|
<label for="node-input-GALightDIM" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
726
738
|
<input type="text" id="node-input-GALightDIM" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
727
|
-
|
|
739
|
+
|
|
728
740
|
<label for="node-input-dptLightDIM" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
729
741
|
<select id="node-input-dptLightDIM" style="width:140px;"></select>
|
|
730
|
-
|
|
742
|
+
|
|
731
743
|
<label for="node-input-nameLightDIM" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
732
744
|
<input type="text" id="node-input-nameLightDIM" style="width:200px;margin-left: 5px; text-align: left;">
|
|
733
745
|
</div>
|
|
734
|
-
|
|
735
|
-
<div class="form-row">
|
|
736
|
-
<label for="node-input-nameLightColor" style="width:100px;"><i class="fa fa-play-circle-o"></i> Color</label>
|
|
737
|
-
|
|
738
|
-
<label for="node-input-GALightColor" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
739
|
-
<input type="text" id="node-input-GALightColor" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
740
|
-
|
|
741
|
-
<label for="node-input-dptLightColor" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
742
|
-
<select id="node-input-dptLightColor" style="width:140px;"></select>
|
|
743
|
-
|
|
744
|
-
<label for="node-input-nameLightColor" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
745
|
-
<input type="text" id="node-input-nameLightColor" style="width:200px;margin-left: 5px; text-align: left;">
|
|
746
|
-
</div>
|
|
747
|
-
<div class="form-row">
|
|
748
|
-
<label for="node-input-nameLightColorState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Color Status</label>
|
|
749
|
-
|
|
750
|
-
<label for="node-input-GALightColorState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
751
|
-
<input type="text" id="node-input-GALightColorState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
752
|
-
|
|
753
|
-
<label for="node-input-dptLightColorState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
754
|
-
<select id="node-input-dptLightColorState" style="width:140px;"></select>
|
|
755
|
-
|
|
756
|
-
<label for="node-input-nameLightColorState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
757
|
-
<input type="text" id="node-input-nameLightColorState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
758
|
-
</div>
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
<div class="form-row">
|
|
762
|
-
<label for="node-input-nameLightHSV" style="width:100px;"><i class="fa fa-play-circle-o"></i> Tunable white</label>
|
|
763
|
-
|
|
764
|
-
<label for="node-input-GALightHSV" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
765
|
-
<input type="text" id="node-input-GALightHSV" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
766
|
-
|
|
767
|
-
<label for="node-input-dptLightHSV" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
768
|
-
<select id="node-input-dptLightHSV" style="width:140px;"></select>
|
|
769
|
-
|
|
770
|
-
<label for="node-input-nameLightHSV" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
771
|
-
<input type="text" id="node-input-nameLightHSV" style="width:200px;margin-left: 5px; text-align: left;">
|
|
772
|
-
</div>
|
|
773
|
-
<div class="form-row">
|
|
774
|
-
<label for="node-input-nameLightHSVState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Tunable white Status</label>
|
|
775
|
-
|
|
776
|
-
<label for="node-input-GALightHSVState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
777
|
-
<input type="text" id="node-input-GALightHSVState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
778
|
-
|
|
779
|
-
<label for="node-input-dptLightHSVState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
780
|
-
<select id="node-input-dptLightHSVState" style="width:140px;"></select>
|
|
781
|
-
|
|
782
|
-
<label for="node-input-nameLightHSVState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
783
|
-
<input type="text" id="node-input-nameLightHSVState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
784
|
-
</div>
|
|
785
|
-
|
|
786
|
-
|
|
787
746
|
<div class="form-row">
|
|
788
747
|
<label for="node-input-nameLightBrightness" style="width:100px;"><i class="fa fa-play-circle-o"></i> Brightness</label>
|
|
789
748
|
|
|
790
749
|
<label for="node-input-GALightBrightness" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
791
750
|
<input type="text" id="node-input-GALightBrightness" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
792
|
-
|
|
751
|
+
|
|
793
752
|
<label for="node-input-dptLightBrightness" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
794
753
|
<select id="node-input-dptLightBrightness" style="width:140px;"></select>
|
|
795
|
-
|
|
754
|
+
|
|
796
755
|
<label for="node-input-nameLightBrightness" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
797
756
|
<input type="text" id="node-input-nameLightBrightness" style="width:200px;margin-left: 5px; text-align: left;">
|
|
798
757
|
</div>
|
|
799
|
-
|
|
758
|
+
|
|
800
759
|
<div class="form-row">
|
|
801
760
|
<label for="node-input-nameLightBrightnessState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Brightness Status</label>
|
|
802
761
|
|
|
803
762
|
<label for="node-input-GALightBrightnessState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
804
763
|
<input type="text" id="node-input-GALightBrightnessState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
805
|
-
|
|
764
|
+
|
|
806
765
|
<label for="node-input-dptLightBrightnessState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
807
766
|
<select id="node-input-dptLightBrightnessState" style="width:140px;"></select>
|
|
808
|
-
|
|
767
|
+
|
|
809
768
|
<label for="node-input-nameLightBrightnessState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
810
769
|
<input type="text" id="node-input-nameLightBrightnessState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
811
770
|
</div>
|
|
812
|
-
|
|
813
|
-
|
|
771
|
+
</p>
|
|
772
|
+
</div>
|
|
773
|
+
<div id="tabs-3">
|
|
774
|
+
<p>
|
|
814
775
|
<div class="form-row">
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
776
|
+
<label for="node-input-nameLightHSV" style="width:100px;"><i class="fa fa-play-circle-o"></i> Tunable white</label>
|
|
777
|
+
|
|
778
|
+
<label for="node-input-GALightHSV" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
779
|
+
<input type="text" id="node-input-GALightHSV" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
780
|
+
|
|
781
|
+
<label for="node-input-dptLightHSV" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
782
|
+
<select id="node-input-dptLightHSV" style="width:140px;"></select>
|
|
783
|
+
|
|
784
|
+
<label for="node-input-nameLightHSV" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
785
|
+
<input type="text" id="node-input-nameLightHSV" style="width:200px;margin-left: 5px; text-align: left;">
|
|
786
|
+
</div>
|
|
827
787
|
<div class="form-row">
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
788
|
+
<label for="node-input-nameLightHSVState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Tunable white Status</label>
|
|
789
|
+
|
|
790
|
+
<label for="node-input-GALightHSVState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
791
|
+
<input type="text" id="node-input-GALightHSVState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
792
|
+
|
|
793
|
+
<label for="node-input-dptLightHSVState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
794
|
+
<select id="node-input-dptLightHSVState" style="width:140px;"></select>
|
|
795
|
+
|
|
796
|
+
<label for="node-input-nameLightHSVState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
797
|
+
<input type="text" id="node-input-nameLightHSVState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
838
798
|
</div>
|
|
839
|
-
|
|
840
|
-
|
|
799
|
+
</p>
|
|
800
|
+
</div>
|
|
801
|
+
<div id="tabs-4">
|
|
802
|
+
<p>
|
|
803
|
+
<div class="form-row">
|
|
804
|
+
<label for="node-input-nameLightColor" style="width:100px;"><i class="fa fa-play-circle-o"></i> Color</label>
|
|
805
|
+
|
|
806
|
+
<label for="node-input-GALightColor" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
807
|
+
<input type="text" id="node-input-GALightColor" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
808
|
+
|
|
809
|
+
<label for="node-input-dptLightColor" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
810
|
+
<select id="node-input-dptLightColor" style="width:140px;"></select>
|
|
811
|
+
|
|
812
|
+
<label for="node-input-nameLightColor" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
813
|
+
<input type="text" id="node-input-nameLightColor" style="width:200px;margin-left: 5px; text-align: left;">
|
|
814
|
+
</div>
|
|
815
|
+
<div class="form-row">
|
|
816
|
+
<label for="node-input-nameLightColorState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Color Status</label>
|
|
817
|
+
|
|
818
|
+
<label for="node-input-GALightColorState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
819
|
+
<input type="text" id="node-input-GALightColorState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
820
|
+
|
|
821
|
+
<label for="node-input-dptLightColorState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
822
|
+
<select id="node-input-dptLightColorState" style="width:140px;"></select>
|
|
823
|
+
|
|
824
|
+
<label for="node-input-nameLightColorState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
825
|
+
<input type="text" id="node-input-nameLightColorState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
826
|
+
</div>
|
|
827
|
+
</p>
|
|
828
|
+
</div>
|
|
829
|
+
|
|
830
|
+
<div id="tabs-5">
|
|
831
|
+
<p>
|
|
832
|
+
<div class="form-row">
|
|
833
|
+
<label for="node-input-nameLightBlink" style="width:100px;"><i class="fa fa-play-circle-o"></i> Blink</label>
|
|
834
|
+
|
|
835
|
+
<label for="node-input-GALightBlink" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
836
|
+
<input type="text" id="node-input-GALightBlink" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
837
|
+
|
|
838
|
+
<label for="node-input-dptLightBlink" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
839
|
+
<select id="node-input-dptLightBlink" style="width:140px;"></select>
|
|
840
|
+
|
|
841
|
+
<label for="node-input-nameLightBlink" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
842
|
+
<input type="text" id="node-input-nameLightBlink" style="width:200px;margin-left: 5px; text-align: left;">
|
|
843
|
+
</div>
|
|
844
|
+
|
|
845
|
+
<div class="form-row">
|
|
846
|
+
<label for="node-input-nameLightColorCycle" style="width:100px;"><i class="fa fa-play-circle-o"></i> Color Cycle</label>
|
|
847
|
+
|
|
848
|
+
<label for="node-input-GALightColorCycle" style="width:20px;">GA</label>
|
|
849
|
+
<input type="text" id="node-input-GALightColorCycle" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
850
|
+
|
|
851
|
+
<label for="node-input-dptLightColorCycle" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
852
|
+
<select id="node-input-dptLightColorCycle" style="width:140px;"></select>
|
|
853
|
+
|
|
854
|
+
<label for="node-input-nameLightColorCycle" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
855
|
+
<input type="text" id="node-input-nameLightColorCycle" style="width:200px;margin-left: 5px; text-align: left;">
|
|
856
|
+
</div>
|
|
857
|
+
</p>
|
|
858
|
+
</div>
|
|
859
|
+
|
|
841
860
|
<br/>
|
|
842
861
|
</script>
|
|
843
862
|
|
|
@@ -854,7 +873,7 @@
|
|
|
854
873
|
|
|
855
874
|
<br/>
|
|
856
875
|
|
|
857
|
-
**
|
|
876
|
+
**OPTIONS**
|
|
858
877
|
|
|
859
878
|
Here you can choose the KNX addresses to be linked to the avaiable HUE light commands/states.<br/>
|
|
860
879
|
Start typing in the GA field, the name or group address of your KNX device, the avaiable devices start showing up while you're typing.
|
|
@@ -45,7 +45,7 @@ module.exports = function (RED) {
|
|
|
45
45
|
switch (msg.knx.destination) {
|
|
46
46
|
case config.GALightSwitch:
|
|
47
47
|
msg.payload = dptlib.fromBuffer(msg.knx.rawValue, dptlib.resolve(config.dptLightSwitch))
|
|
48
|
-
state = msg.payload === true ? { on: { on: true } } : { on: { on: false } }
|
|
48
|
+
state = msg.payload === true ? { on: { on: true },dimming: { brightness: 100 } } : { on: { on: false }, dimming: { brightness: 0 }}
|
|
49
49
|
node.serverHue.hueManager.writeHueQueueAdd(config.hueDevice, state, 'setLight')
|
|
50
50
|
break
|
|
51
51
|
case config.GALightDIM:
|
|
@@ -53,8 +53,7 @@ module.exports = function (RED) {
|
|
|
53
53
|
// { decr_incr: 0, data: 1 } : Start decreasing until { decr_incr: 0, data: 0 } is received.
|
|
54
54
|
msg.payload = dptlib.fromBuffer(msg.knx.rawValue, dptlib.resolve(config.dptLightDIM))
|
|
55
55
|
if (msg.payload.data > 0) {
|
|
56
|
-
let dimDirection = 'down'
|
|
57
|
-
dimDirection = msg.payload.decr_incr === 1 ? 'up' : 'down'
|
|
56
|
+
let dimDirection = msg.payload.decr_incr === 1 ? 'up' : 'down'
|
|
58
57
|
node.startDimStopper(dimDirection)
|
|
59
58
|
} else {
|
|
60
59
|
node.startDimStopper('stop')
|
|
@@ -67,8 +66,7 @@ module.exports = function (RED) {
|
|
|
67
66
|
// { decr_incr: 0, data: 1 } : Start decreasing until { decr_incr: 0, data: 0 } is received.
|
|
68
67
|
msg.payload = dptlib.fromBuffer(msg.knx.rawValue, dptlib.resolve(config.dptLightHSV))
|
|
69
68
|
if (msg.payload.data > 0) {
|
|
70
|
-
let dimDirectionTunableWhite = 'down'
|
|
71
|
-
dimDirectionTunableWhite = msg.payload.decr_incr === 1 ? 'up' : 'down'
|
|
69
|
+
let dimDirectionTunableWhite = msg.payload.decr_incr === 1 ? 'up' : 'down'
|
|
72
70
|
node.startDimStopperTunableWhite(dimDirectionTunableWhite)
|
|
73
71
|
} else {
|
|
74
72
|
node.startDimStopperTunableWhite('stop')
|
|
@@ -203,7 +201,7 @@ module.exports = function (RED) {
|
|
|
203
201
|
knxMsgPayload.dpt = config.dptLightBrightnessState
|
|
204
202
|
knxMsgPayload.payload = _event.on.on === true ? 100 : 0
|
|
205
203
|
// Send to KNX bus
|
|
206
|
-
if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) node.server.writeQueueAdd({ grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id })
|
|
204
|
+
//if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) node.server.writeQueueAdd({ grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id })
|
|
207
205
|
}
|
|
208
206
|
if (_event.hasOwnProperty('color')) {
|
|
209
207
|
knxMsgPayload.topic = config.GALightColorState
|
|
@@ -229,9 +227,10 @@ module.exports = function (RED) {
|
|
|
229
227
|
knxMsgPayload.topic = config.GALightHSVState
|
|
230
228
|
knxMsgPayload.dpt = config.dptLightHSVState
|
|
231
229
|
if (config.dptLightHSVState === '5.001') {
|
|
230
|
+
const retPercent = hueColorConverter.ColorConverter.scale(_event.color_temperature.mirek, [153, 500], [0, 100])
|
|
232
231
|
//NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) + NewMin
|
|
233
|
-
let NewValue = (((_event.color_temperature.mirek - 153) * (100 - 0)) / (500 - 153)) + 0
|
|
234
|
-
knxMsgPayload.payload =
|
|
232
|
+
//let NewValue = 100 - ((((_event.color_temperature.mirek - 153) * (100 - 0)) / (500 - 153)) + 0)
|
|
233
|
+
knxMsgPayload.payload = 100 - retPercent
|
|
235
234
|
}
|
|
236
235
|
// Send to KNX bus
|
|
237
236
|
if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) node.server.writeQueueAdd({ grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id })
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
</script>
|
|
39
39
|
|
|
40
|
-
<script type="text/
|
|
40
|
+
<script type="text/html" data-template-name="knxUltimateLogger">
|
|
41
41
|
<div class="form-row">
|
|
42
42
|
<b><span data-i18n="knxUltimateLogger.title"></span></b>  <span style="color:red" data-i18n="[html]knxUltimateLogger.helplink"></span>
|
|
43
43
|
<br/><br/>
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
</script>
|
|
51
51
|
|
|
52
|
-
<script type="text/
|
|
52
|
+
<script type="text/html" data-template-name="knxUltimateWatchDog">
|
|
53
53
|
<div class="form-row">
|
|
54
54
|
<b><span data-i18n="knxUltimateWatchDog.title"></span></b>  <span style="color:red" data-i18n="[html]knxUltimateWatchDog.helplink"></span>
|
|
55
55
|
<br/><br/>
|
|
@@ -233,5 +233,14 @@ class ColorConverter {
|
|
|
233
233
|
blue: Math.floor(b * 255)
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
|
+
|
|
237
|
+
// Linear interpolation of input y given starting and ending ranges
|
|
238
|
+
static scale(y, range1 = [0,100], range2 = [0,255]) {
|
|
239
|
+
const [xMin, xMax] = range2;
|
|
240
|
+
const [yMin, yMax] = range1;
|
|
241
|
+
const percent = (y - yMin) / (yMax - yMin);
|
|
242
|
+
const ans = percent * (xMax - xMin) + xMin;
|
|
243
|
+
return Math.round(ans);
|
|
244
|
+
}
|
|
236
245
|
}
|
|
237
246
|
exports.ColorConverter = ColorConverter
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"engines": {
|
|
4
4
|
"node": ">=16.0.0"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.1.
|
|
6
|
+
"version": "2.1.13",
|
|
7
7
|
"description": "Control your KNX intallation via Node-Red! Single Node KNX IN/OUT with optional ETS group address importer. Easy to use and highly configurable. With integrated Philips HUE devices handling.",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"mkdirp": "1.0.4",
|