node-red-contrib-knx-ultimate 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/nodes/commonFunctions.js +0 -1
  3. package/nodes/hue-config.js +12 -6
  4. package/nodes/knxUltimate-config copy.html +456 -0
  5. package/nodes/knxUltimate-config copy.js +1939 -0
  6. package/nodes/knxUltimate-config.html +4 -9
  7. package/nodes/knxUltimate-config.js +128 -213
  8. package/nodes/knxUltimate.js +41 -32
  9. package/nodes/knxUltimateAlerter.js +11 -15
  10. package/nodes/knxUltimateAutoResponder.js +21 -13
  11. package/nodes/knxUltimateGarageDoorBarrierOpener.js +16 -8
  12. package/nodes/knxUltimateGlobalContext.js +10 -10
  13. package/nodes/knxUltimateHueBattery.js +8 -8
  14. package/nodes/knxUltimateHueButton.js +9 -9
  15. package/nodes/knxUltimateHueContactSensor.js +7 -7
  16. package/nodes/knxUltimateHueLight.js +26 -26
  17. package/nodes/knxUltimateHueLightSensor.js +8 -8
  18. package/nodes/knxUltimateHueMotion.js +7 -7
  19. package/nodes/knxUltimateHueScene.js +17 -9
  20. package/nodes/knxUltimateHueTapDial.js +13 -13
  21. package/nodes/knxUltimateHueTemperatureSensor.js +8 -8
  22. package/nodes/knxUltimateHueZigbeeConnectivity.js +8 -8
  23. package/nodes/knxUltimateHuedevice_software_update.js +8 -8
  24. package/nodes/knxUltimateLoadControl.js +24 -21
  25. package/nodes/knxUltimateLogger.js +8 -8
  26. package/nodes/knxUltimateSceneController.js +20 -13
  27. package/nodes/knxUltimateViewer.js +8 -8
  28. package/nodes/knxUltimateWatchDog.js +14 -14
  29. package/nodes/utils/http.js +0 -1
  30. package/nodes/utils/hueEngine.js +13 -6
  31. package/nodes/utils/payloadManipulation.js +2 -2
  32. package/nodes/utils/sysLogger.js +23 -60
  33. package/package.json +3 -3
@@ -4,7 +4,7 @@ module.exports = function (RED) {
4
4
  function knxUltimateHueButton(config) {
5
5
  RED.nodes.createNode(this, config);
6
6
  const node = this;
7
- node.server = RED.nodes.getNode(config.server);
7
+ node.serverKNX = RED.nodes.getNode(config.server);
8
8
  node.serverHue = RED.nodes.getNode(config.serverHue);
9
9
  node.topic = node.name;
10
10
  node.name = config.name === undefined ? 'Hue' : config.name;
@@ -128,7 +128,7 @@ module.exports = function (RED) {
128
128
  knxMsgPayload.payload = node.short_releaseValue;
129
129
  // Send to KNX bus
130
130
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
131
- node.server.writeQueueAdd({
131
+ node.serverKNX.sendKNXTelegramToKNXEngine({
132
132
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
133
133
  });
134
134
  }
@@ -153,7 +153,7 @@ module.exports = function (RED) {
153
153
  }
154
154
  // Send to KNX bus
155
155
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
156
- node.server.writeQueueAdd({
156
+ node.serverKNX.sendKNXTelegramToKNXEngine({
157
157
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
158
158
  });
159
159
  }
@@ -202,7 +202,7 @@ module.exports = function (RED) {
202
202
  knxMsgPayload.payload = { decr_incr: 0, data: 0 }; // Payload for the output msg
203
203
  // Send to KNX bus
204
204
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
205
- node.server.writeQueueAdd({
205
+ node.serverKNX.sendKNXTelegramToKNXEngine({
206
206
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
207
207
  });
208
208
  node.setNodeStatusHue({
@@ -212,9 +212,9 @@ module.exports = function (RED) {
212
212
  };
213
213
 
214
214
  // On each deploy, unsubscribe+resubscribe
215
- if (node.server) {
216
- node.server.removeClient(node);
217
- node.server.addClient(node);
215
+ if (node.serverKNX) {
216
+ node.serverKNX.removeClient(node);
217
+ node.serverKNX.addClient(node);
218
218
  }
219
219
  if (node.serverHue) {
220
220
  node.serverHue.removeClient(node);
@@ -226,8 +226,8 @@ module.exports = function (RED) {
226
226
  });
227
227
 
228
228
  node.on('close', (done) => {
229
- if (node.server) {
230
- node.server.removeClient(node);
229
+ if (node.serverKNX) {
230
+ node.serverKNX.removeClient(node);
231
231
  }
232
232
  if (node.serverHue) {
233
233
  node.serverHue.removeClient(node);
@@ -2,7 +2,7 @@ module.exports = function (RED) {
2
2
  function knxUltimateHueContactSensor(config) {
3
3
  RED.nodes.createNode(this, config)
4
4
  const node = this
5
- node.server = RED.nodes.getNode(config.server)
5
+ node.serverKNX = RED.nodes.getNode(config.server)
6
6
  node.serverHue = RED.nodes.getNode(config.serverHue)
7
7
  node.topic = node.name
8
8
  node.name = config.name === undefined ? 'Hue' : config.name
@@ -61,7 +61,7 @@ module.exports = function (RED) {
61
61
 
62
62
  // Send to KNX bus
63
63
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
64
- node.server.writeQueueAdd({
64
+ node.serverKNX.sendKNXTelegramToKNXEngine({
65
65
  grpaddr: knxMsgPayload.topic,
66
66
  payload: knxMsgPayload.payload,
67
67
  dpt: knxMsgPayload.dpt,
@@ -101,9 +101,9 @@ module.exports = function (RED) {
101
101
  }
102
102
 
103
103
  // On each deploy, unsubscribe+resubscribe
104
- if (node.server) {
105
- node.server.removeClient(node)
106
- node.server.addClient(node)
104
+ if (node.serverKNX) {
105
+ node.serverKNX.removeClient(node)
106
+ node.serverKNX.addClient(node)
107
107
  }
108
108
 
109
109
  if (node.serverHue) {
@@ -115,8 +115,8 @@ module.exports = function (RED) {
115
115
  })
116
116
 
117
117
  node.on('close', (done) => {
118
- if (node.server) {
119
- node.server.removeClient(node)
118
+ if (node.serverKNX) {
119
+ node.serverKNX.removeClient(node)
120
120
  }
121
121
  if (node.serverHue) {
122
122
  node.serverHue.removeClient(node)
@@ -10,7 +10,7 @@ module.exports = function (RED) {
10
10
  function knxUltimateHueLight(config) {
11
11
  RED.nodes.createNode(this, config);
12
12
  const node = this;
13
- node.server = RED.nodes.getNode(config.server);
13
+ node.serverKNX = RED.nodes.getNode(config.server);
14
14
  node.serverHue = RED.nodes.getNode(config.serverHue);
15
15
 
16
16
  // Convert for backward compatibility
@@ -155,7 +155,7 @@ module.exports = function (RED) {
155
155
  if (config.GADaylightSensor !== undefined && config.GADaylightSensor !== "") {
156
156
  if (node.timerCheckForFastLightSwitch !== null) { clearTimeout(node.timerCheckForFastLightSwitch); node.timerCheckForFastLightSwitch = null; }
157
157
  RED.log.debug(`knxUltimateHueLight: node.timerCheckForFastLightSwitch: set daytime the group address ${config.GADaylightSensor}`);
158
- node.server.writeQueueAdd({
158
+ node.serverKNX.sendKNXTelegramToKNXEngine({
159
159
  grpaddr: config.GADaylightSensor,
160
160
  payload: config.invertDayNight === false,
161
161
  dpt: config.dptDaylightSensor,
@@ -1112,8 +1112,8 @@ module.exports = function (RED) {
1112
1112
  knxMsgPayload.payload = _value;
1113
1113
  // Send to KNX bus
1114
1114
  if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1115
- if (node.server !== null && node.server !== undefined) {
1116
- node.server.writeQueueAdd({
1115
+ if (node.serverKNX !== null && node.serverKNX !== undefined) {
1116
+ node.serverKNX.sendKNXTelegramToKNXEngine({
1117
1117
  grpaddr: knxMsgPayload.topic,
1118
1118
  payload: knxMsgPayload.payload,
1119
1119
  dpt: knxMsgPayload.dpt,
@@ -1142,8 +1142,8 @@ module.exports = function (RED) {
1142
1142
  // Check not to have already sent the value
1143
1143
  // Send to KNX bus
1144
1144
  if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1145
- if (node.server !== null && node.server !== undefined) {
1146
- node.server.writeQueueAdd({
1145
+ if (node.serverKNX !== null && node.serverKNX !== undefined) {
1146
+ node.serverKNX.sendKNXTelegramToKNXEngine({
1147
1147
  grpaddr: knxMsgPayload.topic,
1148
1148
  payload: knxMsgPayload.payload,
1149
1149
  dpt: knxMsgPayload.dpt,
@@ -1175,8 +1175,8 @@ module.exports = function (RED) {
1175
1175
  }
1176
1176
  // Send to KNX bus
1177
1177
  if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1178
- if (node.server !== null && node.server !== undefined) {
1179
- node.server.writeQueueAdd({
1178
+ if (node.serverKNX !== null && node.serverKNX !== undefined) {
1179
+ node.serverKNX.sendKNXTelegramToKNXEngine({
1180
1180
  grpaddr: knxMsgPayload.topic,
1181
1181
  payload: knxMsgPayload.payload,
1182
1182
  dpt: knxMsgPayload.dpt,
@@ -1210,8 +1210,8 @@ module.exports = function (RED) {
1210
1210
  // }
1211
1211
  // // Send to KNX bus
1212
1212
  // if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1213
- // if (node.server !== null && node.server !== undefined) {
1214
- // node.server.writeQueueAdd({
1213
+ // if (node.serverKNX !== null && node.serverKNX !== undefined) {
1214
+ // node.serverKNX.sendKNXTelegramToKNXEngine({
1215
1215
  // grpaddr: knxMsgPayload.topic,
1216
1216
  // payload: knxMsgPayload.payload,
1217
1217
  // dpt: knxMsgPayload.dpt,
@@ -1245,8 +1245,8 @@ module.exports = function (RED) {
1245
1245
  // }
1246
1246
  // // Send to KNX bus
1247
1247
  // if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1248
- // if (node.server !== null && node.server !== undefined) {
1249
- // node.server.writeQueueAdd({
1248
+ // if (node.serverKNX !== null && node.serverKNX !== undefined) {
1249
+ // node.serverKNX.sendKNXTelegramToKNXEngine({
1250
1250
  // grpaddr: knxMsgPayload.topic,
1251
1251
  // payload: knxMsgPayload.payload,
1252
1252
  // dpt: knxMsgPayload.dpt,
@@ -1285,8 +1285,8 @@ module.exports = function (RED) {
1285
1285
  knxMsgPayload.payload = { red: knxMsgPayload.payload.r, green: knxMsgPayload.payload.g, blue: knxMsgPayload.payload.b };
1286
1286
  // Send to KNX bus
1287
1287
  if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1288
- if (node.server !== null && node.server !== undefined) {
1289
- node.server.writeQueueAdd({
1288
+ if (node.serverKNX !== null && node.serverKNX !== undefined) {
1289
+ node.serverKNX.sendKNXTelegramToKNXEngine({
1290
1290
  grpaddr: knxMsgPayload.topic,
1291
1291
  payload: knxMsgPayload.payload,
1292
1292
  dpt: knxMsgPayload.dpt,
@@ -1313,8 +1313,8 @@ module.exports = function (RED) {
1313
1313
  }
1314
1314
  // Send to KNX bus
1315
1315
  if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1316
- if (node.server !== null && node.server !== undefined) {
1317
- node.server.writeQueueAdd({
1316
+ if (node.serverKNX !== null && node.serverKNX !== undefined) {
1317
+ node.serverKNX.sendKNXTelegramToKNXEngine({
1318
1318
  grpaddr: knxMsgPayload.topic,
1319
1319
  payload: knxMsgPayload.payload,
1320
1320
  dpt: knxMsgPayload.dpt,
@@ -1340,8 +1340,8 @@ module.exports = function (RED) {
1340
1340
  }
1341
1341
  // Send to KNX bus
1342
1342
  if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1343
- if (node.server !== null && node.server !== undefined) {
1344
- node.server.writeQueueAdd({
1343
+ if (node.serverKNX !== null && node.serverKNX !== undefined) {
1344
+ node.serverKNX.sendKNXTelegramToKNXEngine({
1345
1345
  grpaddr: knxMsgPayload.topic,
1346
1346
  payload: knxMsgPayload.payload,
1347
1347
  dpt: knxMsgPayload.dpt,
@@ -1373,8 +1373,8 @@ module.exports = function (RED) {
1373
1373
  }
1374
1374
  // Send to KNX bus
1375
1375
  if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
1376
- if (node.server !== null && node.server !== undefined) {
1377
- node.server.writeQueueAdd({
1376
+ if (node.serverKNX !== null && node.serverKNX !== undefined) {
1377
+ node.serverKNX.sendKNXTelegramToKNXEngine({
1378
1378
  grpaddr: knxMsgPayload.topic,
1379
1379
  payload: knxMsgPayload.payload,
1380
1380
  dpt: knxMsgPayload.dpt,
@@ -1394,16 +1394,16 @@ module.exports = function (RED) {
1394
1394
  };
1395
1395
 
1396
1396
  // On each deploy, unsubscribe+resubscribe
1397
- if (node.server) {
1398
- node.server.removeClient(node);
1399
- node.server.addClient(node);
1397
+ if (node.serverKNX) {
1398
+ node.serverKNX.removeClient(node);
1399
+ node.serverKNX.addClient(node);
1400
1400
  }
1401
1401
  if (node.serverHue) {
1402
1402
  try {
1403
1403
  node.serverHue.removeClient(node);
1404
1404
  node.serverHue.addClient(node);
1405
1405
  } catch (error) {
1406
- RED.log.error("knxUltimateHueLight: if (node.server): " + error.message);
1406
+ RED.log.error("knxUltimateHueLight: if (node.serverKNX): " + error.message);
1407
1407
  }
1408
1408
  }
1409
1409
 
@@ -1434,8 +1434,8 @@ module.exports = function (RED) {
1434
1434
  });
1435
1435
 
1436
1436
  node.on("close", (done) => {
1437
- if (node.server) {
1438
- node.server.removeClient(node);
1437
+ if (node.serverKNX) {
1438
+ node.serverKNX.removeClient(node);
1439
1439
  }
1440
1440
  if (node.serverHue) {
1441
1441
  node.serverHue.removeClient(node);
@@ -2,7 +2,7 @@ module.exports = function (RED) {
2
2
  function knxUltimateHueLightSensor(config) {
3
3
  RED.nodes.createNode(this, config);
4
4
  const node = this;
5
- node.server = RED.nodes.getNode(config.server);
5
+ node.serverKNX = RED.nodes.getNode(config.server);
6
6
  node.serverHue = RED.nodes.getNode(config.serverHue);
7
7
  node.topic = node.name;
8
8
  node.name = config.name === undefined ? 'Hue' : config.name;
@@ -70,7 +70,7 @@ module.exports = function (RED) {
70
70
  //console.log(_event.light.light_level === 0 ? 0 : Math.round(Math.pow(10, (_event.light.light_level - 1) / 10000)))
71
71
  knxMsgPayload.payload = _event.light.light_level === 0 ? 0 : Math.round(Math.pow(10, (_event.light.light_level - 1) / 10000));
72
72
  // Send to KNX bus
73
- if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) node.server.writeQueueAdd({ grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id });
73
+ if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) node.serverKNX.sendKNXTelegramToKNXEngine({ grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id });
74
74
  node.currentDeviceValue = knxMsgPayload.payload;
75
75
 
76
76
  node.status({ fill: 'green', shape: 'dot', text: 'HUE->KNX ' + JSON.stringify(knxMsgPayload.payload) + ' (' + new Date().getDate() + ', ' + new Date().toLocaleTimeString() + ')' });
@@ -98,16 +98,16 @@ module.exports = function (RED) {
98
98
  knxMsgPayload.payload = _level;
99
99
  // Send to KNX bus
100
100
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
101
- node.server.writeQueueAdd({
101
+ node.serverKNX.sendKNXTelegramToKNXEngine({
102
102
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'response', nodecallerid: node.id,
103
103
  });
104
104
  }
105
105
  };
106
106
 
107
107
  // On each deploy, unsubscribe+resubscribe
108
- if (node.server) {
109
- node.server.removeClient(node);
110
- node.server.addClient(node);
108
+ if (node.serverKNX) {
109
+ node.serverKNX.removeClient(node);
110
+ node.serverKNX.addClient(node);
111
111
  }
112
112
  if (node.serverHue) {
113
113
  node.serverHue.removeClient(node);
@@ -119,8 +119,8 @@ module.exports = function (RED) {
119
119
  });
120
120
 
121
121
  node.on('close', function (done) {
122
- if (node.server) {
123
- node.server.removeClient(node);
122
+ if (node.serverKNX) {
123
+ node.serverKNX.removeClient(node);
124
124
  }
125
125
  if (node.serverHue) {
126
126
  node.serverHue.removeClient(node);
@@ -2,7 +2,7 @@ module.exports = function (RED) {
2
2
  function knxUltimateHueMotion(config) {
3
3
  RED.nodes.createNode(this, config);
4
4
  const node = this;
5
- node.server = RED.nodes.getNode(config.server);
5
+ node.serverKNX = RED.nodes.getNode(config.server);
6
6
  node.serverHue = RED.nodes.getNode(config.serverHue);
7
7
  node.topic = node.name;
8
8
  node.name = config.name === undefined ? "Hue" : config.name;
@@ -51,7 +51,7 @@ module.exports = function (RED) {
51
51
  knxMsgPayload.payload = _event.motion.motion_report.motion;
52
52
  // Send to KNX bus
53
53
  if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined) {
54
- node.server.writeQueueAdd({
54
+ node.serverKNX.sendKNXTelegramToKNXEngine({
55
55
  grpaddr: knxMsgPayload.topic,
56
56
  payload: knxMsgPayload.payload,
57
57
  dpt: knxMsgPayload.dpt,
@@ -86,9 +86,9 @@ module.exports = function (RED) {
86
86
  };
87
87
 
88
88
  // On each deploy, unsubscribe+resubscribe
89
- if (node.server) {
90
- node.server.removeClient(node);
91
- node.server.addClient(node);
89
+ if (node.serverKNX) {
90
+ node.serverKNX.removeClient(node);
91
+ node.serverKNX.addClient(node);
92
92
  }
93
93
  if (node.serverHue) {
94
94
  node.serverHue.removeClient(node);
@@ -98,8 +98,8 @@ module.exports = function (RED) {
98
98
  node.on("input", (msg) => { });
99
99
 
100
100
  node.on("close", (done) => {
101
- if (node.server) {
102
- node.server.removeClient(node);
101
+ if (node.serverKNX) {
102
+ node.serverKNX.removeClient(node);
103
103
  }
104
104
  if (node.serverHue) {
105
105
  node.serverHue.removeClient(node);
@@ -1,12 +1,20 @@
1
1
  /* eslint-disable max-len */
2
2
  const dptlib = require('knxultimate').dptlib;//require('knxultimate').dptlib;
3
3
 
4
+ // 10/09/2024 Setup the color logger
5
+ loggerSetup = (options) => {
6
+ let clog = require("node-color-log").createNamedLogger(options.setPrefix);
7
+ clog.setLevel(options.loglevel);
8
+ clog.setDate(() => (new Date()).toLocaleString());
9
+ return clog;
10
+ }
11
+
4
12
  module.exports = function (RED) {
5
13
 
6
14
  function knxUltimateHueScene(config) {
7
15
  RED.nodes.createNode(this, config);
8
16
  const node = this;
9
- node.server = RED.nodes.getNode(config.server);
17
+ node.serverKNX = RED.nodes.getNode(config.server);
10
18
  node.serverHue = RED.nodes.getNode(config.serverHue);
11
19
  node.topic = node.name;
12
20
  node.name = config.name === undefined ? 'Hue' : config.name;
@@ -28,7 +36,7 @@ module.exports = function (RED) {
28
36
  node.formatdecimalsvalue = 2;
29
37
  node.hueDevice = config.hueDevice;
30
38
  node.initializingAtStart = false;
31
- node.sysLogger = require('./utils/sysLogger.js').get({ loglevel: node.server.loglevel || 'error' }); // 08/04/2021 new logger to adhere to the loglevel selected in the config-window
39
+ node.sysLogger = loggerSetup({ loglevel: node.serverKNX.loglevel || 'error', setPrefix: "knxUltimateHueScene.js" }); // 08/04/2021 new logger to adhere to the loglevel selected in the config-window
32
40
 
33
41
  // Multi scene
34
42
  config.GAsceneMulti = config.GAsceneMulti === undefined ? '' : config.GAsceneMulti;
@@ -123,8 +131,8 @@ module.exports = function (RED) {
123
131
  if (_event.hasOwnProperty("status") && _event.status.hasOwnProperty("active")) {
124
132
  knxMsgPayload.payload = _event.status.active !== "inactive";
125
133
  // Send to KNX bus
126
- if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined && node.server !== undefined) {
127
- node.server.writeQueueAdd({
134
+ if (knxMsgPayload.topic !== "" && knxMsgPayload.topic !== undefined && node.serverKNX !== undefined) {
135
+ node.serverKNX.sendKNXTelegramToKNXEngine({
128
136
  grpaddr: knxMsgPayload.topic,
129
137
  payload: knxMsgPayload.payload,
130
138
  dpt: knxMsgPayload.dpt,
@@ -155,9 +163,9 @@ module.exports = function (RED) {
155
163
  };
156
164
 
157
165
  // On each deploy, unsubscribe+resubscribe
158
- if (node.server) {
159
- node.server.removeClient(node);
160
- node.server.addClient(node);
166
+ if (node.serverKNX) {
167
+ node.serverKNX.removeClient(node);
168
+ node.serverKNX.addClient(node);
161
169
  }
162
170
  if (node.serverHue) {
163
171
  node.serverHue.removeClient(node);
@@ -190,8 +198,8 @@ module.exports = function (RED) {
190
198
  }
191
199
  });
192
200
  node.on('close', function (done) {
193
- if (node.server) {
194
- node.server.removeClient(node);
201
+ if (node.serverKNX) {
202
+ node.serverKNX.removeClient(node);
195
203
  }
196
204
  if (node.serverHue) {
197
205
  node.serverHue.removeClient(node);
@@ -3,7 +3,7 @@ module.exports = function (RED) {
3
3
  function knxUltimateHueTapDial(config) {
4
4
  RED.nodes.createNode(this, config);
5
5
  const node = this;
6
- node.server = RED.nodes.getNode(config.server);
6
+ node.serverKNX = RED.nodes.getNode(config.server);
7
7
  node.serverHue = RED.nodes.getNode(config.serverHue);
8
8
  node.topic = node.name;
9
9
  node.name = config.name === undefined ? 'Hue' : config.name;
@@ -70,7 +70,7 @@ module.exports = function (RED) {
70
70
  // Set KNX Dim up/down start
71
71
  knxMsgPayload.payload = { decr_incr: 1, data: 5 }; // Send to KNX bus
72
72
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
73
- node.server.writeQueueAdd({
73
+ node.serverKNX.sendKNXTelegramToKNXEngine({
74
74
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
75
75
  });
76
76
  }
@@ -82,7 +82,7 @@ module.exports = function (RED) {
82
82
  node.brightnessState < 100 ? node.brightnessState += 5 : node.brightnessState = 100;
83
83
  knxMsgPayload.payload = node.brightnessState;
84
84
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
85
- node.server.writeQueueAdd({
85
+ node.serverKNX.sendKNXTelegramToKNXEngine({
86
86
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
87
87
  });
88
88
  }
@@ -97,7 +97,7 @@ module.exports = function (RED) {
97
97
  knxMsgPayload.payload = { red: getRandomIntInclusive(0, 255), green: getRandomIntInclusive(0, 255), blue: getRandomIntInclusive(0, 255) };
98
98
  // Send to KNX bus
99
99
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
100
- node.server.writeQueueAdd({
100
+ node.serverKNX.sendKNXTelegramToKNXEngine({
101
101
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
102
102
  });
103
103
  }
@@ -110,7 +110,7 @@ module.exports = function (RED) {
110
110
  // Set KNX Dim up/down start
111
111
  knxMsgPayload.payload = { decr_incr: 0, data: 5 }; // Send to KNX bus
112
112
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
113
- node.server.writeQueueAdd({
113
+ node.serverKNX.sendKNXTelegramToKNXEngine({
114
114
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
115
115
  });
116
116
  }
@@ -121,7 +121,7 @@ module.exports = function (RED) {
121
121
  node.brightnessState > 0 ? node.brightnessState -= 5 : node.brightnessState = 0;
122
122
  knxMsgPayload.payload = node.brightnessState;
123
123
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
124
- node.server.writeQueueAdd({
124
+ node.serverKNX.sendKNXTelegramToKNXEngine({
125
125
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
126
126
  });
127
127
  }
@@ -131,7 +131,7 @@ module.exports = function (RED) {
131
131
  knxMsgPayload.payload = { red: 255, green: 255, blue: 255 };
132
132
  // Send to KNX bus
133
133
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
134
- node.server.writeQueueAdd({
134
+ node.serverKNX.sendKNXTelegramToKNXEngine({
135
135
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
136
136
  });
137
137
  }
@@ -163,7 +163,7 @@ module.exports = function (RED) {
163
163
  knxMsgPayload.payload = { decr_incr: 0, data: 0 }; // Payload for the output msg
164
164
  // Send to KNX bus
165
165
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
166
- node.server.writeQueueAdd({
166
+ node.serverKNX.sendKNXTelegramToKNXEngine({
167
167
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
168
168
  });
169
169
  }
@@ -173,9 +173,9 @@ module.exports = function (RED) {
173
173
  };
174
174
 
175
175
  // On each deploy, unsubscribe+resubscribe
176
- if (node.server) {
177
- node.server.removeClient(node);
178
- node.server.addClient(node);
176
+ if (node.serverKNX) {
177
+ node.serverKNX.removeClient(node);
178
+ node.serverKNX.addClient(node);
179
179
  }
180
180
  if (node.serverHue) {
181
181
  node.serverHue.removeClient(node);
@@ -187,8 +187,8 @@ module.exports = function (RED) {
187
187
  });
188
188
 
189
189
  node.on('close', (done) => {
190
- if (node.server) {
191
- node.server.removeClient(node);
190
+ if (node.serverKNX) {
191
+ node.serverKNX.removeClient(node);
192
192
  }
193
193
  if (node.serverHue) {
194
194
  node.serverHue.removeClient(node);
@@ -2,7 +2,7 @@ module.exports = function (RED) {
2
2
  function knxUltimateHueTemperatureSensor(config) {
3
3
  RED.nodes.createNode(this, config);
4
4
  const node = this;
5
- node.server = RED.nodes.getNode(config.server);
5
+ node.serverKNX = RED.nodes.getNode(config.server);
6
6
  node.serverHue = RED.nodes.getNode(config.serverHue);
7
7
  node.topic = node.name;
8
8
  node.name = config.name === undefined ? 'Hue' : config.name;
@@ -68,7 +68,7 @@ module.exports = function (RED) {
68
68
  knxMsgPayload.payload = _event.temperature.temperature;
69
69
  // Send to KNX bus
70
70
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
71
- node.server.writeQueueAdd({
71
+ node.serverKNX.sendKNXTelegramToKNXEngine({
72
72
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
73
73
  });
74
74
  }
@@ -102,7 +102,7 @@ module.exports = function (RED) {
102
102
  knxMsgPayload.payload = _level;
103
103
  // Send to KNX bus
104
104
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
105
- node.server.writeQueueAdd({
105
+ node.serverKNX.sendKNXTelegramToKNXEngine({
106
106
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'response', nodecallerid: node.id,
107
107
  });
108
108
  }
@@ -110,9 +110,9 @@ module.exports = function (RED) {
110
110
 
111
111
 
112
112
  // On each deploy, unsubscribe+resubscribe
113
- if (node.server) {
114
- node.server.removeClient(node);
115
- node.server.addClient(node);
113
+ if (node.serverKNX) {
114
+ node.serverKNX.removeClient(node);
115
+ node.serverKNX.addClient(node);
116
116
  }
117
117
  if (node.serverHue) {
118
118
  node.serverHue.removeClient(node);
@@ -124,8 +124,8 @@ module.exports = function (RED) {
124
124
  });
125
125
 
126
126
  node.on('close', (done) => {
127
- if (node.server) {
128
- node.server.removeClient(node);
127
+ if (node.serverKNX) {
128
+ node.serverKNX.removeClient(node);
129
129
  }
130
130
  if (node.serverHue) {
131
131
  node.serverHue.removeClient(node);
@@ -2,7 +2,7 @@ module.exports = function (RED) {
2
2
  function knxUltimateHueZigbeeConnectivity(config) {
3
3
  RED.nodes.createNode(this, config);
4
4
  const node = this;
5
- node.server = RED.nodes.getNode(config.server);
5
+ node.serverKNX = RED.nodes.getNode(config.server);
6
6
  node.serverHue = RED.nodes.getNode(config.serverHue);
7
7
  node.topic = node.name;
8
8
  node.name = config.name === undefined ? 'Hue' : config.name;
@@ -70,7 +70,7 @@ module.exports = function (RED) {
70
70
  knxMsgPayload.payload = (_event.status === "connected");
71
71
  // Send to KNX bus
72
72
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
73
- node.server.writeQueueAdd({
73
+ node.serverKNX.sendKNXTelegramToKNXEngine({
74
74
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
75
75
  });
76
76
  }
@@ -100,16 +100,16 @@ module.exports = function (RED) {
100
100
  knxMsgPayload.payload = _level;
101
101
  // Send to KNX bus
102
102
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
103
- node.server.writeQueueAdd({
103
+ node.serverKNX.sendKNXTelegramToKNXEngine({
104
104
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'response', nodecallerid: node.id,
105
105
  });
106
106
  }
107
107
  };
108
108
 
109
109
  // On each deploy, unsubscribe+resubscribe
110
- if (node.server) {
111
- node.server.removeClient(node);
112
- node.server.addClient(node);
110
+ if (node.serverKNX) {
111
+ node.serverKNX.removeClient(node);
112
+ node.serverKNX.addClient(node);
113
113
  }
114
114
  if (node.serverHue) {
115
115
  node.serverHue.removeClient(node);
@@ -121,8 +121,8 @@ module.exports = function (RED) {
121
121
  });
122
122
 
123
123
  node.on('close', (done) => {
124
- if (node.server) {
125
- node.server.removeClient(node);
124
+ if (node.serverKNX) {
125
+ node.serverKNX.removeClient(node);
126
126
  }
127
127
  if (node.serverHue) {
128
128
  node.serverHue.removeClient(node);
@@ -2,7 +2,7 @@ module.exports = function (RED) {
2
2
  function knxUltimateHuedevice_software_update(config) {
3
3
  RED.nodes.createNode(this, config);
4
4
  const node = this;
5
- node.server = RED.nodes.getNode(config.server);
5
+ node.serverKNX = RED.nodes.getNode(config.server);
6
6
  node.serverHue = RED.nodes.getNode(config.serverHue);
7
7
  node.topic = node.name;
8
8
  node.name = config.name === undefined ? 'Hue' : config.name;
@@ -70,7 +70,7 @@ module.exports = function (RED) {
70
70
  knxMsgPayload.payload = (_event.state !== "no_update");
71
71
  // Send to KNX bus
72
72
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
73
- node.server.writeQueueAdd({
73
+ node.serverKNX.sendKNXTelegramToKNXEngine({
74
74
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'write', nodecallerid: node.id,
75
75
  });
76
76
  }
@@ -100,16 +100,16 @@ module.exports = function (RED) {
100
100
  knxMsgPayload.payload = _level;
101
101
  // Send to KNX bus
102
102
  if (knxMsgPayload.topic !== '' && knxMsgPayload.topic !== undefined) {
103
- node.server.writeQueueAdd({
103
+ node.serverKNX.sendKNXTelegramToKNXEngine({
104
104
  grpaddr: knxMsgPayload.topic, payload: knxMsgPayload.payload, dpt: knxMsgPayload.dpt, outputtype: 'response', nodecallerid: node.id,
105
105
  });
106
106
  }
107
107
  };
108
108
 
109
109
  // On each deploy, unsubscribe+resubscribe
110
- if (node.server) {
111
- node.server.removeClient(node);
112
- node.server.addClient(node);
110
+ if (node.serverKNX) {
111
+ node.serverKNX.removeClient(node);
112
+ node.serverKNX.addClient(node);
113
113
  }
114
114
  if (node.serverHue) {
115
115
  node.serverHue.removeClient(node);
@@ -121,8 +121,8 @@ module.exports = function (RED) {
121
121
  });
122
122
 
123
123
  node.on('close', (done) => {
124
- if (node.server) {
125
- node.server.removeClient(node);
124
+ if (node.serverKNX) {
125
+ node.serverKNX.removeClient(node);
126
126
  }
127
127
  if (node.serverHue) {
128
128
  node.serverHue.removeClient(node);