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.
Files changed (60) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/nodes/hue-config.html +3 -3
  3. package/nodes/knxUltimate-config.html +1 -1
  4. package/nodes/knxUltimate.html +1 -1
  5. package/nodes/knxUltimateAlerter.html +1 -1
  6. package/nodes/knxUltimateGlobalContext.html +1 -1
  7. package/nodes/knxUltimateHueButton.html +1 -1
  8. package/nodes/knxUltimateHueLight.html +136 -117
  9. package/nodes/knxUltimateHueLight.js +7 -8
  10. package/nodes/knxUltimateHueLightSensor.html +1 -1
  11. package/nodes/knxUltimateHueMotion.html +1 -1
  12. package/nodes/knxUltimateHueTapDial.html +1 -1
  13. package/nodes/knxUltimateHueTemperatureSensor.html +1 -1
  14. package/nodes/knxUltimateLoadControl.html +1 -1
  15. package/nodes/knxUltimateLogger.html +1 -1
  16. package/nodes/knxUltimateSceneController.html +1 -1
  17. package/nodes/knxUltimateViewer.html +1 -1
  18. package/nodes/knxUltimateWatchDog.html +1 -1
  19. package/nodes/locales/de-disabled/hue-config.html +1 -1
  20. package/nodes/locales/de-disabled/knxUltimate-config.html +1 -1
  21. package/nodes/locales/de-disabled/knxUltimate.html +1 -1
  22. package/nodes/locales/de-disabled/knxUltimateAlerter.html +1 -1
  23. package/nodes/locales/de-disabled/knxUltimateGlobalContext.html +1 -1
  24. package/nodes/locales/de-disabled/knxUltimateHueLight.html +1 -1
  25. package/nodes/locales/de-disabled/knxUltimateLoadControl.html +1 -1
  26. package/nodes/locales/de-disabled/knxUltimateLogger.html +1 -1
  27. package/nodes/locales/de-disabled/knxUltimateSceneController.html +1 -1
  28. package/nodes/locales/de-disabled/knxUltimateViewer.html +1 -1
  29. package/nodes/locales/de-disabled/knxUltimateWatchDog.html +1 -1
  30. package/nodes/locales/en-US/knxUltimateAlerter.html +1 -1
  31. package/nodes/locales/en-US/knxUltimateGlobalContext.html +1 -1
  32. package/nodes/locales/en-US/knxUltimateLoadControl.html +1 -1
  33. package/nodes/locales/en-US/knxUltimateLogger.html +1 -1
  34. package/nodes/locales/en-US/knxUltimateSceneController.html +1 -1
  35. package/nodes/locales/en-US/knxUltimateViewer.html +1 -1
  36. package/nodes/locales/en-US/knxUltimateWatchDog.html +1 -1
  37. package/nodes/locales/it-disabled/hue-config.html +1 -1
  38. package/nodes/locales/it-disabled/knxUltimate-config.html +1 -1
  39. package/nodes/locales/it-disabled/knxUltimate.html +1 -1
  40. package/nodes/locales/it-disabled/knxUltimateAlerter.html +1 -1
  41. package/nodes/locales/it-disabled/knxUltimateGlobalContext.html +1 -1
  42. package/nodes/locales/it-disabled/knxUltimateHueLight.html +1 -1
  43. package/nodes/locales/it-disabled/knxUltimateLoadControl.html +1 -1
  44. package/nodes/locales/it-disabled/knxUltimateLogger.html +1 -1
  45. package/nodes/locales/it-disabled/knxUltimateSceneController.html +1 -1
  46. package/nodes/locales/it-disabled/knxUltimateViewer.html +1 -1
  47. package/nodes/locales/it-disabled/knxUltimateWatchDog.html +1 -1
  48. package/nodes/locales/zh-CN-disabled/hue-config.html +1 -1
  49. package/nodes/locales/zh-CN-disabled/knxUltimate-config.html +1 -1
  50. package/nodes/locales/zh-CN-disabled/knxUltimate.html +1 -1
  51. package/nodes/locales/zh-CN-disabled/knxUltimateAlerter.html +1 -1
  52. package/nodes/locales/zh-CN-disabled/knxUltimateGlobalContext.html +1 -1
  53. package/nodes/locales/zh-CN-disabled/knxUltimateHueLight.html +1 -1
  54. package/nodes/locales/zh-CN-disabled/knxUltimateLoadControl.html +1 -1
  55. package/nodes/locales/zh-CN-disabled/knxUltimateLogger.html +1 -1
  56. package/nodes/locales/zh-CN-disabled/knxUltimateSceneController.html +1 -1
  57. package/nodes/locales/zh-CN-disabled/knxUltimateViewer.html +1 -1
  58. package/nodes/locales/zh-CN-disabled/knxUltimateWatchDog.html +1 -1
  59. package/nodes/utils/hueColorConverter.js +9 -0
  60. 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/>
@@ -82,7 +82,7 @@
82
82
  </script>
83
83
 
84
84
 
85
- <script type="text/x-red" data-template-name="hue-config">
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>&nbsp&nbsp<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/x-red" data-help-name="hue-config">
133
- <p> This node registes to the Hue Bridge.<br/>
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/x-red" data-template-name="knxUltimate-config">
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>&nbsp&nbsp<span style="color:red" data-i18n="[html]knxUltimate-config.properties.helplink"></span>
226
226
  <br/><br/>
@@ -361,7 +361,7 @@
361
361
 
362
362
  </script>
363
363
 
364
- <script type="text/x-red" data-template-name="knxUltimate">
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" />
@@ -176,7 +176,7 @@
176
176
 
177
177
  </script>
178
178
 
179
- <script type="text/x-red" data-template-name="knxUltimateAlerter">
179
+ <script type="text/html" data-template-name="knxUltimateAlerter">
180
180
 
181
181
 
182
182
  <div class="form-row">
@@ -46,7 +46,7 @@
46
46
 
47
47
  </script>
48
48
 
49
- <script type="text/x-red" data-template-name="knxUltimateGlobalContext">
49
+ <script type="text/html" data-template-name="knxUltimateGlobalContext">
50
50
 
51
51
 
52
52
  <div class="form-row">
@@ -301,7 +301,7 @@
301
301
 
302
302
  </script>
303
303
 
304
- <script type="text/x-red" data-template-name="knxUltimateHueButton">
304
+ <script type="text/html" data-template-name="knxUltimateHueButton">
305
305
 
306
306
 
307
307
  <div class="form-row">
@@ -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/x-red" data-template-name="knxUltimateHueLight">
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>&nbspDimming</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>&nbspColor</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>&nbspBrightness</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
- <label for="node-input-nameLightBlink" style="width:100px;"><i class="fa fa-play-circle-o"></i> Blink</label>
816
-
817
- <label for="node-input-GALightBlink" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
818
- <input type="text" id="node-input-GALightBlink" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
819
-
820
- <label for="node-input-dptLightBlink" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
821
- <select id="node-input-dptLightBlink" style="width:140px;"></select>
822
-
823
- <label for="node-input-nameLightBlink" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
824
- <input type="text" id="node-input-nameLightBlink" style="width:200px;margin-left: 5px; text-align: left;">
825
- </div>
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
- <label for="node-input-nameLightColorCycle" style="width:100px;"><i class="fa fa-play-circle-o"></i> Color Cycle</label>
829
-
830
- <label for="node-input-GALightColorCycle" style="width:20px;">GA</label>
831
- <input type="text" id="node-input-GALightColorCycle" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
832
-
833
- <label for="node-input-dptLightColorCycle" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
834
- <select id="node-input-dptLightColorCycle" style="width:140px;"></select>
835
-
836
- <label for="node-input-nameLightColorCycle" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
837
- <input type="text" id="node-input-nameLightColorCycle" style="width:200px;margin-left: 5px; text-align: left;">
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
- <br/>
840
- <br/>
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>&nbspColor</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
- **KNX LINK**
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 = NewValue
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 })
@@ -153,7 +153,7 @@
153
153
 
154
154
  </script>
155
155
 
156
- <script type="text/x-red" data-template-name="knxUltimateHueLightSensor">
156
+ <script type="text/html" data-template-name="knxUltimateHueLightSensor">
157
157
 
158
158
 
159
159
  <div class="form-row">
@@ -153,7 +153,7 @@
153
153
 
154
154
  </script>
155
155
 
156
- <script type="text/x-red" data-template-name="knxUltimateHueMotion">
156
+ <script type="text/html" data-template-name="knxUltimateHueMotion">
157
157
 
158
158
 
159
159
  <div class="form-row">
@@ -155,7 +155,7 @@
155
155
 
156
156
  </script>
157
157
 
158
- <script type="text/x-red" data-template-name="knxUltimateHueTapDial">
158
+ <script type="text/html" data-template-name="knxUltimateHueTapDial">
159
159
 
160
160
 
161
161
  <div class="form-row">
@@ -153,7 +153,7 @@
153
153
 
154
154
  </script>
155
155
 
156
- <script type="text/x-red" data-template-name="knxUltimateHueTemperatureSensor">
156
+ <script type="text/html" data-template-name="knxUltimateHueTemperatureSensor">
157
157
 
158
158
 
159
159
  <div class="form-row">
@@ -170,7 +170,7 @@
170
170
 
171
171
  </script>
172
172
 
173
- <script type="text/x-red" data-template-name="knxUltimateLoadControl">
173
+ <script type="text/html" data-template-name="knxUltimateLoadControl">
174
174
 
175
175
 
176
176
  <div class="form-row">
@@ -37,7 +37,7 @@
37
37
 
38
38
  </script>
39
39
 
40
- <script type="text/x-red" data-template-name="knxUltimateLogger">
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>&nbsp&nbsp<span style="color:red" data-i18n="[html]knxUltimateLogger.helplink"></span>
43
43
  <br/><br/>
@@ -424,7 +424,7 @@
424
424
 
425
425
  </script>
426
426
 
427
- <script type="text/x-red" data-template-name="knxUltimateSceneController">
427
+ <script type="text/html" data-template-name="knxUltimateSceneController">
428
428
 
429
429
 
430
430
  <div class="form-row">
@@ -55,7 +55,7 @@
55
55
 
56
56
  </script>
57
57
 
58
- <script type="text/x-red" data-template-name="knxUltimateViewer">
58
+ <script type="text/html" data-template-name="knxUltimateViewer">
59
59
 
60
60
 
61
61
  <div class="form-row">
@@ -49,7 +49,7 @@
49
49
 
50
50
  </script>
51
51
 
52
- <script type="text/x-red" data-template-name="knxUltimateWatchDog">
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>&nbsp&nbsp<span style="color:red" data-i18n="[html]knxUltimateWatchDog.helplink"></span>
55
55
  <br/><br/>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="hue-config">
1
+ <script type="text/html" data-help-name="hue-config">
2
2
  <h1>KNX Ultimate - HUE config node</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Konfiguration node</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate">
1
+ <script type="text/html" data-help-name="knxUltimate">
2
2
  <h1>KNX Ultimate</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateAlerter">
1
+ <script type="text/html" data-help-name="knxUltimateAlerter">
2
2
  <h1>KNX Ultimate - Alerter</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Global Context Node</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateHueLight">
1
+ <script type="text/html" data-help-name="knxUltimateHueLight">
2
2
  <h1>KNX Ultimate - Nodo HUE</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateLoadControl">
1
+ <script type="text/html" data-help-name="knxUltimateLoadControl">
2
2
  <h1>KNX Ultimate - Load Control</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateLogger">
1
+ <script type="text/html" data-help-name="knxUltimateLogger">
2
2
  <h1>KNX Logger Node</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateSceneController">
1
+ <script type="text/html" data-help-name="knxUltimateSceneController">
2
2
  <h1>KNX Ultimate - Szene Controller</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Nodo Global Context</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateWatchDog">
1
+ <script type="text/html" data-help-name="knxUltimateWatchDog">
2
2
  <h1>KNX Watchdog Node</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateAlerter">
1
+ <script type="text/html" data-help-name="knxUltimateAlerter">
2
2
  <h1>KNX Ultimate - Alerter</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Global Context Node</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateLoadControl">
1
+ <script type="text/html" data-help-name="knxUltimateLoadControl">
2
2
  <h1>KNX Ultimate - Load Control</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateLogger">
1
+ <script type="text/html" data-help-name="knxUltimateLogger">
2
2
  <h1>KNX Logger Node</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateSceneController">
1
+ <script type="text/html" data-help-name="knxUltimateSceneController">
2
2
  <h1>KNX Ultimate - Scene Controller</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Nodo Global Context</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateWatchDog">
1
+ <script type="text/html" data-help-name="knxUltimateWatchDog">
2
2
  <h1>KNX Watchdog Node</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="hue-config">
1
+ <script type="text/html" data-help-name="hue-config">
2
2
  <h1>KNX Ultimate - Nodo di configurazione HUE</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Nodo di configurazione</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate">
1
+ <script type="text/html" data-help-name="knxUltimate">
2
2
  <h1>KNX Ultimate</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateAlerter">
1
+ <script type="text/html" data-help-name="knxUltimateAlerter">
2
2
  <h1>KNX Ultimate - Alerter</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Nodo Global Context</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateHueLight">
1
+ <script type="text/html" data-help-name="knxUltimateHueLight">
2
2
  <h1>KNX Ultimate - Nodo HUE</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateLoadControl">
1
+ <script type="text/html" data-help-name="knxUltimateLoadControl">
2
2
  <h1>KNX Ultimate - Controllo carichi</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateLogger">
1
+ <script type="text/html" data-help-name="knxUltimateLogger">
2
2
  <h1>Nodo KNX Logger</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateSceneController">
1
+ <script type="text/html" data-help-name="knxUltimateSceneController">
2
2
  <h1>KNX Ultimate - Controller Scene</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Nodo Global Context</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateWatchDog">
1
+ <script type="text/html" data-help-name="knxUltimateWatchDog">
2
2
  <h1>Nodo KNX Watchdog</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="hue-config">
1
+ <script type="text/html" data-help-name="hue-config">
2
2
  <h1>KNX Ultimate - HUE config node</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - 网关配置节点</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate">
1
+ <script type="text/html" data-help-name="knxUltimate">
2
2
  <h1>KNX Ultimate - 设备节点</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateAlerter">
1
+ <script type="text/html" data-help-name="knxUltimateAlerter">
2
2
  <h1>KNX Ultimate - 报警节点</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - 全局变量节点</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateHueLight">
1
+ <script type="text/html" data-help-name="knxUltimateHueLight">
2
2
  <h1>KNX Ultimate - Nodo HUE</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateLoadControl">
1
+ <script type="text/html" data-help-name="knxUltimateLoadControl">
2
2
  <h1>KNX Ultimate - Load Control</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateLogger">
1
+ <script type="text/html" data-help-name="knxUltimateLogger">
2
2
  <h1>KNX 日志节点</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateSceneController">
1
+ <script type="text/html" data-help-name="knxUltimateSceneController">
2
2
  <h1>KNX Ultimate - 场景节点</h1>
3
3
 
4
4
  <p>
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimate-config">
1
+ <script type="text/html" data-help-name="knxUltimate-config">
2
2
  <h1>KNX Ultimate - Nodo Global Context</h1>
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- <script type="text/x-red" data-help-name="knxUltimateWatchDog">
1
+ <script type="text/html" data-help-name="knxUltimateWatchDog">
2
2
  <h1>KNX 看门狗节点</h1>
3
3
 
4
4
  <p>
@@ -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.12",
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",