node-red-contrib-knx-ultimate 2.0.0 → 2.0.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/CHANGELOG.md +9 -0
- package/KNXEngine/dptlib/index.js +1 -1
- package/KNXUltimate.code-workspace +11 -1
- package/README.md +1 -1
- package/img/hue.png +0 -0
- package/img/hueButton.png +0 -0
- package/img/hueLight.png +0 -0
- package/img/knx.png +0 -0
- package/nodes/hue-config.js +20 -6
- package/nodes/knxUltimateHueButton.html +586 -0
- package/nodes/knxUltimateHueButton.js +159 -0
- package/nodes/knxUltimateHueLight.html +363 -55
- package/nodes/knxUltimateHueLight.js +70 -13
- package/nodes/locales/en-US/knxUltimateHueLight.json +3 -3
- package/nodes/utils/hueColorConverter.js +237 -0
- package/nodes/utils/hueUtils.js +37 -21
- package/package.json +6 -4
- package/nodes/locales/en-US/knxUltimateHueLight.html +0 -10
- /package/nodes/locales/{de → de-disabled}/hue-config.html +0 -0
- /package/nodes/locales/{de → de-disabled}/hue-config.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimate-config.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimate-config.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimate.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimate.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateAlerter.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateAlerter.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateGlobalContext.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateGlobalContext.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateHueLight.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateHueLight.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateLoadControl.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateLoadControl.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateLogger.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateLogger.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateSceneController.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateSceneController.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateViewer.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateViewer.json +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateWatchDog.html +0 -0
- /package/nodes/locales/{de → de-disabled}/knxUltimateWatchDog.json +0 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
//buttonState: {value: true},
|
|
7
7
|
server: { type: "knxUltimate-config", required: true },
|
|
8
8
|
serverHue: { type: "hue-config", required: true },
|
|
9
|
-
name: { value: "Hue Light" },
|
|
9
|
+
name: { value: "Hue Light (beta)" },
|
|
10
10
|
|
|
11
11
|
nameLightSwitch: { value: "" },
|
|
12
12
|
GALightSwitch: { value: "" },
|
|
@@ -20,7 +20,23 @@
|
|
|
20
20
|
GALightDIM: { value: "" },
|
|
21
21
|
dptLightDIM: { value: "" },
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
nameLightColor: { value: "" },
|
|
24
|
+
GALightColor: { value: "" },
|
|
25
|
+
dptLightColor: { value: "" },
|
|
26
|
+
|
|
27
|
+
nameLightColorState: { value: "" },
|
|
28
|
+
GALightColorState: { value: "" },
|
|
29
|
+
dptLightColorState: { value: "" },
|
|
30
|
+
|
|
31
|
+
nameLightBrightness: { value: "" },
|
|
32
|
+
GALightBrightness: { value: "" },
|
|
33
|
+
dptLightBrightness: { value: "" },
|
|
34
|
+
|
|
35
|
+
nameLightBrightnessState: { value: "" },
|
|
36
|
+
GALightBrightnessState: { value: "" },
|
|
37
|
+
dptLightBrightnessState: { value: "" },
|
|
38
|
+
|
|
39
|
+
hueDevice: { value: "" }
|
|
24
40
|
},
|
|
25
41
|
inputs: 0,
|
|
26
42
|
outputs: 0,
|
|
@@ -28,7 +44,7 @@
|
|
|
28
44
|
label: function () {
|
|
29
45
|
return (this.name);
|
|
30
46
|
},
|
|
31
|
-
paletteLabel: "Hue Light
|
|
47
|
+
paletteLabel: "Hue Light",
|
|
32
48
|
// button: {
|
|
33
49
|
// enabled: function() {
|
|
34
50
|
// // return whether or not the button is enabled, based on the current
|
|
@@ -46,6 +62,7 @@
|
|
|
46
62
|
oneditprepare: function () {
|
|
47
63
|
var node = this;
|
|
48
64
|
var oNodeServer = RED.nodes.node($("#node-input-server").val()); // Store the config-node
|
|
65
|
+
var oNodeServerHue = RED.nodes.node($("#node-input-serverHue").val()); // Store the config-node
|
|
49
66
|
|
|
50
67
|
// 19/02/2020 Used to get the server sooner als deploy.
|
|
51
68
|
$("#node-input-server").change(function () {
|
|
@@ -53,6 +70,12 @@
|
|
|
53
70
|
oNodeServer = RED.nodes.node($(this).val());
|
|
54
71
|
} catch (error) { }
|
|
55
72
|
});
|
|
73
|
+
// 19/02/2020 Used to get the server sooner als deploy.
|
|
74
|
+
$("#node-input-serverHue").change(function () {
|
|
75
|
+
try {
|
|
76
|
+
oNodeServerHue = RED.nodes.node($(this).val());
|
|
77
|
+
} catch (error) { }
|
|
78
|
+
});
|
|
56
79
|
|
|
57
80
|
// 31/03/2020 Search Helper
|
|
58
81
|
function fullSearch(sourceText, searchString) {
|
|
@@ -69,9 +92,11 @@
|
|
|
69
92
|
// ########################
|
|
70
93
|
$.getJSON('knxUltimateDpts', (data) => {
|
|
71
94
|
data.forEach(dpt => {
|
|
72
|
-
|
|
73
|
-
.
|
|
74
|
-
|
|
95
|
+
if (dpt.value.startsWith("1.")) {
|
|
96
|
+
$("#node-input-dptLightSwitch").append($("<option></option>")
|
|
97
|
+
.attr("value", dpt.value)
|
|
98
|
+
.text(dpt.text))
|
|
99
|
+
}
|
|
75
100
|
});
|
|
76
101
|
$("#node-input-dptLightSwitch").val(this.dptLightSwitch)
|
|
77
102
|
})
|
|
@@ -84,7 +109,7 @@
|
|
|
84
109
|
$.getJSON("knxUltimatecsv?nodeID=" + oNodeServer.id, (data) => {
|
|
85
110
|
response($.map(data, function (value, key) {
|
|
86
111
|
var sSearch = (value.ga + " (" + value.devicename + ") DPT" + value.dpt);
|
|
87
|
-
if (fullSearch(sSearch, request.term)) {
|
|
112
|
+
if (fullSearch(sSearch, request.term + " 1.")) {
|
|
88
113
|
return {
|
|
89
114
|
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
90
115
|
value: value.ga // Value
|
|
@@ -102,7 +127,6 @@
|
|
|
102
127
|
} catch (error) {
|
|
103
128
|
}
|
|
104
129
|
$('#node-input-nameLightSwitch').val(sDevName);
|
|
105
|
-
$('#node-input-name').val(sDevName);
|
|
106
130
|
var optVal = $("#node-input-dptLightSwitch option:contains('" + ui.item.label.split("#")[2].trim() + "')").attr('value');
|
|
107
131
|
// Select the option value
|
|
108
132
|
$("#node-input-dptLightSwitch").val(optVal);
|
|
@@ -116,10 +140,13 @@
|
|
|
116
140
|
// ########################
|
|
117
141
|
$.getJSON('knxUltimateDpts', (data) => {
|
|
118
142
|
data.forEach(dpt => {
|
|
119
|
-
|
|
120
|
-
.
|
|
121
|
-
|
|
143
|
+
if (dpt.value.startsWith("1.")) {
|
|
144
|
+
$("#node-input-dptLightState").append($("<option></option>")
|
|
145
|
+
.attr("value", dpt.value)
|
|
146
|
+
.text(dpt.text))
|
|
147
|
+
}
|
|
122
148
|
});
|
|
149
|
+
|
|
123
150
|
$("#node-input-dptLightState").val(this.dptLightState)
|
|
124
151
|
})
|
|
125
152
|
|
|
@@ -130,7 +157,7 @@
|
|
|
130
157
|
$.getJSON("knxUltimatecsv?nodeID=" + oNodeServer.id, (data) => {
|
|
131
158
|
response($.map(data, function (value, key) {
|
|
132
159
|
var sSearch = (value.ga + " (" + value.devicename + ") DPT" + value.dpt);
|
|
133
|
-
if (fullSearch(sSearch, request.term)) {
|
|
160
|
+
if (fullSearch(sSearch, request.term + " 1.")) {
|
|
134
161
|
return {
|
|
135
162
|
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
136
163
|
value: value.ga // Value
|
|
@@ -159,11 +186,15 @@
|
|
|
159
186
|
// ########################
|
|
160
187
|
$.getJSON('knxUltimateDpts', (data) => {
|
|
161
188
|
data.forEach(dpt => {
|
|
162
|
-
|
|
163
|
-
.
|
|
164
|
-
|
|
189
|
+
if (dpt.value === "3.007") {
|
|
190
|
+
$("#node-input-dptLightDIM").append($("<option></option>")
|
|
191
|
+
.attr("value", dpt.value)
|
|
192
|
+
.text(dpt.text))
|
|
193
|
+
}
|
|
165
194
|
});
|
|
195
|
+
|
|
166
196
|
$("#node-input-dptLightDIM").val(this.dptLightDIM)
|
|
197
|
+
|
|
167
198
|
})
|
|
168
199
|
|
|
169
200
|
// Autocomplete suggestion with ETS csv File
|
|
@@ -173,7 +204,7 @@
|
|
|
173
204
|
$.getJSON("knxUltimatecsv?nodeID=" + oNodeServer.id, (data) => {
|
|
174
205
|
response($.map(data, function (value, key) {
|
|
175
206
|
var sSearch = (value.ga + " (" + value.devicename + ") DPT" + value.dpt);
|
|
176
|
-
if (fullSearch(sSearch, request.term)) {
|
|
207
|
+
if (fullSearch(sSearch, request.term + " 3.007")) {
|
|
177
208
|
return {
|
|
178
209
|
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
179
210
|
value: value.ga // Value
|
|
@@ -198,18 +229,186 @@
|
|
|
198
229
|
});
|
|
199
230
|
|
|
200
231
|
|
|
232
|
+
// DPT dptLightColor and dptLightColorStateƒ
|
|
233
|
+
// ########################
|
|
234
|
+
$.getJSON('knxUltimateDpts', (data) => {
|
|
235
|
+
data.forEach(dpt => {
|
|
236
|
+
if (dpt.value === "232.600") {
|
|
237
|
+
$("#node-input-dptLightColor").append($("<option></option>")
|
|
238
|
+
.attr("value", dpt.value)
|
|
239
|
+
.text(dpt.text))
|
|
240
|
+
$("#node-input-dptLightColorState").append($("<option></option>")
|
|
241
|
+
.attr("value", dpt.value)
|
|
242
|
+
.text(dpt.text))
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
$("#node-input-dptLightColor").val(this.dptLightColor)
|
|
247
|
+
$("#node-input-dptLightColorState").val(this.dptLightColorState)
|
|
248
|
+
|
|
249
|
+
})
|
|
250
|
+
|
|
251
|
+
// Autocomplete suggestion with ETS csv File
|
|
252
|
+
$("#node-input-GALightColor").autocomplete({
|
|
253
|
+
minLength: 1,
|
|
254
|
+
source: function (request, response) {
|
|
255
|
+
$.getJSON("knxUltimatecsv?nodeID=" + oNodeServer.id, (data) => {
|
|
256
|
+
response($.map(data, function (value, key) {
|
|
257
|
+
var sSearch = (value.ga + " (" + value.devicename + ") DPT" + value.dpt);
|
|
258
|
+
if (fullSearch(sSearch, request.term + " 232.600")) {
|
|
259
|
+
return {
|
|
260
|
+
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
261
|
+
value: value.ga // Value
|
|
262
|
+
}
|
|
263
|
+
} else {
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
}));
|
|
267
|
+
});
|
|
268
|
+
}, select: function (event, ui) {
|
|
269
|
+
// Sets Datapoint and device name automatically
|
|
270
|
+
var sDevName = ui.item.label.split("#")[1].trim();
|
|
271
|
+
try {
|
|
272
|
+
sDevName = sDevName.substr(sDevName.indexOf(")") + 1).trim();
|
|
273
|
+
} catch (error) {
|
|
274
|
+
}
|
|
275
|
+
$('#node-input-nameLightColor').val(sDevName);
|
|
276
|
+
var optVal = $("#node-input-dptLightColor option:contains('" + ui.item.label.split("#")[2].trim() + "')").attr('value');
|
|
277
|
+
// Select the option value
|
|
278
|
+
$("#node-input-dptLightColor").val(optVal);
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
// Autocomplete suggestion with ETS csv File
|
|
283
|
+
$("#node-input-GALightColorState").autocomplete({
|
|
284
|
+
minLength: 1,
|
|
285
|
+
source: function (request, response) {
|
|
286
|
+
$.getJSON("knxUltimatecsv?nodeID=" + oNodeServer.id, (data) => {
|
|
287
|
+
response($.map(data, function (value, key) {
|
|
288
|
+
var sSearch = (value.ga + " (" + value.devicename + ") DPT" + value.dpt);
|
|
289
|
+
if (fullSearch(sSearch, request.term + " 232.600")) {
|
|
290
|
+
return {
|
|
291
|
+
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
292
|
+
value: value.ga // Value
|
|
293
|
+
}
|
|
294
|
+
} else {
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
}));
|
|
298
|
+
});
|
|
299
|
+
}, select: function (event, ui) {
|
|
300
|
+
// Sets Datapoint and device name automatically
|
|
301
|
+
var sDevName = ui.item.label.split("#")[1].trim();
|
|
302
|
+
try {
|
|
303
|
+
sDevName = sDevName.substr(sDevName.indexOf(")") + 1).trim();
|
|
304
|
+
} catch (error) {
|
|
305
|
+
}
|
|
306
|
+
$('#node-input-nameLightColorState').val(sDevName);
|
|
307
|
+
var optVal = $("#node-input-dptLightColorState option:contains('" + ui.item.label.split("#")[2].trim() + "')").attr('value');
|
|
308
|
+
// Select the option value
|
|
309
|
+
$("#node-input-dptLightColorState").val(optVal);
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
// DPT dptLightBrightness and dptLightBrightnessState
|
|
316
|
+
// ########################
|
|
317
|
+
$.getJSON('knxUltimateDpts', (data) => {
|
|
318
|
+
data.forEach(dpt => {
|
|
319
|
+
if (dpt.value === "5.001") {
|
|
320
|
+
$("#node-input-dptLightBrightness").append($("<option></option>")
|
|
321
|
+
.attr("value", dpt.value)
|
|
322
|
+
.text(dpt.text))
|
|
323
|
+
$("#node-input-dptLightBrightnessState").append($("<option></option>")
|
|
324
|
+
.attr("value", dpt.value)
|
|
325
|
+
.text(dpt.text))
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
$("#node-input-dptLightBrightness").val(this.dptLightBrightness)
|
|
330
|
+
$("#node-input-dptLightBrightnessState").val(this.dptLightBrightnessState)
|
|
331
|
+
|
|
332
|
+
})
|
|
333
|
+
|
|
334
|
+
// Autocomplete suggestion with ETS csv File
|
|
335
|
+
$("#node-input-GALightBrightness").autocomplete({
|
|
336
|
+
minLength: 1,
|
|
337
|
+
source: function (request, response) {
|
|
338
|
+
$.getJSON("knxUltimatecsv?nodeID=" + oNodeServer.id, (data) => {
|
|
339
|
+
response($.map(data, function (value, key) {
|
|
340
|
+
var sSearch = (value.ga + " (" + value.devicename + ") DPT" + value.dpt);
|
|
341
|
+
if (fullSearch(sSearch, request.term + " 5.001")) {
|
|
342
|
+
return {
|
|
343
|
+
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
344
|
+
value: value.ga // Value
|
|
345
|
+
}
|
|
346
|
+
} else {
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
}));
|
|
350
|
+
});
|
|
351
|
+
}, select: function (event, ui) {
|
|
352
|
+
// Sets Datapoint and device name automatically
|
|
353
|
+
var sDevName = ui.item.label.split("#")[1].trim();
|
|
354
|
+
try {
|
|
355
|
+
sDevName = sDevName.substr(sDevName.indexOf(")") + 1).trim();
|
|
356
|
+
} catch (error) {
|
|
357
|
+
}
|
|
358
|
+
$('#node-input-nameLightBrightness').val(sDevName);
|
|
359
|
+
var optVal = $("#node-input-dptLightBrightness option:contains('" + ui.item.label.split("#")[2].trim() + "')").attr('value');
|
|
360
|
+
// Select the option value
|
|
361
|
+
$("#node-input-dptLightBrightness").val(optVal);
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
// Autocomplete suggestion with ETS csv File
|
|
366
|
+
$("#node-input-GALightBrightnessState").autocomplete({
|
|
367
|
+
minLength: 1,
|
|
368
|
+
source: function (request, response) {
|
|
369
|
+
$.getJSON("knxUltimatecsv?nodeID=" + oNodeServer.id, (data) => {
|
|
370
|
+
response($.map(data, function (value, key) {
|
|
371
|
+
var sSearch = (value.ga + " (" + value.devicename + ") DPT" + value.dpt);
|
|
372
|
+
if (fullSearch(sSearch, request.term + " 5.001")) {
|
|
373
|
+
return {
|
|
374
|
+
label: value.ga + " # " + value.devicename + " # " + value.dpt, // Label for Display
|
|
375
|
+
value: value.ga // Value
|
|
376
|
+
}
|
|
377
|
+
} else {
|
|
378
|
+
return null;
|
|
379
|
+
}
|
|
380
|
+
}));
|
|
381
|
+
});
|
|
382
|
+
}, select: function (event, ui) {
|
|
383
|
+
// Sets Datapoint and device name automatically
|
|
384
|
+
var sDevName = ui.item.label.split("#")[1].trim();
|
|
385
|
+
try {
|
|
386
|
+
sDevName = sDevName.substr(sDevName.indexOf(")") + 1).trim();
|
|
387
|
+
} catch (error) {
|
|
388
|
+
}
|
|
389
|
+
$('#node-input-nameLightBrightnessState').val(sDevName);
|
|
390
|
+
var optVal = $("#node-input-dptLightBrightnessState option:contains('" + ui.item.label.split("#")[2].trim() + "')").attr('value');
|
|
391
|
+
// Select the option value
|
|
392
|
+
$("#node-input-dptLightBrightnessState").val(optVal);
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
|
|
201
400
|
// Autocomplete suggestion with HUE Lights
|
|
202
|
-
$("#node-input-
|
|
401
|
+
$("#node-input-name").autocomplete({
|
|
203
402
|
minLength: 1,
|
|
204
403
|
source: function (request, response) {
|
|
205
|
-
$.getJSON("
|
|
206
|
-
response($.map(data.
|
|
404
|
+
$.getJSON("KNXUltimateGetDevicesHUE?rtype=light&nodeID=" + oNodeServerHue.id, (data) => {
|
|
405
|
+
response($.map(data.devices, function (value, key) {
|
|
207
406
|
//alert(JSON.stringify(value) + " "+ key)
|
|
208
|
-
var sSearch = (value.
|
|
407
|
+
var sSearch = (value.name);
|
|
209
408
|
if (fullSearch(sSearch, request.term)) {
|
|
210
409
|
return {
|
|
211
|
-
|
|
212
|
-
value: value.
|
|
410
|
+
hueDevice: value.id, // Label for Display
|
|
411
|
+
value: value.name // Value
|
|
213
412
|
}
|
|
214
413
|
} else {
|
|
215
414
|
return null;
|
|
@@ -217,9 +416,8 @@
|
|
|
217
416
|
}));
|
|
218
417
|
});
|
|
219
418
|
}, select: function (event, ui) {
|
|
220
|
-
// Sets the
|
|
221
|
-
|
|
222
|
-
$('#node-input-hueLight').val(sDevName);
|
|
419
|
+
// Sets the fields
|
|
420
|
+
$('#node-input-hueDevice').val(ui.item.hueDevice);
|
|
223
421
|
}
|
|
224
422
|
});
|
|
225
423
|
|
|
@@ -243,32 +441,27 @@
|
|
|
243
441
|
|
|
244
442
|
|
|
245
443
|
<div class="form-row">
|
|
246
|
-
<b
|
|
247
|
-
|
|
444
|
+
<b>HUE Light</b>  <span style="color:red"
|
|
445
|
+
 <i class="fa fa-question-circle"></i></span>
|
|
446
|
+
 <a target="_blank" href="https://github.com/Supergiovane/node-red-contrib-knx-ultimate/wiki/en-hue-configuration"><u>Configuration</u></a>
|
|
248
447
|
<br />
|
|
448
|
+
<p align="center"><img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/hueLight.png'></p>
|
|
249
449
|
<br />
|
|
250
450
|
<label for="node-input-server" >
|
|
251
|
-
<
|
|
252
|
-
|
|
451
|
+
<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>
|
|
452
|
+
KNX GW
|
|
253
453
|
</label>
|
|
254
454
|
<input type="text" id="node-input-server" />
|
|
255
455
|
</div>
|
|
256
456
|
|
|
257
457
|
<div class="form-row">
|
|
258
458
|
<label for="node-input-serverHue">
|
|
259
|
-
<
|
|
260
|
-
|
|
459
|
+
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABFUlEQVQ4EZWSsWoCQRCG1yiENEFEi6QSkjqWWoqFoBYJ+Br6JHkMn8Iibd4ihQpaJIhWNkry/ZtdGZY78Qa+m39nZ+dm9s4550awglNBluS/gVtAX6KgDclf68w2OThgfR9iT/jnoEv4TtByDThWTCDKW4SSZTf/zj9/eZbN+izTDuKGimu0vPF8B/YN8aC8LmcOj/AAn9CFTEs70Js/oGqy79C69bqJ5XbQI2kGO5N8QL9D08S8zBtBF5ZaVsznpCMoqJnVdjTpb1Db0fwIWmQV6BLXzFOYgA6/gDVfQN9bBWp2J2hdWDPoBV5FrKnAJutHikk/CHHR8i7x4iG7qQ720IYvu3GFbpHjx3pFrOFYkA354z/5bkK826phyAAAAABJRU5ErkJggg=="/>
|
|
460
|
+
HUE Bridge
|
|
261
461
|
</label>
|
|
262
462
|
<input type="text" id="node-input-serverHue" />
|
|
263
463
|
</div>
|
|
264
464
|
|
|
265
|
-
<div class="form-row">
|
|
266
|
-
<label for="node-input-name" >
|
|
267
|
-
<i class="fa fa-tag"></i>
|
|
268
|
-
<span data-i18n="knxUltimateHueLight.node-input-name"></span>
|
|
269
|
-
</label>
|
|
270
|
-
<input style="width:35%;" type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateHueLight.node-input-name" />
|
|
271
|
-
</div>
|
|
272
465
|
|
|
273
466
|
<br/>
|
|
274
467
|
<p>
|
|
@@ -276,17 +469,19 @@
|
|
|
276
469
|
</p>
|
|
277
470
|
|
|
278
471
|
<div class="form-row">
|
|
279
|
-
<label for="node-input-
|
|
280
|
-
<i class="fa fa-
|
|
281
|
-
<input type="text" id="node-input-
|
|
472
|
+
<label for="node-input-hueDevice" >
|
|
473
|
+
<i class="fa fa-play-circle"></i> Name</label>
|
|
474
|
+
<input type="text" id="node-input-name" placeholder="Enter your hue device name"/>
|
|
475
|
+
<input type="hidden" id="node-input-hueDevice"/>
|
|
282
476
|
</div>
|
|
283
477
|
|
|
284
478
|
<br/>
|
|
479
|
+
|
|
480
|
+
<!-- <p> <img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/knx.png' width='32px'> -> <img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/hue.png' width='32px'></p> -->
|
|
481
|
+
|
|
285
482
|
<p>
|
|
286
|
-
<b>
|
|
483
|
+
<b>KNX COMMANDS -> TO PHILIPS HUE</b>
|
|
287
484
|
</p>
|
|
288
|
-
|
|
289
|
-
<div id="GAandDPT">
|
|
290
485
|
<div class="form-row">
|
|
291
486
|
<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>
|
|
292
487
|
|
|
@@ -300,10 +495,59 @@
|
|
|
300
495
|
<label for="node-input-nameLightSwitch" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
301
496
|
<input type="text" id="node-input-nameLightSwitch" style="width:200px;margin-left: 5px; text-align: left;">
|
|
302
497
|
</div>
|
|
498
|
+
</div>
|
|
499
|
+
<div class="form-row">
|
|
500
|
+
<label for="node-input-nameLightDIM" style="width:100px;"><i class="fa fa-play-circle-o"></i> Dimming</label>
|
|
501
|
+
|
|
502
|
+
<label for="node-input-GALightDIM" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
503
|
+
<input type="text" id="node-input-GALightDIM" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
504
|
+
|
|
505
|
+
<label for="node-input-dptLightDIM" style="width:40px; margin-left: 0px; text-align: right;">
|
|
506
|
+
<span data-i18n="knxUltimateHueLight.node-input-dptLightState"></span> </label>
|
|
507
|
+
<select id="node-input-dptLightDIM" style="width:140px;"></select>
|
|
508
|
+
|
|
509
|
+
<label for="node-input-nameLightDIM" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
510
|
+
<input type="text" id="node-input-nameLightDIM" style="width:200px;margin-left: 5px; text-align: left;">
|
|
511
|
+
</div>
|
|
512
|
+
</div>
|
|
513
|
+
<div class="form-row">
|
|
514
|
+
<label for="node-input-nameLightColor" style="width:100px;"><i class="fa fa-play-circle-o"></i> Color</label>
|
|
515
|
+
|
|
516
|
+
<label for="node-input-GALightColor" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
517
|
+
<input type="text" id="node-input-GALightColor" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
518
|
+
|
|
519
|
+
<label for="node-input-dptLightColor" style="width:40px; margin-left: 0px; text-align: right;">
|
|
520
|
+
<span data-i18n="knxUltimateHueLight.node-input-dptLightState"></span> </label>
|
|
521
|
+
<select id="node-input-dptLightColor" style="width:140px;"></select>
|
|
522
|
+
|
|
523
|
+
<label for="node-input-nameLightColor" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
524
|
+
<input type="text" id="node-input-nameLightColor" style="width:200px;margin-left: 5px; text-align: left;">
|
|
525
|
+
</div>
|
|
526
|
+
</div>
|
|
527
|
+
</div>
|
|
528
|
+
<div class="form-row">
|
|
529
|
+
<label for="node-input-nameLightBrightness" style="width:100px;"><i class="fa fa-play-circle-o"></i> Brightness</label>
|
|
530
|
+
|
|
531
|
+
<label for="node-input-GALightBrightness" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
532
|
+
<input type="text" id="node-input-GALightBrightness" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
533
|
+
|
|
534
|
+
<label for="node-input-dptLightBrightness" style="width:40px; margin-left: 0px; text-align: right;">
|
|
535
|
+
<span data-i18n="knxUltimateHueLight.node-input-dptLightState"></span> </label>
|
|
536
|
+
<select id="node-input-dptLightBrightness" style="width:140px;"></select>
|
|
537
|
+
|
|
538
|
+
<label for="node-input-nameLightBrightness" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
539
|
+
<input type="text" id="node-input-nameLightBrightness" style="width:200px;margin-left: 5px; text-align: left;">
|
|
540
|
+
</div>
|
|
541
|
+
|
|
542
|
+
<br/>
|
|
543
|
+
<p>
|
|
544
|
+
<b>PHILIPS HUE LIGHT STATE -> TO KNX</b>
|
|
545
|
+
</p>
|
|
546
|
+
|
|
303
547
|
<div class="form-row">
|
|
304
|
-
<label for="node-input-nameLightState" style="width:100px;"><i class="fa fa-play-circle-o"></i>
|
|
548
|
+
<label for="node-input-nameLightState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Switch</label>
|
|
305
549
|
|
|
306
|
-
<label for="node-input-GALightState" style="width:20px;"
|
|
550
|
+
<label for="node-input-GALightState" style="width:20px;">GA</label>
|
|
307
551
|
<input type="text" id="node-input-GALightState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
308
552
|
|
|
309
553
|
<label for="node-input-dptLightState" style="width:40px; margin-left: 0px; text-align: right;">
|
|
@@ -314,19 +558,83 @@
|
|
|
314
558
|
<input type="text" id="node-input-nameLightState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
315
559
|
</div>
|
|
316
560
|
<div class="form-row">
|
|
317
|
-
<label for="node-input-
|
|
561
|
+
<label for="node-input-nameLightColorState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Color</label>
|
|
318
562
|
|
|
319
|
-
<label for="node-input-
|
|
320
|
-
<input type="text" id="node-input-
|
|
563
|
+
<label for="node-input-GALightColorState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
564
|
+
<input type="text" id="node-input-GALightColorState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
321
565
|
|
|
322
|
-
<label for="node-input-
|
|
323
|
-
<span data-i18n="knxUltimateHueLight.node-input-
|
|
324
|
-
<select id="node-input-
|
|
566
|
+
<label for="node-input-dptLightColorState" style="width:40px; margin-left: 0px; text-align: right;">
|
|
567
|
+
<span data-i18n="knxUltimateHueLight.node-input-dptLightState"></span> </label>
|
|
568
|
+
<select id="node-input-dptLightColorState" style="width:140px;"></select>
|
|
325
569
|
|
|
326
|
-
<label for="node-input-
|
|
327
|
-
<input type="text" id="node-input-
|
|
570
|
+
<label for="node-input-nameLightColorState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
571
|
+
<input type="text" id="node-input-nameLightColorState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
328
572
|
</div>
|
|
329
|
-
</div>
|
|
573
|
+
</div>
|
|
574
|
+
<div class="form-row">
|
|
575
|
+
<label for="node-input-nameLightBrightnessState" style="width:100px;"><i class="fa fa-play-circle-o"></i> Brightness</label>
|
|
576
|
+
|
|
577
|
+
<label for="node-input-GALightBrightnessState" style="width:20px;"><span data-i18n="knxUltimateHueLight.node-input-GALightState"></span></label>
|
|
578
|
+
<input type="text" id="node-input-GALightBrightnessState" placeholder="Ex: 1/1/1" style="width:70px;margin-left: 5px; text-align: left;">
|
|
579
|
+
|
|
580
|
+
<label for="node-input-dptLightBrightnessState" style="width:40px; margin-left: 0px; text-align: right;">
|
|
581
|
+
<span data-i18n="knxUltimateHueLight.node-input-dptLightState"></span> </label>
|
|
582
|
+
<select id="node-input-dptLightBrightnessState" style="width:140px;"></select>
|
|
583
|
+
|
|
584
|
+
<label for="node-input-nameLightBrightnessState" style="width:50px; margin-left: 0px; text-align: right;"><span data-i18n="knxUltimateHueLight.node-input-name"></span></label>
|
|
585
|
+
<input type="text" id="node-input-nameLightBrightnessState" style="width:200px;margin-left: 5px; text-align: left;">
|
|
586
|
+
</div>
|
|
587
|
+
|
|
588
|
+
<br/>
|
|
589
|
+
<br/>
|
|
590
|
+
<br/>
|
|
591
|
+
<br/>
|
|
592
|
+
<br/>
|
|
593
|
+
<br/>
|
|
594
|
+
<br/>
|
|
595
|
+
<br/>
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
</script>
|
|
330
599
|
|
|
331
600
|
|
|
601
|
+
<script type="text/markdown" data-help-name="knxUltimateHueLight">
|
|
602
|
+
|
|
603
|
+
[Find it useful?](https://www.paypal.me/techtoday)
|
|
604
|
+
|
|
605
|
+
This node lets you control your Philips HUE light and also get the states of this lights.
|
|
606
|
+
|
|
607
|
+
**General**
|
|
608
|
+
|Property|Description|
|
|
609
|
+
|--|--|
|
|
610
|
+
| KNX GW | Select the KNX gateway to be used |
|
|
611
|
+
| HUE Bridge | Select the HUE Bridge to be used |
|
|
612
|
+
| Name | HUE light to be used. The avaiable lights start showing up while you're typing.|
|
|
613
|
+
|
|
614
|
+
<br/>
|
|
615
|
+
|
|
616
|
+
**KNX COMMANDS -> TO PHILIPS HUE**
|
|
617
|
+
Here you can choose the KNX addresses to be linked to the avaiable HUE light commands.<br/>
|
|
618
|
+
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.
|
|
619
|
+
|
|
620
|
+
|Property|Description|
|
|
621
|
+
|--|--|
|
|
622
|
+
| Switch | This command is used to turn on/off the HUE light via a boolean KNX value true/false|
|
|
623
|
+
| Dimming | This command is used to DIM the HUE light via a KNX relative DIM datapoint |
|
|
624
|
+
| Color | This command is used to change the HUE light's color. Accepted datapoint is RGB triplet (r,g,b)|
|
|
625
|
+
| Brightness | This command is used to change the absolute HUE light's brightness |
|
|
626
|
+
|
|
627
|
+
<br/>
|
|
628
|
+
|
|
629
|
+
**PHILIPS HUE LIGHT STATE -> TO KNX**
|
|
630
|
+
Here you can link the state changes of your HUE light, to any KNX group address you want.<br/>
|
|
631
|
+
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.
|
|
632
|
+
|
|
633
|
+
|Property|Description|
|
|
634
|
+
|--|--|
|
|
635
|
+
| Switch | This state is used to send on/off value to the selected KNX group address |
|
|
636
|
+
| Color | This state is used to send changes of the HUE light's color. Accepted datapoint is RGB triplet (r,g,b)|
|
|
637
|
+
| Brightness | This state is used to send changes of your absolute HUE light's brightness, to a KNX group address |
|
|
638
|
+
|
|
639
|
+
<br/>
|
|
332
640
|
</script>
|