node-red-contrib-knx-ultimate 2.1.63 → 2.2.2
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/.eslintrc.json +12 -12
- package/CHANGELOG.md +17 -1
- package/KNXEngine/package.json +1 -1
- package/nodes/hue-config.html +2 -2
- package/nodes/hue-config.js +81 -39
- package/nodes/knxUltimate-config.js +158 -156
- package/nodes/knxUltimateHueBattery.html +2 -2
- package/nodes/knxUltimateHueButton.html +1 -1
- package/nodes/knxUltimateHueButton.js +152 -116
- package/nodes/knxUltimateHueLight.html +830 -781
- package/nodes/knxUltimateHueLight.js +145 -149
- package/nodes/knxUltimateHueLightSensor.html +1 -1
- package/nodes/knxUltimateHueLightSensor.js +2 -2
- package/nodes/knxUltimateHueMotion.html +3 -4
- package/nodes/knxUltimateHueMotion.js +73 -61
- package/nodes/knxUltimateHueScene.html +1 -1
- package/nodes/knxUltimateHueScene.js +1 -1
- package/nodes/knxUltimateHueTapDial.html +1 -1
- package/nodes/knxUltimateHueTapDial.js +1 -2
- package/nodes/knxUltimateHueTemperatureSensor.html +2 -2
- package/nodes/knxUltimateLoadControl.html +1 -1
- package/nodes/knxUltimateViewer.html +28 -0
- package/nodes/utils/hueEngine.js +5 -25
- package/package.json +26 -5
- package/nodes/utils/iro.js +0 -1835
|
@@ -1,106 +1,107 @@
|
|
|
1
1
|
<script type="text/javascript">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
2
|
+
RED.nodes.registerType("knxUltimateHueLight", {
|
|
3
|
+
category: "KNX Ultimate",
|
|
4
|
+
color: "#C0C7E9",
|
|
5
|
+
defaults: {
|
|
6
|
+
//buttonState: {value: true},
|
|
7
|
+
server: { type: "knxUltimate-config", required: true },
|
|
8
|
+
serverHue: { type: "hue-config", required: true },
|
|
9
|
+
name: { value: "" },
|
|
10
|
+
|
|
11
|
+
nameLightSwitch: { value: "" },
|
|
12
|
+
GALightSwitch: { value: "" },
|
|
13
|
+
dptLightSwitch: { value: "" },
|
|
14
|
+
|
|
15
|
+
nameLightState: { value: "" },
|
|
16
|
+
GALightState: { value: "" },
|
|
17
|
+
dptLightState: { value: "" },
|
|
18
|
+
|
|
19
|
+
nameLightDIM: { value: "" },
|
|
20
|
+
GALightDIM: { value: "" },
|
|
21
|
+
dptLightDIM: { value: "" },
|
|
22
|
+
|
|
23
|
+
nameLightColor: { value: "" },
|
|
24
|
+
GALightColor: { value: "" },
|
|
25
|
+
dptLightColor: { value: "" },
|
|
26
|
+
|
|
27
|
+
nameLightColorState: { value: "" },
|
|
28
|
+
GALightColorState: { value: "" },
|
|
29
|
+
dptLightColorState: { value: "" },
|
|
30
|
+
|
|
31
|
+
nameLightHSV: { value: "" },
|
|
32
|
+
GALightHSV: { value: "" },
|
|
33
|
+
dptLightHSV: { value: "" },
|
|
34
|
+
|
|
35
|
+
nameLightHSVPercentage: { value: "" },
|
|
36
|
+
GALightHSVPercentage: { value: "" },
|
|
37
|
+
dptLightHSVPercentage: { value: "" },
|
|
38
|
+
|
|
39
|
+
nameLightHSVState: { value: "" },
|
|
40
|
+
GALightHSVState: { value: "" },
|
|
41
|
+
dptLightHSVState: { value: "" },
|
|
42
|
+
|
|
43
|
+
nameLightBrightness: { value: "" },
|
|
44
|
+
GALightBrightness: { value: "" },
|
|
45
|
+
dptLightBrightness: { value: "" },
|
|
46
|
+
|
|
47
|
+
nameLightBrightnessState: { value: "" },
|
|
48
|
+
GALightBrightnessState: { value: "" },
|
|
49
|
+
dptLightBrightnessState: { value: "" },
|
|
50
|
+
|
|
51
|
+
nameLightBlink: { value: "" },
|
|
52
|
+
GALightBlink: { value: "" },
|
|
53
|
+
dptLightBlink: { value: "" },
|
|
54
|
+
|
|
55
|
+
nameLightColorCycle: { value: "" },
|
|
56
|
+
GALightColorCycle: { value: "" },
|
|
57
|
+
dptLightColorCycle: { value: "" },
|
|
58
|
+
|
|
59
|
+
enableDayNightLighting: { value: "no" },
|
|
60
|
+
colorAtSwitchOnDayTime: { value: '{"red":255, "green":255, "blue":255}' },
|
|
61
|
+
colorAtSwitchOnNightTime: { value: '{"red":23, "green":4, "blue":0}' },
|
|
62
|
+
invertDayNight: { value: false },
|
|
63
|
+
|
|
64
|
+
nameDaylightSensor: { value: "" },
|
|
65
|
+
GADaylightSensor: { value: "" },
|
|
66
|
+
dptDaylightSensor: { value: "" },
|
|
67
|
+
|
|
68
|
+
specifySwitchOnBrightness: { value: "yes" },
|
|
69
|
+
updateKNXBrightnessStatusOnHUEOnOff: { value: "onhueoff" },
|
|
70
|
+
dimSpeed: { value: 5000, required: false },
|
|
71
|
+
minDimLevelLight: { value: 10, required: false },
|
|
72
|
+
maxDimLevelLight: { value: 100, required: false },
|
|
73
|
+
|
|
74
|
+
hueDevice: { value: "" },
|
|
75
|
+
},
|
|
76
|
+
inputs: 0,
|
|
77
|
+
outputs: 0,
|
|
78
|
+
icon: "node-hue-icon.svg",
|
|
79
|
+
label: function () {
|
|
80
|
+
return this.name;
|
|
81
|
+
},
|
|
82
|
+
paletteLabel: "Hue Light",
|
|
83
|
+
// button: {
|
|
84
|
+
// enabled: function() {
|
|
85
|
+
// // return whether or not the button is enabled, based on the current
|
|
86
|
+
// // configuration of the node
|
|
87
|
+
// return !this.changed
|
|
88
|
+
// },
|
|
89
|
+
// visible: function() {
|
|
90
|
+
// // return whether or not the button is visible, based on the current
|
|
91
|
+
// // configuration of the node
|
|
92
|
+
// return this.hasButton
|
|
93
|
+
// },
|
|
94
|
+
// //toggle: "buttonState",
|
|
95
|
+
// onclick: function() {}
|
|
96
|
+
// },
|
|
97
|
+
oneditprepare: function () {
|
|
98
|
+
var node = this;
|
|
99
|
+
var oNodeServer = RED.nodes.node($("#node-input-server").val()); // Store the config-node
|
|
100
|
+
var oNodeServerHue = RED.nodes.node($("#node-input-serverHue").val()); // Store the config-node
|
|
101
|
+
|
|
102
|
+
// Create the TAB in Node-Red
|
|
103
|
+
// ####################################
|
|
104
|
+
const content = `<html>
|
|
104
105
|
|
|
105
106
|
<head>
|
|
106
107
|
<div class="red-ui-sidebar-header">Color Selector</div>
|
|
@@ -133,747 +134,795 @@
|
|
|
133
134
|
</html>
|
|
134
135
|
`;
|
|
135
136
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
137
|
+
// COLOR BAR HANDLING ###########################
|
|
138
|
+
RED.sidebar.addTab({
|
|
139
|
+
id: "tabNRColor",
|
|
140
|
+
label: "Color Picker",
|
|
141
|
+
name: "Color Picker",
|
|
142
|
+
iconClass: "fa fa-pencil",
|
|
143
|
+
content: content,
|
|
144
|
+
enableOnEdit: true,
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// Temperature
|
|
148
|
+
node.kelvinPicker = new iro.ColorPicker("#kelvinPicker", {
|
|
149
|
+
width: 250,
|
|
150
|
+
color: "rgb(255, 0, 0)",
|
|
151
|
+
borderWidth: 1,
|
|
152
|
+
borderColor: "#fff",
|
|
153
|
+
layoutDirection: "vertical",
|
|
154
|
+
layout: [
|
|
155
|
+
{
|
|
156
|
+
component: iro.ui.Slider,
|
|
157
|
+
options: {
|
|
158
|
+
sliderType: "kelvin",
|
|
159
|
+
sliderSize: 20,
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
],
|
|
163
|
+
});
|
|
164
|
+
// color:change callbacks receive the current color
|
|
165
|
+
node.kelvinPicker.on("color:change", function (color) {
|
|
166
|
+
const resultRGBForNode = '{"red": ' + color.rgb.r + ', "green": ' + color.rgb.g + ', "blue": ' + color.rgb.b + "}";
|
|
167
|
+
$("#resultRGB").val(resultRGBForNode);
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
// Color
|
|
171
|
+
node.colorPicker = new iro.ColorPicker("#colorPicker", {
|
|
172
|
+
width: 250,
|
|
173
|
+
color: "rgb(255, 0, 0)",
|
|
174
|
+
borderWidth: 1,
|
|
175
|
+
borderColor: "#fff",
|
|
176
|
+
layout: [
|
|
177
|
+
{
|
|
178
|
+
component: iro.ui.Box,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
component: iro.ui.Slider,
|
|
182
|
+
options: {
|
|
183
|
+
id: "hue-slider",
|
|
184
|
+
sliderType: "hue",
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
});
|
|
189
|
+
// color:change callbacks receive the current color
|
|
190
|
+
node.colorPicker.on("color:change", function (color) {
|
|
191
|
+
// Transform to compatible value for the node { "red": 255, "green": 255, "blue": 255 }
|
|
192
|
+
const resultRGBForNode = '{"red": ' + color.rgb.r + ', "green": ' + color.rgb.g + ', "blue": ' + color.rgb.b + "}";
|
|
193
|
+
$("#resultRGB").val(resultRGBForNode);
|
|
194
|
+
});
|
|
195
|
+
$("#resultRGB").on("keyup", function () {
|
|
196
|
+
setIroColor();
|
|
197
|
+
});
|
|
198
|
+
function setIroColor() {
|
|
199
|
+
try {
|
|
200
|
+
const color = JSON.parse($("#resultRGB").val());
|
|
201
|
+
node.colorPicker.color.setChannel("rgb", "r", color.red);
|
|
202
|
+
node.colorPicker.color.setChannel("rgb", "g", color.green);
|
|
203
|
+
node.colorPicker.color.setChannel("rgb", "b", color.blue);
|
|
204
|
+
} catch (error) { }
|
|
205
|
+
}
|
|
206
|
+
// Copy to clipboard button
|
|
207
|
+
$("#tabNRColor_colorSelectorTABApplyTextButton").on("click", function () {
|
|
208
|
+
// const aa = $("#resultRGB").val()
|
|
209
|
+
// navigator.clipboard.writeText(aa)
|
|
210
|
+
const destTextBox = "#" + $("#tabNRColor_destinationTextbox").val();
|
|
211
|
+
const resultRGB = $("#resultRGB").val();
|
|
212
|
+
$(destTextBox).val(resultRGB);
|
|
213
|
+
// Flash the destination control
|
|
214
|
+
$(destTextBox).css("background-color", "lightgreen");
|
|
215
|
+
$("#tabNRColor_divApplyCancel").hide();
|
|
216
|
+
RED.sidebar.show("help");
|
|
217
|
+
setTimeout(() => {
|
|
218
|
+
$(destTextBox).css("background-color", "");
|
|
219
|
+
}, 500);
|
|
220
|
+
});
|
|
221
|
+
$("#tabNRColor_colorSelectorTABCancelTextButton").on("click", function () {
|
|
222
|
+
$("#tabNRColor_destinationTextbox").val("");
|
|
223
|
+
RED.sidebar.show("help");
|
|
224
|
+
$("#tabNRColor_divApplyCancel").hide();
|
|
225
|
+
});
|
|
226
|
+
$("#node-input-colorAtSwitchOnDayTime").on("focus", function () {
|
|
227
|
+
RED.sidebar.show("tabNRColor"); // Node-Red custom color TAB
|
|
228
|
+
$("#tabNRColor_destinationTextbox").val("node-input-colorAtSwitchOnDayTime");
|
|
229
|
+
$("#tabNRColor_divApplyCancel").show();
|
|
230
|
+
const color = $("#node-input-colorAtSwitchOnDayTime").val();
|
|
231
|
+
$("#resultRGB").val(color);
|
|
232
|
+
setIroColor();
|
|
233
|
+
});
|
|
234
|
+
// $("#node-input-colorAtSwitchOnDayTime").on("blur", function () {
|
|
235
|
+
// RED.sidebar.show("help");
|
|
236
|
+
// });
|
|
237
|
+
$("#node-input-colorAtSwitchOnNightTime").on("focus", function () {
|
|
238
|
+
RED.sidebar.show("tabNRColor"); // Node-Red custom color TAB
|
|
239
|
+
$("#tabNRColor_destinationTextbox").val("node-input-colorAtSwitchOnNightTime");
|
|
240
|
+
$("#tabNRColor_divApplyCancel").show();
|
|
241
|
+
const color = $("#node-input-colorAtSwitchOnNightTime").val();
|
|
242
|
+
$("#resultRGB").val(color);
|
|
243
|
+
setIroColor();
|
|
244
|
+
});
|
|
245
|
+
// ####################################
|
|
246
|
+
|
|
247
|
+
$("#tabs").tabs(); // Tabs gestione KNX
|
|
248
|
+
|
|
249
|
+
// 19/02/2020 Used to get the server sooner als deploy.
|
|
250
|
+
$("#node-input-server").change(function () {
|
|
251
|
+
try {
|
|
252
|
+
oNodeServer = RED.nodes.node($(this).val());
|
|
253
|
+
} catch (error) { }
|
|
254
|
+
});
|
|
255
|
+
// 19/02/2020 Used to get the server sooner als deploy.
|
|
256
|
+
$("#node-input-serverHue").change(function () {
|
|
257
|
+
try {
|
|
258
|
+
oNodeServerHue = RED.nodes.node($(this).val());
|
|
259
|
+
} catch (error) { }
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
// 31/03/2020 Search Helper
|
|
263
|
+
function fullSearch(sourceText, searchString) {
|
|
264
|
+
// This searches for all words in a string
|
|
265
|
+
var aSearchWords = searchString.toLowerCase().split(" ");
|
|
266
|
+
var i = 0;
|
|
267
|
+
for (let index = 0; index < aSearchWords.length; index++) {
|
|
268
|
+
if (sourceText.toLowerCase().indexOf(aSearchWords[index]) > -1) i += 1;
|
|
269
|
+
}
|
|
270
|
+
return i == aSearchWords.length;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
function getDPT(_dpt, _destinationWidget) {
|
|
274
|
+
// DPT Switch command
|
|
275
|
+
// ########################
|
|
276
|
+
$.getJSON("knxUltimateDpts", (data) => {
|
|
277
|
+
data.forEach((dpt) => {
|
|
278
|
+
if (dpt.value.startsWith(_dpt)) {
|
|
279
|
+
$(_destinationWidget).append($("<option></option>").attr("value", dpt.value).text(dpt.text));
|
|
205
280
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
setIroColor();
|
|
233
|
-
});
|
|
234
|
-
// $("#node-input-colorAtSwitchOnDayTime").on("blur", function () {
|
|
235
|
-
// RED.sidebar.show("help");
|
|
236
|
-
// });
|
|
237
|
-
$("#node-input-colorAtSwitchOnNightTime").on("focus", function () {
|
|
238
|
-
RED.sidebar.show("tabNRColor"); // Node-Red custom color TAB
|
|
239
|
-
$("#tabNRColor_destinationTextbox").val("node-input-colorAtSwitchOnNightTime")
|
|
240
|
-
$("#tabNRColor_divApplyCancel").show()
|
|
241
|
-
const color = $("#node-input-colorAtSwitchOnNightTime").val()
|
|
242
|
-
$("#resultRGB").val(color)
|
|
243
|
-
setIroColor();
|
|
244
|
-
});
|
|
245
|
-
// ####################################
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
$("#tabs").tabs(); // Tabs gestione KNX
|
|
249
|
-
|
|
250
|
-
// 19/02/2020 Used to get the server sooner als deploy.
|
|
251
|
-
$("#node-input-server").change(function () {
|
|
252
|
-
try {
|
|
253
|
-
oNodeServer = RED.nodes.node($(this).val());
|
|
254
|
-
} catch (error) { }
|
|
255
|
-
});
|
|
256
|
-
// 19/02/2020 Used to get the server sooner als deploy.
|
|
257
|
-
$("#node-input-serverHue").change(function () {
|
|
258
|
-
try {
|
|
259
|
-
oNodeServerHue = RED.nodes.node($(this).val());
|
|
260
|
-
} catch (error) { }
|
|
281
|
+
});
|
|
282
|
+
// Eval
|
|
283
|
+
const format = "node." + _destinationWidget.replace("#node-input-", "");
|
|
284
|
+
$(_destinationWidget).val(eval(format).toString());
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
function getGroupAddress(_sourceWidgetAutocomplete, _destinationWidgetName, _destinationWidgetDPT, _additionalSearchTerm) {
|
|
289
|
+
$(_sourceWidgetAutocomplete).autocomplete({
|
|
290
|
+
minLength: 1,
|
|
291
|
+
source: function (request, response) {
|
|
292
|
+
//$.getJSON("csv", request, function( data, status, xhr ) {
|
|
293
|
+
$.getJSON("knxUltimatecsv?nodeID=" + oNodeServer.id, (data) => {
|
|
294
|
+
response(
|
|
295
|
+
$.map(data, function (value, key) {
|
|
296
|
+
var sSearch = value.ga + " (" + value.devicename + ") DPT" + value.dpt;
|
|
297
|
+
if (fullSearch(sSearch, request.term + _additionalSearchTerm)) {
|
|
298
|
+
return {
|
|
299
|
+
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
300
|
+
value: value.ga, // Value
|
|
301
|
+
};
|
|
302
|
+
} else {
|
|
303
|
+
return null;
|
|
304
|
+
}
|
|
305
|
+
})
|
|
306
|
+
);
|
|
261
307
|
});
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
308
|
+
},
|
|
309
|
+
select: function (event, ui) {
|
|
310
|
+
// Sets Datapoint and device name automatically
|
|
311
|
+
var sDevName = ui.item.label.split("#")[1].trim();
|
|
312
|
+
try {
|
|
313
|
+
sDevName = sDevName.substr(sDevName.indexOf(")") + 1).trim();
|
|
314
|
+
} catch (error) { }
|
|
315
|
+
$(_destinationWidgetName).val(sDevName);
|
|
316
|
+
var optVal = $(_destinationWidgetDPT + " option:contains('" + ui.item.label.split("#")[2].trim() + "')").attr("value");
|
|
317
|
+
// Select the option value
|
|
318
|
+
$(_destinationWidgetDPT).val(optVal);
|
|
319
|
+
},
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
getDPT("1.", "#node-input-dptLightSwitch");
|
|
324
|
+
getGroupAddress("#node-input-GALightSwitch", "#node-input-nameLightSwitch", "#node-input-dptLightSwitch", " 1.");
|
|
325
|
+
|
|
326
|
+
getDPT("1.", "#node-input-dptLightState");
|
|
327
|
+
getGroupAddress("#node-input-GALightState", "#node-input-nameLightState", "#node-input-dptLightState", " 1.");
|
|
328
|
+
|
|
329
|
+
getDPT("3.007", "#node-input-dptLightDIM");
|
|
330
|
+
getGroupAddress("#node-input-GALightDIM", "#node-input-nameLightDIM", "#node-input-dptLightDIM", " 3.007");
|
|
331
|
+
|
|
332
|
+
getDPT("5.001", "#node-input-dptLightBrightness");
|
|
333
|
+
getGroupAddress("#node-input-GALightBrightness", "#node-input-nameLightBrightness", "#node-input-dptLightBrightness", " 5.001");
|
|
334
|
+
|
|
335
|
+
getDPT("5.001", "#node-input-dptLightBrightnessState");
|
|
336
|
+
getGroupAddress("#node-input-GALightBrightnessState", "#node-input-nameLightBrightnessState", "#node-input-dptLightBrightnessState", " 5.001");
|
|
337
|
+
|
|
338
|
+
getDPT("232.600", "#node-input-dptLightColor");
|
|
339
|
+
getGroupAddress("#node-input-GALightColor", "#node-input-nameLightColor", "#node-input-dptLightColor", " 232.600");
|
|
340
|
+
|
|
341
|
+
getDPT("232.600", "#node-input-dptLightColorState");
|
|
342
|
+
getGroupAddress("#node-input-GALightColorState", "#node-input-nameLightColorState", "#node-input-dptLightColorState", " 232.600");
|
|
343
|
+
|
|
344
|
+
getDPT("3.007", "#node-input-dptLightHSV");
|
|
345
|
+
getGroupAddress("#node-input-GALightHSV", "#node-input-nameLightHSV", "#node-input-dptLightHSV", " 3.007");
|
|
346
|
+
|
|
347
|
+
getDPT("5.001", "#node-input-dptLightHSVPercentage");
|
|
348
|
+
getGroupAddress("#node-input-GALightHSVPercentage", "#node-input-nameLightHSVPercentage", "#node-input-dptLightHSVPercentage", " 5.001");
|
|
349
|
+
|
|
350
|
+
getDPT("5.001", "#node-input-dptLightHSVState");
|
|
351
|
+
getGroupAddress("#node-input-GALightHSVState", "#node-input-nameLightHSVState", "#node-input-dptLightHSVState", " 5.001");
|
|
352
|
+
|
|
353
|
+
getDPT("1.", "#node-input-dptLightBlink");
|
|
354
|
+
getGroupAddress("#node-input-GALightBlink", "#node-input-nameLightBlink", "#node-input-dptLightBlink", " 1.");
|
|
355
|
+
|
|
356
|
+
getDPT("1.", "#node-input-dptLightColorCycle");
|
|
357
|
+
getGroupAddress("#node-input-GALightColorCycle", "#node-input-nameLightColorCycle", "#node-input-dptLightColorCycle", " 1.");
|
|
358
|
+
|
|
359
|
+
getDPT("1.", "#node-input-dptDaylightSensor");
|
|
360
|
+
getGroupAddress("#node-input-GADaylightSensor", "#node-input-nameDaylightSensor", "#node-input-dptDaylightSensor", " 1.");
|
|
361
|
+
|
|
362
|
+
// Show/Hide and enable/disable day/night Lighting behaviour
|
|
363
|
+
if (this.enableDayNightLighting === "yes") {
|
|
364
|
+
$("#divEnableDayNightLighting").show();
|
|
365
|
+
$("#divCCSBoxayNightLighting").css({ border: "1px solid dimgrey", "border-radius": "12px", padding: "5px" }); // Add little box to better understand the property page
|
|
366
|
+
} else {
|
|
367
|
+
$("#divEnableDayNightLighting").hide();
|
|
368
|
+
$("#divCCSBoxayNightLighting").css({ border: "", "border-radius": "", padding: "" });
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
$("#node-input-enableDayNightLighting").on("change", function () {
|
|
372
|
+
if ($("#node-input-enableDayNightLighting").val() === "yes") {
|
|
373
|
+
$("#divEnableDayNightLighting").show();
|
|
374
|
+
$("#divCCSBoxayNightLighting").css({ border: "1px solid dimgrey", "border-radius": "12px", padding: "5px" }); // Add little box to better understand the property page
|
|
375
|
+
} else {
|
|
376
|
+
$("#divEnableDayNightLighting").hide();
|
|
377
|
+
$("#divCCSBoxayNightLighting").css({ border: "", "border-radius": "", padding: "" });
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
// Show/Hide the div of the color at swich on
|
|
382
|
+
if (this.specifySwitchOnBrightness === "yes") {
|
|
383
|
+
$("#divColorsAtSwitchOn").show();
|
|
384
|
+
} else {
|
|
385
|
+
$("#divColorsAtSwitchOn").hide();
|
|
386
|
+
$("#node-input-colorAtSwitchOnDayTime").val("");
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
$("#node-input-specifySwitchOnBrightness").on("change", function () {
|
|
390
|
+
if ($("#node-input-specifySwitchOnBrightness").val() === "yes") {
|
|
391
|
+
$("#divColorsAtSwitchOn").show();
|
|
392
|
+
if ($("#node-input-colorAtSwitchOnDayTime").val() === "") $("#node-input-colorAtSwitchOnDayTime").val('{ "red": 255, "green": 255, "blue": 255 }');
|
|
393
|
+
} else {
|
|
394
|
+
$("#divColorsAtSwitchOn").hide();
|
|
395
|
+
$("#node-input-colorAtSwitchOnDayTime").val("");
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
// Autocomplete suggestion with HUE Lights
|
|
400
|
+
$("#node-input-name").autocomplete({
|
|
401
|
+
minLength: 1,
|
|
402
|
+
source: function (request, response) {
|
|
403
|
+
$.getJSON("KNXUltimateGetResourcesHUE?rtype=light&nodeID=" + oNodeServerHue.id, (data) => {
|
|
404
|
+
response(
|
|
405
|
+
$.map(data.devices, function (value, key) {
|
|
406
|
+
//alert(JSON.stringify(value) + " "+ key)
|
|
407
|
+
var sSearch = value.name;
|
|
408
|
+
if (fullSearch(sSearch, request.term)) {
|
|
409
|
+
return {
|
|
410
|
+
hueDevice: value.id,
|
|
411
|
+
value: value.name,
|
|
412
|
+
};
|
|
413
|
+
} else {
|
|
414
|
+
return null;
|
|
270
415
|
}
|
|
271
|
-
|
|
416
|
+
})
|
|
417
|
+
);
|
|
418
|
+
});
|
|
419
|
+
},
|
|
420
|
+
select: function (event, ui) {
|
|
421
|
+
// Distinguish between group of lights an single light.
|
|
422
|
+
if (ui.item.value.toLowerCase().startsWith("grouped_light")) {
|
|
423
|
+
$("#node-input-hueDevice").val(ui.item.hueDevice + "#grouped_light");
|
|
424
|
+
$("#getColorAtSwitchOnDayTimeButton").hide();
|
|
425
|
+
$("#getColorAtSwitchOnNightTimeButton").hide();
|
|
426
|
+
} else {
|
|
427
|
+
$("#node-input-hueDevice").val(ui.item.hueDevice + "#light");
|
|
428
|
+
$("#getColorAtSwitchOnDayTimeButton").show();
|
|
429
|
+
$("#getColorAtSwitchOnNightTimeButton").show();
|
|
430
|
+
}
|
|
431
|
+
$("#tabs").show();
|
|
432
|
+
},
|
|
433
|
+
});
|
|
434
|
+
|
|
435
|
+
// Get the HUE capabilities to enable/disable UI parts
|
|
436
|
+
$.getJSON("KNXUltimateGetResourcesHUE?rtype=light&nodeID=" + oNodeServerHue.id, (data) => {
|
|
437
|
+
data.devices.forEach((element) => {
|
|
438
|
+
if (element.id === this.hueDevice.split("#")[0] && element.deviceObject !== undefined) {
|
|
439
|
+
// Check dimming
|
|
440
|
+
if (element.deviceObject.dimming === undefined) {
|
|
441
|
+
$("#tabs").tabs("disable", "#tabs-2");
|
|
442
|
+
$("#divColorsAtSwitchOn").hide();
|
|
443
|
+
$("#divColorCycle").hide();
|
|
272
444
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
if (dpt.value.startsWith(_dpt)) {
|
|
280
|
-
$(_destinationWidget).append($("<option></option>")
|
|
281
|
-
.attr("value", dpt.value)
|
|
282
|
-
.text(dpt.text))
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
$(_destinationWidget).val(this + "." + _destinationWidget - replace("#node-input-", ""))
|
|
286
|
-
})
|
|
445
|
+
// Check color
|
|
446
|
+
if (element.deviceObject.color_temperature === undefined) $("#tabs").tabs("disable", "#tabs-3");
|
|
447
|
+
if (element.deviceObject.color === undefined) {
|
|
448
|
+
$("#tabs").tabs("disable", "#tabs-4");
|
|
449
|
+
$("#divColorsAtSwitchOn").hide();
|
|
450
|
+
$("#divColorCycle").hide();
|
|
287
451
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
response($.map(data, function (value, key) {
|
|
296
|
-
var sSearch = (value.ga + " (" + value.devicename + ") DPT" + value.dpt);
|
|
297
|
-
if (fullSearch(sSearch, request.term + _additionalSearchTerm)) {
|
|
298
|
-
return {
|
|
299
|
-
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
300
|
-
value: value.ga // Value
|
|
301
|
-
}
|
|
302
|
-
} else {
|
|
303
|
-
return null;
|
|
304
|
-
}
|
|
305
|
-
}));
|
|
306
|
-
});
|
|
307
|
-
}, select: function (event, ui) {
|
|
308
|
-
// Sets Datapoint and device name automatically
|
|
309
|
-
var sDevName = ui.item.label.split("#")[1].trim();
|
|
310
|
-
try {
|
|
311
|
-
sDevName = sDevName.substr(sDevName.indexOf(")") + 1).trim();
|
|
312
|
-
} catch (error) {
|
|
313
|
-
}
|
|
314
|
-
$(_destinationWidgetName).val(sDevName);
|
|
315
|
-
var optVal = $(_destinationWidgetDPT + " option:contains('" + ui.item.label.split("#")[2].trim() + "')").attr('value');
|
|
316
|
-
// Select the option value
|
|
317
|
-
$(_destinationWidgetDPT).val(optVal);
|
|
318
|
-
}
|
|
319
|
-
});
|
|
452
|
+
// Check if grouped, to hide/show the "Get current" buttons
|
|
453
|
+
if (element.deviceObject.type === "grouped_light") {
|
|
454
|
+
$("#getColorAtSwitchOnDayTimeButton").hide();
|
|
455
|
+
$("#getColorAtSwitchOnNightTimeButton").hide();
|
|
456
|
+
} else {
|
|
457
|
+
$("#getColorAtSwitchOnDayTimeButton").show();
|
|
458
|
+
$("#getColorAtSwitchOnNightTimeButton").show();
|
|
320
459
|
}
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
});
|
|
464
|
+
|
|
465
|
+
$("#getColorAtSwitchOnDayTimeButton").on("click", function () {
|
|
466
|
+
// Get the HUE capabilities to enable/disable UI parts
|
|
467
|
+
$("#getColorAtSwitchOnDayTimeButton").text("Wait...");
|
|
468
|
+
$.getJSON("knxUltimateGetHueColor?id=" + $("#node-input-hueDevice").val().split("#")[0], (data) => {
|
|
469
|
+
$("#node-input-colorAtSwitchOnDayTime").val(data.toString());
|
|
470
|
+
$("#node-input-colorAtSwitchOnDayTime").css("background-color", "lightgreen");
|
|
471
|
+
setTimeout(() => {
|
|
472
|
+
$("#node-input-colorAtSwitchOnDayTime").css("background-color", "");
|
|
473
|
+
}, 500);
|
|
474
|
+
$("#getColorAtSwitchOnDayTimeButton").text("Get current");
|
|
475
|
+
});
|
|
476
|
+
});
|
|
477
|
+
$("#getColorAtSwitchOnNightTimeButton").on("click", function () {
|
|
478
|
+
// Get the HUE capabilities to enable/disable UI parts
|
|
479
|
+
$("#getColorAtSwitchOnNightTimeButton").text("Wait...");
|
|
480
|
+
$.getJSON("knxUltimateGetHueColor?id=" + $("#node-input-hueDevice").val().split("#")[0], (data) => {
|
|
481
|
+
$("#node-input-colorAtSwitchOnNightTime").val(data.toString());
|
|
482
|
+
$("#node-input-colorAtSwitchOnNightTime").css("background-color", "lightgreen");
|
|
483
|
+
setTimeout(() => {
|
|
484
|
+
$("#node-input-colorAtSwitchOnNightTime").css("background-color", "");
|
|
485
|
+
}, 500);
|
|
486
|
+
$("#getColorAtSwitchOnNightTimeButton").text("Get current");
|
|
487
|
+
});
|
|
488
|
+
});
|
|
489
|
+
|
|
490
|
+
// Fill options for minDimLevel and maxDimLevel
|
|
491
|
+
for (let index = 0; index <= 90; index++) {
|
|
492
|
+
if (index === 0){
|
|
493
|
+
$("#node-input-minDimLevelLight").append($("<option>").val(index).text(index.toString() + "% (Switch Off)"));
|
|
494
|
+
}else{
|
|
495
|
+
$("#node-input-minDimLevelLight").append($("<option>").val(index).text(index.toString() + "%"));
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
}
|
|
499
|
+
$("#node-input-minDimLevelLight").val(node.minDimLevelLight);
|
|
500
|
+
for (let index = 100; index >= 10; index--) {
|
|
501
|
+
$("#node-input-maxDimLevelLight").append(
|
|
502
|
+
$("<option>")
|
|
503
|
+
.val(index)
|
|
504
|
+
.text(index.toString() + "%")
|
|
505
|
+
);
|
|
506
|
+
}
|
|
507
|
+
$("#node-input-maxDimLevelLight").val(node.maxDimLevelLight);
|
|
508
|
+
|
|
509
|
+
if (this.hueDevice !== "") $("#tabs").show();
|
|
510
|
+
},
|
|
511
|
+
oneditsave: function () {
|
|
512
|
+
RED.sidebar.removeTab("tabNRColor");
|
|
513
|
+
RED.sidebar.show("help");
|
|
514
|
+
},
|
|
515
|
+
oneditcancel: function () {
|
|
516
|
+
RED.sidebar.removeTab("tabNRColor");
|
|
517
|
+
RED.sidebar.show("help");
|
|
518
|
+
},
|
|
519
|
+
});
|
|
520
|
+
</script>
|
|
521
|
+
<script src="https://kit.fontawesome.com/11f26b4500.js" crossorigin="anonymous"></script>
|
|
522
|
+
<script src="https://cdn.jsdelivr.net/npm/@jaames/iro@5"></script>
|
|
321
523
|
|
|
322
|
-
|
|
323
|
-
getGroupAddress("#node-input-GALightSwitch", "#node-input-nameLightSwitch", "#node-input-dptLightSwitch", " 1.")
|
|
324
|
-
|
|
325
|
-
getDPT("1.", "#node-input-dptLightState")
|
|
326
|
-
getGroupAddress("#node-input-GALightState", "#node-input-nameLightState", "#node-input-dptLightState", " 1.")
|
|
327
|
-
|
|
328
|
-
getDPT("3.007", "#node-input-dptLightDIM")
|
|
329
|
-
getGroupAddress("#node-input-GALightDIM", "#node-input-nameLightDIM", "#node-input-dptLightDIM", " 3.007")
|
|
330
|
-
|
|
331
|
-
getDPT("5.001", "#node-input-dptLightBrightness")
|
|
332
|
-
getGroupAddress("#node-input-GALightBrightness", "#node-input-nameLightBrightness", "#node-input-dptLightBrightness", " 5.001")
|
|
333
|
-
|
|
334
|
-
getDPT("5.001", "#node-input-dptLightBrightnessState")
|
|
335
|
-
getGroupAddress("#node-input-GALightBrightnessState", "#node-input-nameLightBrightnessState", "#node-input-dptLightBrightnessState", " 5.001")
|
|
336
|
-
|
|
337
|
-
getDPT("232.600", "#node-input-dptLightColor")
|
|
338
|
-
getGroupAddress("#node-input-GALightColor", "#node-input-nameLightColor", "#node-input-dptLightColor", " 232.600")
|
|
524
|
+
<script type="text/html" data-template-name="knxUltimateHueLight">
|
|
339
525
|
|
|
340
|
-
getDPT("232.600", "#node-input-dptLightColorState")
|
|
341
|
-
getGroupAddress("#node-input-GALightColorState", "#node-input-nameLightColorState", "#node-input-dptLightColorState", " 232.600")
|
|
342
526
|
|
|
343
|
-
|
|
344
|
-
|
|
527
|
+
<div class="form-row">
|
|
528
|
+
<b>HUE Light/Group node</b>  <span style="color:red"
|
|
529
|
+
 
|
|
530
|
+
 <i class="fa fa-youtube"></i></span> <a target="_blank" href="https://youtu.be/jjEUI1J8bkA"><u>Youtube sample</u></a>
|
|
531
|
+
<br />
|
|
532
|
+
<br />
|
|
533
|
+
<p align="center">
|
|
534
|
+
<i class="fa-regular fa-lightbulb fa-bounce fa-8x"></i>
|
|
535
|
+
</p>
|
|
536
|
+
<br />
|
|
537
|
+
<label for="node-input-server" >
|
|
538
|
+
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAKnRFWHRDcmVhdGlvbiBUaW1lAEZyIDYgQXVnIDIwMTAgMjE6NTI6MTkgKzAxMDD84aS8AAAAB3RJTUUH3gYYCicNV+4WIQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAACUSURBVHjaY2CgFZg5c+Z/ZEyWAZ8+f/6/ZsWs/xoamqMGkGrA6Wla/1+fVARjEBuGsSoGmY4eZSCNL59d/g8DIDbIAHR14OgFGQByKjIGKX5+6/T///8gGMQGiV1+/B0Fg70GIkD+RMYgxf/O5/7//2MSmAZhkBi6OrgB6Bg5DGB4ajr3f2xqsYYLSDE2THJUDg0AAAqyDVd4tp4YAAAAAElFTkSuQmCC"></img>
|
|
539
|
+
KNX GW
|
|
540
|
+
</label>
|
|
541
|
+
<input type="text" id="node-input-server" />
|
|
542
|
+
</div>
|
|
543
|
+
|
|
544
|
+
<div class="form-row">
|
|
545
|
+
<label for="node-input-serverHue">
|
|
546
|
+
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABFUlEQVQ4EZWSsWoCQRCG1yiENEFEi6QSkjqWWoqFoBYJ+Br6JHkMn8Iibd4ihQpaJIhWNkry/ZtdGZY78Qa+m39nZ+dm9s4550awglNBluS/gVtAX6KgDclf68w2OThgfR9iT/jnoEv4TtByDThWTCDKW4SSZTf/zj9/eZbN+izTDuKGimu0vPF8B/YN8aC8LmcOj/AAn9CFTEs70Js/oGqy79C69bqJ5XbQI2kGO5N8QL9D08S8zBtBF5ZaVsznpCMoqJnVdjTpb1Db0fwIWmQV6BLXzFOYgA6/gDVfQN9bBWp2J2hdWDPoBV5FrKnAJutHikk/CHHR8i7x4iG7qQ720IYvu3GFbpHjx3pFrOFYkA354z/5bkK826phyAAAAABJRU5ErkJggg=="/>
|
|
547
|
+
HUE Bridge
|
|
548
|
+
</label>
|
|
549
|
+
<input type="text" id="node-input-serverHue" />
|
|
550
|
+
</div>
|
|
551
|
+
|
|
552
|
+
<br/>
|
|
553
|
+
<p>
|
|
554
|
+
<b>Philips HUE</b>
|
|
555
|
+
</p>
|
|
556
|
+
|
|
557
|
+
<div class="form-row">
|
|
558
|
+
<label for="node-input-hueDevice" >
|
|
559
|
+
<i class="fa fa-play-circle"></i> Name</label>
|
|
560
|
+
<input type="text" id="node-input-name" placeholder="Enter your hue device name"/>
|
|
561
|
+
<input type="hidden" id="node-input-hueDevice"/>
|
|
562
|
+
</div>
|
|
563
|
+
|
|
564
|
+
<br/>
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
<div id="tabs" style="width:680px" hidden>
|
|
568
|
+
<ul>
|
|
569
|
+
<li><a href="#tabs-1">Switching</a></li>
|
|
570
|
+
<li><a href="#tabs-2">Dim/Brightness</a></li>
|
|
571
|
+
<li><a href="#tabs-3">Tunable white</a></li>
|
|
572
|
+
<li><a href="#tabs-4">Colors</a></li>
|
|
573
|
+
<li><a href="#tabs-5">Effects</a></li>
|
|
574
|
+
<li><a href="#tabs-6">Behaviour</a></li>
|
|
575
|
+
</ul>
|
|
576
|
+
<div id="tabs-1">
|
|
577
|
+
<p>
|
|
578
|
+
<div class="form-row">
|
|
579
|
+
<label for="node-input-nameLightSwitch" style="width:110px;"><i class="fa fa-play-circle-o"></i> Control</label>
|
|
345
580
|
|
|
346
|
-
|
|
347
|
-
|
|
581
|
+
<label for="node-input-GALightSwitch" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightSwitch"></span></label>
|
|
582
|
+
<input type="text" id="node-input-GALightSwitch" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
348
583
|
|
|
349
|
-
|
|
350
|
-
|
|
584
|
+
<label for="node-input-dptLightSwitch" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
585
|
+
<select id="node-input-dptLightSwitch" style="width:140px;"></select>
|
|
351
586
|
|
|
352
|
-
|
|
353
|
-
|
|
587
|
+
<label for="node-input-nameLightSwitch" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
588
|
+
<input type="text" id="node-input-nameLightSwitch" style="width:190px;margin-left: 5px; text-align: left;">
|
|
589
|
+
</div>
|
|
590
|
+
<div class="form-row">
|
|
591
|
+
<label for="node-input-nameLightState" style="width:110px;"><i class="fa fa-play-circle-o"></i> Status</label>
|
|
354
592
|
|
|
355
|
-
|
|
356
|
-
|
|
593
|
+
<label for="node-input-GALightState" style="width:20px;">GA</label>
|
|
594
|
+
<input type="text" id="node-input-GALightState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
357
595
|
|
|
358
|
-
|
|
359
|
-
|
|
596
|
+
<label for="node-input-dptLightState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
597
|
+
<select id="node-input-dptLightState" style="width:140px;"></select>
|
|
360
598
|
|
|
599
|
+
<label for="node-input-nameLightState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
600
|
+
<input type="text" id="node-input-nameLightState" style="width:190px;margin-left: 5px; text-align: left;">
|
|
601
|
+
</div>
|
|
602
|
+
</p>
|
|
603
|
+
</div>
|
|
604
|
+
<div id="tabs-2">
|
|
605
|
+
<p>
|
|
606
|
+
<div class="form-row">
|
|
607
|
+
<label for="node-input-nameLightDIM" style="width:110px;"><i class="fa fa-play-circle-o"></i> Control</label>
|
|
361
608
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
$("#DivEnableDayNightLighting").show()
|
|
365
|
-
} else {
|
|
366
|
-
$("#DivEnableDayNightLighting").hide()
|
|
367
|
-
}
|
|
609
|
+
<label for="node-input-GALightDIM" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
610
|
+
<input type="text" id="node-input-GALightDIM" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
368
611
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
$("#DivEnableDayNightLighting").show()
|
|
372
|
-
} else {
|
|
373
|
-
$("#DivEnableDayNightLighting").hide()
|
|
374
|
-
}
|
|
375
|
-
})
|
|
612
|
+
<label for="node-input-dptLightDIM" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
613
|
+
<select id="node-input-dptLightDIM" style="width:140px;"></select>
|
|
376
614
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
$("#node-input-colorAtSwitchOnDayTime").val('')
|
|
383
|
-
}
|
|
615
|
+
<label for="node-input-nameLightDIM" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
616
|
+
<input type="text" id="node-input-nameLightDIM" style="width:190px;margin-left: 5px; text-align: left;">
|
|
617
|
+
</div>
|
|
618
|
+
<div class="form-row">
|
|
619
|
+
<label for="node-input-nameLightBrightness" style="width:110px;"><i class="fa fa-play-circle-o"></i> Control %</label>
|
|
384
620
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
$("#divcolorAtSwitchOnNightTime").show()
|
|
388
|
-
if ($("#node-input-colorAtSwitchOnDayTime").val() === '') $("#node-input-colorAtSwitchOnDayTime").val('{ "red": 255, "green": 255, "blue": 255 }')
|
|
389
|
-
} else {
|
|
390
|
-
$("#divcolorAtSwitchOnNightTime").hide()
|
|
391
|
-
$("#node-input-colorAtSwitchOnDayTime").val('')
|
|
392
|
-
}
|
|
393
|
-
})
|
|
394
|
-
|
|
395
|
-
// Autocomplete suggestion with HUE Lights
|
|
396
|
-
$("#node-input-name").autocomplete({
|
|
397
|
-
minLength: 1,
|
|
398
|
-
source: function (request, response) {
|
|
399
|
-
$.getJSON("KNXUltimateGetResourcesHUE?rtype=light&nodeID=" + oNodeServerHue.id, (data) => {
|
|
400
|
-
response($.map(data.devices, function (value, key) {
|
|
401
|
-
//alert(JSON.stringify(value) + " "+ key)
|
|
402
|
-
var sSearch = (value.name);
|
|
403
|
-
if (fullSearch(sSearch, request.term)) {
|
|
404
|
-
return {
|
|
405
|
-
hueDevice: value.id,
|
|
406
|
-
value: value.name
|
|
407
|
-
}
|
|
408
|
-
} else {
|
|
409
|
-
return null;
|
|
410
|
-
}
|
|
411
|
-
}));
|
|
412
|
-
});
|
|
413
|
-
}, select: function (event, ui) {
|
|
414
|
-
// Distinguish between group of lights an single light.
|
|
415
|
-
if (ui.item.value.toLowerCase().startsWith('grouped_light')) {
|
|
416
|
-
$('#node-input-hueDevice').val(ui.item.hueDevice + "#grouped_light");
|
|
417
|
-
$("#getColorAtSwitchOnDayTimeButton").hide();
|
|
418
|
-
$("#getColorAtSwitchOnNightTimeButton").hide();
|
|
419
|
-
} else {
|
|
420
|
-
$('#node-input-hueDevice').val(ui.item.hueDevice + "#light");
|
|
421
|
-
$("#getColorAtSwitchOnDayTimeButton").show();
|
|
422
|
-
$("#getColorAtSwitchOnNightTimeButton").show();
|
|
423
|
-
}
|
|
424
|
-
$('#tabs').show();
|
|
425
|
-
}
|
|
426
|
-
});
|
|
621
|
+
<label for="node-input-GALightBrightness" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
622
|
+
<input type="text" id="node-input-GALightBrightness" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
427
623
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
data.devices.forEach(element => {
|
|
431
|
-
if (element.id === this.hueDevice.split('#')[0] && element.deviceObject !== undefined) {
|
|
432
|
-
// Check dimming
|
|
433
|
-
if (element.deviceObject.dimming === undefined) {
|
|
434
|
-
$('#tabs').tabs("disable", "#tabs-2");
|
|
435
|
-
$('#divColorsAtSwitchOn').hide()
|
|
436
|
-
$('#divColorCycle').hide()
|
|
437
|
-
}
|
|
438
|
-
// Check color
|
|
439
|
-
if (element.deviceObject.color_temperature === undefined) $('#tabs').tabs("disable", "#tabs-3");
|
|
440
|
-
if (element.deviceObject.color === undefined) {
|
|
441
|
-
$('#tabs').tabs("disable", "#tabs-4");
|
|
442
|
-
$('#divColorsAtSwitchOn').hide()
|
|
443
|
-
$('#divColorCycle').hide()
|
|
444
|
-
}
|
|
445
|
-
// Check if grouped, to hide/show the "Get current" buttons
|
|
446
|
-
if (element.deviceObject.type === "grouped_light") {
|
|
447
|
-
$("#getColorAtSwitchOnDayTimeButton").hide();
|
|
448
|
-
$("#getColorAtSwitchOnNightTimeButton").hide();
|
|
449
|
-
} else {
|
|
450
|
-
$("#getColorAtSwitchOnDayTimeButton").show();
|
|
451
|
-
$("#getColorAtSwitchOnNightTimeButton").show();
|
|
452
|
-
}
|
|
453
|
-
return
|
|
454
|
-
}
|
|
455
|
-
});
|
|
456
|
-
});
|
|
624
|
+
<label for="node-input-dptLightBrightness" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
625
|
+
<select id="node-input-dptLightBrightness" style="width:140px;"></select>
|
|
457
626
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
$.getJSON("knxUltimateGetHueColor?id=" + $('#node-input-hueDevice').val().split('#')[0], (data) => {
|
|
462
|
-
$('#node-input-colorAtSwitchOnDayTime').val(data.toString());
|
|
463
|
-
$("#node-input-colorAtSwitchOnDayTime").css("background-color", "lightgreen");
|
|
464
|
-
setTimeout(() => {
|
|
465
|
-
$("#node-input-colorAtSwitchOnDayTime").css("background-color", "");
|
|
466
|
-
}, 500);
|
|
467
|
-
$("#getColorAtSwitchOnDayTimeButton").text("Get current")
|
|
468
|
-
});
|
|
469
|
-
});
|
|
470
|
-
$("#getColorAtSwitchOnNightTimeButton").on("click", function () {
|
|
471
|
-
// Get the HUE capabilities to enable/disable UI parts
|
|
472
|
-
$("#getColorAtSwitchOnNightTimeButton").text("Wait...")
|
|
473
|
-
$.getJSON("knxUltimateGetHueColor?id=" + $('#node-input-hueDevice').val().split('#')[0], (data) => {
|
|
474
|
-
$('#node-input-colorAtSwitchOnNightTime').val(data.toString());
|
|
475
|
-
$("#node-input-colorAtSwitchOnNightTime").css("background-color", "lightgreen");
|
|
476
|
-
setTimeout(() => {
|
|
477
|
-
$("#node-input-colorAtSwitchOnNightTime").css("background-color", "");
|
|
478
|
-
}, 500);
|
|
479
|
-
$("#getColorAtSwitchOnNightTimeButton").text("Get current")
|
|
480
|
-
});
|
|
481
|
-
});
|
|
627
|
+
<label for="node-input-nameLightBrightness" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
628
|
+
<input type="text" id="node-input-nameLightBrightness" style="width:190px;margin-left: 5px; text-align: left;">
|
|
629
|
+
</div>
|
|
482
630
|
|
|
483
|
-
|
|
631
|
+
<div class="form-row">
|
|
632
|
+
<label for="node-input-nameLightBrightnessState" style="width:110px;"><i class="fa fa-play-circle-o"></i> Status</label>
|
|
484
633
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
RED.sidebar.removeTab("tabNRColor");
|
|
488
|
-
RED.sidebar.show("help")
|
|
489
|
-
},
|
|
490
|
-
oneditcancel: function () {
|
|
491
|
-
RED.sidebar.removeTab("tabNRColor");
|
|
492
|
-
RED.sidebar.show("help")
|
|
493
|
-
}
|
|
494
|
-
})
|
|
634
|
+
<label for="node-input-GALightBrightnessState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
635
|
+
<input type="text" id="node-input-GALightBrightnessState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
495
636
|
|
|
496
|
-
</
|
|
497
|
-
<
|
|
498
|
-
<script src="https://cdn.jsdelivr.net/npm/@jaames/iro@5"></script>
|
|
499
|
-
<!-- <script src="https://wzrd.in/standalone/copy-to-clipboard@latest" async></script> -->
|
|
637
|
+
<label for="node-input-dptLightBrightnessState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
638
|
+
<select id="node-input-dptLightBrightnessState" style="width:140px;"></select>
|
|
500
639
|
|
|
501
|
-
<
|
|
640
|
+
<label for="node-input-nameLightBrightnessState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
641
|
+
<input type="text" id="node-input-nameLightBrightnessState" style="width:190px;margin-left: 5px; text-align: left;">
|
|
642
|
+
</div>
|
|
643
|
+
</p>
|
|
644
|
+
</div>
|
|
645
|
+
<div id="tabs-3">
|
|
646
|
+
<p>
|
|
647
|
+
<div class="form-row">
|
|
648
|
+
<label for="node-input-nameLightHSV" style="width:110px;"><i class="fa fa-play-circle-o"></i> Control</label>
|
|
502
649
|
|
|
650
|
+
<label for="node-input-GALightHSV" style="width:20px;">GA</label>
|
|
651
|
+
<input type="text" id="node-input-GALightHSV" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
503
652
|
|
|
504
|
-
<
|
|
505
|
-
|
|
506
|
-
 
|
|
507
|
-
 <i class="fa fa-youtube"></i></span> <a target="_blank" href="https://youtu.be/jjEUI1J8bkA"><u>Youtube sample</u></a>
|
|
508
|
-
<br />
|
|
509
|
-
<br />
|
|
510
|
-
<p align="center">
|
|
511
|
-
<i class="fa-regular fa-lightbulb fa-bounce fa-8x"></i>
|
|
512
|
-
</p>
|
|
513
|
-
<br />
|
|
514
|
-
<label for="node-input-server" >
|
|
515
|
-
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAKnRFWHRDcmVhdGlvbiBUaW1lAEZyIDYgQXVnIDIwMTAgMjE6NTI6MTkgKzAxMDD84aS8AAAAB3RJTUUH3gYYCicNV+4WIQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAACUSURBVHjaY2CgFZg5c+Z/ZEyWAZ8+f/6/ZsWs/xoamqMGkGrA6Wla/1+fVARjEBuGsSoGmY4eZSCNL59d/g8DIDbIAHR14OgFGQByKjIGKX5+6/T///8gGMQGiV1+/B0Fg70GIkD+RMYgxf/O5/7//2MSmAZhkBi6OrgB6Bg5DGB4ajr3f2xqsYYLSDE2THJUDg0AAAqyDVd4tp4YAAAAAElFTkSuQmCC"></img>
|
|
516
|
-
KNX GW
|
|
517
|
-
</label>
|
|
518
|
-
<input type="text" id="node-input-server" />
|
|
519
|
-
</div>
|
|
653
|
+
<label for="node-input-dptLightHSV" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
654
|
+
<select id="node-input-dptLightHSV" style="width:140px;"></select>
|
|
520
655
|
|
|
521
|
-
<
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
<input type="text" id="node-input-serverHue" />
|
|
527
|
-
</div>
|
|
656
|
+
<label for="node-input-nameLightHSV" style="width:50px; margin-left: 0px; text-align: right;">Name</label>
|
|
657
|
+
<input type="text" id="node-input-nameLightHSV" style="width:190px;margin-left: 5px; text-align: left;">
|
|
658
|
+
</div>
|
|
659
|
+
<div class="form-row">
|
|
660
|
+
<label for="node-input-nameLightHSVPercentage" style="width:110px;"><i class="fa fa-play-circle-o"></i> Control %</label>
|
|
528
661
|
|
|
529
|
-
<
|
|
530
|
-
<
|
|
531
|
-
|
|
532
|
-
</p>
|
|
533
|
-
|
|
534
|
-
<div class="form-row">
|
|
535
|
-
<label for="node-input-hueDevice" >
|
|
536
|
-
<i class="fa fa-play-circle"></i> Name</label>
|
|
537
|
-
<input type="text" id="node-input-name" placeholder="Enter your hue device name"/>
|
|
538
|
-
<input type="hidden" id="node-input-hueDevice"/>
|
|
539
|
-
</div>
|
|
662
|
+
<label for="node-input-GALightHSVPercentage" style="width:20px;">GA</label>
|
|
663
|
+
<input type="text" id="node-input-GALightHSVPercentage" placeholder="Ex: 1/1/1"
|
|
664
|
+
style="width:70px;margin-left: 5px; text-align: left;">
|
|
540
665
|
|
|
541
|
-
<
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
<div id="tabs" style="width:680px" hidden>
|
|
545
|
-
<ul>
|
|
546
|
-
<li><a href="#tabs-1">Switching</a></li>
|
|
547
|
-
<li><a href="#tabs-2">Dim/Brightness</a></li>
|
|
548
|
-
<li><a href="#tabs-3">Tunable white</a></li>
|
|
549
|
-
<li><a href="#tabs-4">Colors</a></li>
|
|
550
|
-
<li><a href="#tabs-5">Effects</a></li>
|
|
551
|
-
<li><a href="#tabs-6">Behaviour</a></li>
|
|
552
|
-
</ul>
|
|
553
|
-
<div id="tabs-1">
|
|
554
|
-
<p>
|
|
555
|
-
<div class="form-row">
|
|
556
|
-
<label for="node-input-nameLightSwitch" style="width:110px;"><i class="fa fa-play-circle-o"></i> <span data-i18n="knxUltimateHueLight.node-input-nameLightSwitch"></span></label>
|
|
557
|
-
|
|
558
|
-
<label for="node-input-GALightSwitch" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightSwitch"></span></label>
|
|
559
|
-
<input type="text" id="node-input-GALightSwitch" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
560
|
-
|
|
561
|
-
<label for="node-input-dptLightSwitch" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
562
|
-
<select id="node-input-dptLightSwitch" style="width:140px;"></select>
|
|
563
|
-
|
|
564
|
-
<label for="node-input-nameLightSwitch" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
565
|
-
<input type="text" id="node-input-nameLightSwitch" style="width:190px;margin-left: 5px; text-align: left;">
|
|
566
|
-
</div>
|
|
567
|
-
<div class="form-row">
|
|
568
|
-
<label for="node-input-nameLightState" style="width:110px;"><i class="fa fa-play-circle-o"></i> Status</label>
|
|
666
|
+
<label for="node-input-dptLightHSVPercentage" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
667
|
+
<select id="node-input-dptLightHSVPercentage" style="width:140px;"></select>
|
|
569
668
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
<label for="node-input-nameLightState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
577
|
-
<input type="text" id="node-input-nameLightState" style="width:190px;margin-left: 5px; text-align: left;">
|
|
578
|
-
</div>
|
|
579
|
-
</p>
|
|
580
|
-
</div>
|
|
581
|
-
<div id="tabs-2">
|
|
582
|
-
<p>
|
|
583
|
-
<div class="form-row">
|
|
584
|
-
<label for="node-input-nameLightDIM" style="width:110px;"><i class="fa fa-play-circle-o"></i> Dimming</label>
|
|
669
|
+
<label for="node-input-nameLightHSVPercentage" style="width:50px; margin-left: 0px; text-align: right;">Name</label>
|
|
670
|
+
<input type="text" id="node-input-nameLightHSVPercentage" style="width:190px;margin-left: 5px; text-align: left;">
|
|
671
|
+
</div>
|
|
672
|
+
<div class="form-row">
|
|
673
|
+
<label for="node-input-nameLightHSVState" style="width:110px;"><i class="fa fa-play-circle-o"></i> Status</label>
|
|
585
674
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
<label for="node-input-dptLightDIM" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
590
|
-
<select id="node-input-dptLightDIM" style="width:140px;"></select>
|
|
591
|
-
|
|
592
|
-
<label for="node-input-nameLightDIM" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
593
|
-
<input type="text" id="node-input-nameLightDIM" style="width:190px;margin-left: 5px; text-align: left;">
|
|
594
|
-
</div>
|
|
595
|
-
<div class="form-row">
|
|
596
|
-
<label for="node-input-nameLightBrightness" style="width:110px;"><i class="fa fa-play-circle-o"></i> Percentage</label>
|
|
675
|
+
<label for="node-input-GALightHSVState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
676
|
+
<input type="text" id="node-input-GALightHSVState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
597
677
|
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
<label for="node-input-dptLightBrightness" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
602
|
-
<select id="node-input-dptLightBrightness" style="width:140px;"></select>
|
|
603
|
-
|
|
604
|
-
<label for="node-input-nameLightBrightness" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
605
|
-
<input type="text" id="node-input-nameLightBrightness" style="width:190px;margin-left: 5px; text-align: left;">
|
|
606
|
-
</div>
|
|
607
|
-
|
|
608
|
-
<div class="form-row">
|
|
609
|
-
<label for="node-input-nameLightBrightnessState" style="width:110px;"><i class="fa fa-play-circle-o"></i> Status</label>
|
|
678
|
+
<label for="node-input-dptLightHSVState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
679
|
+
<select id="node-input-dptLightHSVState" style="width:140px;"></select>
|
|
610
680
|
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
681
|
+
<label for="node-input-nameLightHSVState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
682
|
+
<input type="text" id="node-input-nameLightHSVState" style="width:190px;margin-left: 5px; text-align: left;">
|
|
683
|
+
</div>
|
|
684
|
+
</p>
|
|
685
|
+
</div>
|
|
686
|
+
<div id="tabs-4">
|
|
687
|
+
<p>
|
|
688
|
+
<div class="form-row">
|
|
689
|
+
<label for="node-input-nameLightColor" style="width:110px;"><i class="fa fa-play-circle-o"></i> Control</label>
|
|
690
|
+
|
|
691
|
+
<label for="node-input-GALightColor" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
692
|
+
<input type="text" id="node-input-GALightColor" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
693
|
+
|
|
694
|
+
<label for="node-input-dptLightColor" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
695
|
+
<select id="node-input-dptLightColor" style="width:140px;"></select>
|
|
696
|
+
|
|
697
|
+
<label for="node-input-nameLightColor" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
698
|
+
<input type="text" id="node-input-nameLightColor" style="width:190px;margin-left: 5px; text-align: left;">
|
|
699
|
+
</div>
|
|
700
|
+
<div class="form-row">
|
|
701
|
+
<label for="node-input-nameLightColorState" style="width:110px;"><i class="fa fa-play-circle-o"></i> Status</label>
|
|
702
|
+
|
|
703
|
+
<label for="node-input-GALightColorState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
704
|
+
<input type="text" id="node-input-GALightColorState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
705
|
+
|
|
706
|
+
<label for="node-input-dptLightColorState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
707
|
+
<select id="node-input-dptLightColorState" style="width:140px;"></select>
|
|
708
|
+
|
|
709
|
+
<label for="node-input-nameLightColorState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
710
|
+
<input type="text" id="node-input-nameLightColorState" style="width:190px;margin-left: 5px; text-align: left;">
|
|
711
|
+
</div>
|
|
712
|
+
</p>
|
|
713
|
+
</div>
|
|
714
|
+
<div id="tabs-5">
|
|
715
|
+
<p>
|
|
716
|
+
<div class="form-row">
|
|
717
|
+
<label for="node-input-nameLightBlink" style="width:110px;"><i class="fa fa-play-circle-o"></i> Blink</label>
|
|
718
|
+
|
|
719
|
+
<label for="node-input-GALightBlink" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
720
|
+
<input type="text" id="node-input-GALightBlink" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
721
|
+
|
|
722
|
+
<label for="node-input-dptLightBlink" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
723
|
+
<select id="node-input-dptLightBlink" style="width:140px;"></select>
|
|
724
|
+
|
|
725
|
+
<label for="node-input-nameLightBlink" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
726
|
+
<input type="text" id="node-input-nameLightBlink" style="width:190px;margin-left: 5px; text-align: left;">
|
|
727
|
+
</div>
|
|
728
|
+
|
|
729
|
+
<div id="divColorCycle">
|
|
730
|
+
<div class="form-row">
|
|
731
|
+
<label for="node-input-nameLightColorCycle" style="width:110px;"><i class="fa fa-play-circle-o"></i> Color Cycle</label>
|
|
732
|
+
|
|
733
|
+
<label for="node-input-GALightColorCycle" style="width:20px;">GA</label>
|
|
734
|
+
<input type="text" id="node-input-GALightColorCycle" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
735
|
+
|
|
736
|
+
<label for="node-input-dptLightColorCycle" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
737
|
+
<select id="node-input-dptLightColorCycle" style="width:140px;"></select>
|
|
738
|
+
|
|
739
|
+
<label for="node-input-nameLightColorCycle" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
740
|
+
<input type="text" id="node-input-nameLightColorCycle" style="width:190px;margin-left: 5px; text-align: left;">
|
|
741
|
+
</div>
|
|
742
|
+
</div>
|
|
743
|
+
</p>
|
|
744
|
+
</div>
|
|
745
|
+
<div id="tabs-6">
|
|
664
746
|
<p>
|
|
747
|
+
<div class="form-row">
|
|
748
|
+
<label for="node-input-updateKNXBrightnessStatusOnHUEOnOff" style="width:260px;">
|
|
749
|
+
<i class="fa fa-tag"></i> KNX Brightness Status
|
|
750
|
+
</label>
|
|
751
|
+
<select id="node-input-updateKNXBrightnessStatusOnHUEOnOff">
|
|
752
|
+
<option value="onhueoff">When HUE light is Off, send 0% (Default KNX behaviour)</option>
|
|
753
|
+
<option value="no">Leave as is (default HUE behaviour)</option>
|
|
754
|
+
</select>
|
|
755
|
+
</div>
|
|
756
|
+
<div class="form-row">
|
|
757
|
+
<label for="node-input-specifySwitchOnBrightness" style="width:260px;">
|
|
758
|
+
<i class="fa fa-tag"></i> Specify switch on brightness
|
|
759
|
+
</label>
|
|
760
|
+
<select id="node-input-specifySwitchOnBrightness">
|
|
761
|
+
<option value="yes">Yes</option>
|
|
762
|
+
<option value="no">No</option>
|
|
763
|
+
</select>
|
|
764
|
+
</div>
|
|
765
|
+
|
|
766
|
+
<div class="form-row" id="divColorsAtSwitchOn">
|
|
767
|
+
<label for="node-input-colorAtSwitchOnDayTime" style="width:260px">
|
|
768
|
+
<i class="fa fa-sun-o"></i> Switch On - color/brightness
|
|
769
|
+
</label>
|
|
770
|
+
<input type="text" id="node-input-colorAtSwitchOnDayTime"
|
|
771
|
+
placeholder='For example, {"red":255, "green":255, "blue":255}' style="width:260px">
|
|
772
|
+
<button id="getColorAtSwitchOnDayTimeButton" type="button" class="red-ui-button">Get current</button>
|
|
773
|
+
</div>
|
|
774
|
+
<div id="divCCSBoxayNightLighting">
|
|
665
775
|
<div class="form-row">
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
<
|
|
675
|
-
<input type="text" id="node-input-nameLightColor" style="width:190px;margin-left: 5px; text-align: left;">
|
|
676
|
-
</div>
|
|
677
|
-
<div class="form-row">
|
|
678
|
-
<label for="node-input-nameLightColorState" style="width:110px;"><i class="fa fa-play-circle-o"></i> Status</label>
|
|
679
|
-
|
|
680
|
-
<label for="node-input-GALightColorState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
681
|
-
<input type="text" id="node-input-GALightColorState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
682
|
-
|
|
683
|
-
<label for="node-input-dptLightColorState" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
684
|
-
<select id="node-input-dptLightColorState" style="width:140px;"></select>
|
|
685
|
-
|
|
686
|
-
<label for="node-input-nameLightColorState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
687
|
-
<input type="text" id="node-input-nameLightColorState" style="width:190px;margin-left: 5px; text-align: left;">
|
|
688
|
-
</div>
|
|
689
|
-
</p>
|
|
690
|
-
</div>
|
|
691
|
-
|
|
692
|
-
<div id="tabs-5">
|
|
693
|
-
<p>
|
|
776
|
+
<label for="node-input-enableDayNightLighting" style="width:260px;">
|
|
777
|
+
<i class="fa fa-clone"></i> Night Lighting
|
|
778
|
+
</label>
|
|
779
|
+
<select id="node-input-enableDayNightLighting">
|
|
780
|
+
<option value="yes">Yes</option>
|
|
781
|
+
<option value="no">No</option>
|
|
782
|
+
</select>
|
|
783
|
+
</div>
|
|
784
|
+
<div id="divEnableDayNightLighting">
|
|
694
785
|
<div class="form-row">
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
<select id="node-input-dptLightBlink" style="width:140px;"></select>
|
|
702
|
-
|
|
703
|
-
<label for="node-input-nameLightBlink" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
704
|
-
<input type="text" id="node-input-nameLightBlink" style="width:190px;margin-left: 5px; text-align: left;">
|
|
705
|
-
</div>
|
|
706
|
-
|
|
707
|
-
<div id="divColorCycle">
|
|
708
|
-
<div class="form-row">
|
|
709
|
-
<label for="node-input-nameLightColorCycle" style="width:110px;"><i class="fa fa-play-circle-o"></i> Color Cycle</label>
|
|
710
|
-
|
|
711
|
-
<label for="node-input-GALightColorCycle" style="width:20px;">GA</label>
|
|
712
|
-
<input type="text" id="node-input-GALightColorCycle" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
713
|
-
|
|
714
|
-
<label for="node-input-dptLightColorCycle" style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
715
|
-
<select id="node-input-dptLightColorCycle" style="width:140px;"></select>
|
|
716
|
-
|
|
717
|
-
<label for="node-input-nameLightColorCycle" 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-nameLightColorCycle" style="width:190px;margin-left: 5px; text-align: left;">
|
|
719
|
-
</div>
|
|
786
|
+
<label for="node-input-colorAtSwitchOnNightTime" style="width:260px">
|
|
787
|
+
<i class="fa fa-moon-o"></i> Switch On color/brigh. at Night
|
|
788
|
+
</label>
|
|
789
|
+
<input type="text" id="node-input-colorAtSwitchOnNightTime"
|
|
790
|
+
placeholder='Example {"red":100, "green":0, "blue":50}' style="width:260px">
|
|
791
|
+
<button id="getColorAtSwitchOnNightTimeButton" type="button" class="red-ui-button">Get current</button>
|
|
720
792
|
</div>
|
|
721
|
-
</p>
|
|
722
|
-
</div>
|
|
723
|
-
<div id="tabs-6">
|
|
724
|
-
<p>
|
|
725
793
|
<div class="form-row">
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
794
|
+
<label for="node-input-nameDaylightSensor" style="width:110px;"><i class="fa fa-clock-o"></i>
|
|
795
|
+
Day/Night</label>
|
|
796
|
+
<label for="node-input-GADaylightSensor" style="width:20px;">GA</label>
|
|
797
|
+
<input type="text" id="node-input-GADaylightSensor" placeholder="Ex: 1/1/1"
|
|
798
|
+
style="width:70px;margin-left: 5px; text-align: left;">
|
|
799
|
+
|
|
800
|
+
<label for="node-input-dptDaylightSensor"
|
|
801
|
+
style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
802
|
+
<select id="node-input-dptDaylightSensor" style="width:140px;"></select>
|
|
803
|
+
|
|
804
|
+
<label for="node-input-nameDaylightSensor" style="width:50px; margin-left: 0px; text-align: right;"><span
|
|
805
|
+
data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
806
|
+
<input type="text" id="node-input-nameDaylightSensor"
|
|
807
|
+
style="width:190px;margin-left: 5px; text-align: left;">
|
|
733
808
|
</div>
|
|
734
809
|
<div class="form-row">
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
</select>
|
|
810
|
+
<label style="width:170px" for="node-input-invertDayNight">
|
|
811
|
+
<i class="fa fa-shuffle"></i> Invert day/night values
|
|
812
|
+
</label>
|
|
813
|
+
<input type="checkbox" id="node-input-invertDayNight"
|
|
814
|
+
style="display:inline-block; width:auto; vertical-align:top;" />
|
|
815
|
+
</div>
|
|
742
816
|
</div>
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
</label>
|
|
766
|
-
<input type="text" id="node-input-colorAtSwitchOnNightTime"
|
|
767
|
-
placeholder='Example {"red":100, "green":0, "blue":50}' style="width:260px">
|
|
768
|
-
<button id="getColorAtSwitchOnNightTimeButton" type="button" class="red-ui-button">Get current</button>
|
|
769
|
-
</div>
|
|
770
|
-
<div class="form-row">
|
|
771
|
-
<label for="node-input-nameDaylightSensor" style="width:110px;"><i class="fa fa-clock-o"></i>
|
|
772
|
-
Day/Night</label>
|
|
773
|
-
|
|
774
|
-
<label for="node-input-GADaylightSensor" style="width:20px;">GA</label>
|
|
775
|
-
<input type="text" id="node-input-GADaylightSensor" placeholder="Ex: 1/1/1"
|
|
776
|
-
style="width:70px;margin-left: 5px; text-align: left;">
|
|
777
|
-
|
|
778
|
-
<label for="node-input-dptDaylightSensor"
|
|
779
|
-
style="width:40px; margin-left: 0px; text-align: right;">DPT</label>
|
|
780
|
-
<select id="node-input-dptDaylightSensor" style="width:140px;"></select>
|
|
781
|
-
|
|
782
|
-
<label for="node-input-nameDaylightSensor" style="width:50px; margin-left: 0px; text-align: right;"><span
|
|
783
|
-
data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
784
|
-
<input type="text" id="node-input-nameDaylightSensor"
|
|
785
|
-
style="width:190px;margin-left: 5px; text-align: left;">
|
|
786
|
-
</div>
|
|
787
|
-
<div class="form-row">
|
|
788
|
-
<label style="width:170px" for="node-input-invertDayNight">
|
|
789
|
-
<i class="fa fa-shuffle"></i> Invert day/night values
|
|
790
|
-
</label>
|
|
791
|
-
<input type="checkbox" id="node-input-invertDayNight"
|
|
792
|
-
style="display:inline-block; width:auto; vertical-align:top;" />
|
|
793
|
-
|
|
794
|
-
</div>
|
|
795
|
-
</div>
|
|
796
|
-
</div>
|
|
817
|
+
</div>
|
|
818
|
+
<br />
|
|
819
|
+
<div class="form-row">
|
|
820
|
+
<label for="node-input-dimSpeed" style="width:260px">
|
|
821
|
+
<i class="fa fa-bolt"></i> Dim Speed (ms)
|
|
822
|
+
</label>
|
|
823
|
+
<input type="text" id="node-input-dimSpeed" placeholder='Default is 5000' style="width:260px">
|
|
824
|
+
</div>
|
|
825
|
+
<div class="form-row">
|
|
826
|
+
<label for="node-input-minDimLevelLight" style="width:260px;">
|
|
827
|
+
<i class="fa fa-clone"></i> Min Dim Brightness
|
|
828
|
+
</label>
|
|
829
|
+
<select id="node-input-minDimLevelLight">
|
|
830
|
+
<option value="useHueLightLevel">Use minimum brightness specified in the HUE light</option>
|
|
831
|
+
</select>
|
|
832
|
+
</div>
|
|
833
|
+
<div class="form-row">
|
|
834
|
+
<label for="node-input-maxDimLevelLight" style="width:260px;">
|
|
835
|
+
<i class="fa fa-clone"></i> Max Dim Brightness
|
|
836
|
+
</label>
|
|
837
|
+
<select id="node-input-maxDimLevelLight"></select>
|
|
838
|
+
</div>
|
|
797
839
|
</p>
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
<br/>
|
|
840
|
+
</div>
|
|
841
|
+
|
|
842
|
+
<br/>
|
|
801
843
|
</script>
|
|
802
844
|
|
|
803
845
|
<script type="text/markdown" data-help-name="knxUltimateHueLight">
|
|
804
|
-
<p>This node lets you control your Philips HUE light and grouped lights and also gets the states of this lights, to be sent to the KNX bus.</p>
|
|
846
|
+
<p>This node lets you control your Philips HUE light and grouped lights and also gets the states of this lights, to be sent to the KNX bus.</p>
|
|
847
|
+
|
|
848
|
+
**General**
|
|
849
|
+
|Property|Description|
|
|
850
|
+
|--|--|
|
|
851
|
+
| KNX GW | Select the KNX gateway to be used |
|
|
852
|
+
| HUE Bridge | Select the HUE Bridge to be used |
|
|
853
|
+
| Name | HUE light or HUE grouped light to be used. The avaiable lights and groups start showing up while you're typing.|
|
|
854
|
+
|
|
855
|
+
<br/>
|
|
856
|
+
|
|
857
|
+
**OPTIONS**
|
|
805
858
|
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|--|--|
|
|
809
|
-
| KNX GW | Select the KNX gateway to be used |
|
|
810
|
-
| HUE Bridge | Select the HUE Bridge to be used |
|
|
811
|
-
| Name | HUE light or HUE grouped light to be used. The avaiable lights and groups start showing up while you're typing.|
|
|
859
|
+
Here you can choose the KNX addresses to be linked to the avaiable HUE light commands/states.<br/>
|
|
860
|
+
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.
|
|
812
861
|
|
|
813
|
-
|
|
862
|
+
**Switching**
|
|
863
|
+
|Property|Description|
|
|
864
|
+
|--|--|
|
|
865
|
+
| Control | This GA is used to turn on/off the HUE light via a boolean KNX value true/false|
|
|
866
|
+
| Status | Link this to the light's switch status group address|
|
|
814
867
|
|
|
815
|
-
|
|
868
|
+
<br/>
|
|
816
869
|
|
|
817
|
-
|
|
818
|
-
|
|
870
|
+
**Dim/Brightness**
|
|
871
|
+
|Property|Description|
|
|
872
|
+
|--|--|
|
|
873
|
+
| Control | Relative DIM the HUE light. You can set the dimming speed in the **_Behaviour_** tab. |
|
|
874
|
+
| Control % | Changes the absolute HUE light's brightness (0-100%)|
|
|
875
|
+
| Status| Link this to the light's brightness status group address |
|
|
819
876
|
|
|
820
|
-
|
|
821
|
-
|Property|Description|
|
|
822
|
-
|--|--|
|
|
823
|
-
| Switch | This GA is used to turn on/off the HUE light via a boolean KNX value true/false|
|
|
824
|
-
| Status | Link this to the light's switch status group address|
|
|
877
|
+
<br/>
|
|
825
878
|
|
|
826
|
-
|
|
879
|
+
**Tunable white**
|
|
880
|
+
|Property|Description|
|
|
881
|
+
|--|--|
|
|
882
|
+
| Control| Changes the HUE light's white temperature, using DPT 3.007 dimming. You can set the dimming speed in the **_Behaviour_** tab.|
|
|
883
|
+
| Control % | Changes the HUE light's white temperature, using the DPT 5.001. A value of 0 is full warm, a value of 100 is full cold.|
|
|
884
|
+
| Status | Link this to the light temperature status group address. Datapoint is 5.001 absolute value. 0 is full warm, 100 is full cold.|
|
|
827
885
|
|
|
828
|
-
|
|
829
|
-
|Property|Description|
|
|
830
|
-
|--|--|
|
|
831
|
-
| Dimming | Relative DIM the HUE light |
|
|
832
|
-
| Percentage | Changes the absolute HUE light's brightness (0-100%)|
|
|
833
|
-
| Status| Link this to the light's brightness status group address |
|
|
886
|
+
<br/>
|
|
834
887
|
|
|
835
|
-
|
|
888
|
+
**Colors**
|
|
889
|
+
|Property|Description|
|
|
890
|
+
|--|--|
|
|
891
|
+
| Control | This command is used to change the HUE light's color. Accepted datapoint is RGB triplet (r,g,b). The node handles the gamut color correction. As soon as you send a color KNX telegran, the light turns on and sets color and brightness, derived from the brightness human perception. As soon as you send a KNX telegram with r,g,b set to zero, the light turns off |
|
|
892
|
+
| Status | Link this to the light's color status group address. Accepted datapoint is RGB triplet (r,g,b)|
|
|
836
893
|
|
|
837
|
-
|
|
838
|
-
|Property|Description|
|
|
839
|
-
|--|--|
|
|
840
|
-
| Dimming| Changes the HUE light's white temperature, using DPT 3.007 dimming.|
|
|
841
|
-
| Percentage | Changes the HUE light's white temperature, using the DPT 5.001. A value of 0 is full warm, a value of 100 is full cold.|
|
|
842
|
-
| Status | Link this to the light temperature status group address. Datapoint is 5.001 absolute value. 0 is full warm, 100 is full cold.|
|
|
894
|
+
<br/>
|
|
843
895
|
|
|
844
|
-
|
|
896
|
+
**Effects**
|
|
897
|
+
|Property|Description|
|
|
898
|
+
|--|--|
|
|
899
|
+
| Blink | _true_ Blink the light, _false_ Stop blinking. Blinks the light on and off. Useful for signalling. Works with all HUE lights. |
|
|
900
|
+
| Color Cycle | _true_ start cycle, _false_ Stop cycle. Randomly changes the HUE light's color at regular interval. Works with all HUE lights having color capabilities. The color effect will start 10 seconds after set. |
|
|
845
901
|
|
|
846
|
-
|
|
847
|
-
|Property|Description|
|
|
848
|
-
|--|--|
|
|
849
|
-
| Color | This command is used to change the HUE light's color. Accepted datapoint is RGB triplet (r,g,b). The node handles the gamut color correction. As soon as you send a color KNX telegran, the light turns on and sets color and brightness, derived from the brightness human perception. As soon as you send a KNX telegram with r,g,b set to zero, the light turns off |
|
|
850
|
-
| Status | Link this to the light's color status group address. Accepted datapoint is RGB triplet (r,g,b)|
|
|
902
|
+
<br/>
|
|
851
903
|
|
|
852
|
-
|
|
904
|
+
**Behaviour**
|
|
853
905
|
|
|
854
|
-
|
|
855
|
-
|
|
|
856
|
-
|
|
857
|
-
|
|
|
858
|
-
|
|
|
906
|
+
| Property | Description |
|
|
907
|
+
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
908
|
+
| KNX Brightness Status | Updates the KNX brightness group address whenever the HUE lamp is switched ON/OFF. The options are `When HUE light is Off, send 0% (Default KNX behaviour)` and `Leave as is (default HUE behaviour)` |
|
|
909
|
+
| Specify switch on brightness | It enables the brightness value to follow the on/off status of the light. If you change the HUE brightness value to 0% (from the HUE App), an "off" telegram is also sent to the KNX bus; if you set it other than 0%, an "on" telegram is also sent to the KNX bus. This is valid also vice-versa: if you change the brightness via KNX bus, the HUE on/off value is also sent to the lamp. If you set it to **No**, the previous HUE light brightness value is retained. Default value is **Yes**. |
|
|
910
|
+
| Switch On - color/brightness | You can choose the color/brightness of your light, at switch on. Set it as JSON object, for example **{ "red": 255, "green": 255, "blue": 255 }** |
|
|
911
|
+
| Night Lighting | It allows to set a particular light color/brightness at nighttime. If **checked**, a further set of option shows up and the light changes the behaviour based on these options, everytime you switch the light _on_. |
|
|
912
|
+
| Switch On - color/brightness at Nighttime | You can choose the color/brightness of your light, at switch on, on night time. Set it as JSON object. Default value if you leave blank is **{ "red": 100, "green": 0, "blue": 0 }** |
|
|
913
|
+
| Day/Night | Select the group address used to set the day/night behaviour. The group address value is _true_ if daytime, _false_ if nighttime. |
|
|
914
|
+
| Invert day/night values | Invert the values of _Day/Night_ group address. Default value is **unchecked**. |
|
|
915
|
+
| Dim Speed (ms) | The dimming speed, in Milliseconds. This applies to the **light** and also to the **tunable white** dimming datapoints. It' calculated from 0% to 100%. |
|
|
916
|
+
| Min Dim brightness | Tha Minimum brightness that the lamp can reach. For example, if you are dimming the light down, the light will stop dimming at the specified brightness %. |
|
|
917
|
+
| Max Dim brightness | Tha Maximum brightness that the lamp can reach. For example, if you are dimming the light up, the light will stop dimming at the specified brightness %. |
|
|
859
918
|
|
|
860
|
-
|
|
919
|
+
### Note
|
|
861
920
|
|
|
862
|
-
**
|
|
863
|
-
|
|
864
|
-
|Property|Description|
|
|
865
|
-
|--|--|
|
|
866
|
-
| KNX Brightness Status | Updates the KNX brightness group address whenever the HUE lamp is switched ON/OFF. The options are `When HUE light is Off, send 0% (Default KNX behaviour)` and `Leave as is (default HUE behaviour)` |
|
|
867
|
-
| Specify switch on brightness | It enables the brightness value to follow the on/off status of the light. If you change the HUE brightness value to 0% (from the HUE App), an "off" telegram is also sent to the KNX bus; if you set it other than 0%, an "on" telegram is also sent to the KNX bus. This is valid also vice-versa: if you change the brightness via KNX bus, the HUE on/off value is also sent to the lamp. If you set it to **No**, the previous HUE light brightness value is retained. Default value is **Yes**. |
|
|
868
|
-
| Switch On - color/brightness | You can choose the color/brightness of your light, at switch on. Set it as JSON object, for example **{ "red": 255, "green": 255, "blue": 255 }** |
|
|
869
|
-
| Night Lighting | It allows to set a particular light color/brightness at nighttime. If **checked**, a further set of option shows up and the light changes the behaviour based on these options, everytime you switch the light *on*. |
|
|
870
|
-
| Switch On - color/brightness at Nighttime | You can choose the color/brightness of your light, at switch on, on night time. Set it as JSON object. Default value if you leave blank is **{ "red": 100, "green": 0, "blue": 0 }** |
|
|
871
|
-
| Day/Night | Select the group address used to set the day/night behaviour. The group address value is *true* if daytime, *false* if nighttime. |
|
|
872
|
-
| Invert day/night values | Invert the values of *Day/Night* group address. Default value is **unchecked**.|
|
|
921
|
+
The Dimming function works in **KNX mode `start` and `stop`**. To start dimming, send only one "start" KNX telegram. To stop dimming, send a "stop" KNX telegram. Please **remember that**, when you set your wall swiches properties.
|
|
873
922
|
|
|
874
|
-
<br/>
|
|
923
|
+
<br/>
|
|
875
924
|
|
|
876
|
-
[Find it useful?](https://www.paypal.me/techtoday)
|
|
925
|
+
[Find it useful?](https://www.paypal.me/techtoday)
|
|
877
926
|
|
|
878
|
-
<br/>
|
|
927
|
+
<br/>
|
|
879
928
|
</script>
|