node-red-contrib-knx-ultimate 6.3.32 → 6.4.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.
@@ -574,11 +574,11 @@ const packKnxAiSemanticContext = ({ catalog, byteBudget, detailReferences } = {}
574
574
  const overflowDeclaration = complete
575
575
  ? ''
576
576
  : pickOverflowDeclaration({
577
- byteBudget: Math.max(0, maxBytes - buffer.usedBytes() - 1),
578
- manifestBytes: packedManifestBytes,
579
- recordCount: records.length,
580
- includedCount
581
- })
577
+ byteBudget: Math.max(0, maxBytes - buffer.usedBytes() - 1),
578
+ manifestBytes: packedManifestBytes,
579
+ recordCount: records.length,
580
+ includedCount
581
+ })
582
582
  if (overflowDeclaration) buffer.appendAtomic(overflowDeclaration)
583
583
  return {
584
584
  lines: buffer.lines,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "engines": {
4
4
  "node": ">=20.18.1"
5
5
  },
6
- "version": "6.3.32",
6
+ "version": "6.4.1",
7
7
  "description": "KNX Ultimate is the most advanced KNX integration for Node-RED, providing secure KNX/IP communication, routing, ETS project import, Philips Hue, Matter Controller and Matter Bridge (control matter device via KNX and expose KNX GA via Matter), MQTT and Modbus adapters, diagnostics with AI, virtual devices, and powerful automation nodes. Build professional, reliable, and scalable smart home and building automation projects with minimal effort.",
8
8
  "files": [
9
9
  "nodes/",
@@ -21,7 +21,7 @@
21
21
  "@project-chip/matter.js": "^0.17.9",
22
22
  "google-translate-tts": "^0.3.0",
23
23
  "js-yaml": "4.3.1",
24
- "knxultimate": "6.0.2",
24
+ "knxultimate": "6.0.3",
25
25
  "lodash": "4.18.1",
26
26
  "mqtt": "^5.15.2",
27
27
  "ping": "0.4.4",
@@ -32,6 +32,7 @@
32
32
  "version": ">=3.1.1",
33
33
  "plugins": {
34
34
  "commonFunctions": "/nodes/commonFunctions.js",
35
+ "knxUltimateCerebrumRuntime": "/nodes/plugins/knxUltimate-cerebrum-runtime-plugin.js",
35
36
  "knxUltimateFlowBubbles": "/nodes/plugins/knxUltimate-flow-bubbles-plugin.html"
36
37
  },
37
38
  "nodes": {
@@ -46,6 +47,7 @@
46
47
  "knxUltimateAlerter": "/nodes/knxUltimateAlerter.js",
47
48
  "knxUltimateViewer": "/nodes/knxUltimateViewer.js",
48
49
  "knxUltimateAI": "/nodes/knxUltimateAI.js",
50
+ "knxUltimateAIHomeAssistant": "/nodes/knxUltimateAIHomeAssistant.js",
49
51
  "knxUltimateMultiRouting": "/nodes/knxUltimateMultiRouting.js",
50
52
  "knxUltimateRouterFilter": "/nodes/knxUltimateRouterFilter.js",
51
53
  "knxUltimateAutoResponder": "/nodes/knxUltimateAutoResponder.js",
@@ -150,4 +152,4 @@
150
152
  "vite": "^7.3.6",
151
153
  "vue": "^3.5.41"
152
154
  }
153
- }
155
+ }
@@ -290,12 +290,38 @@ if (sourcePayload.userId !== undefined && msg.originalMessage.userId === undefin
290
290
  msg.originalMessage.userId = sourcePayload.userId;
291
291
  }
292
292
  if (typeof msg.chat !== 'function') {
293
+ const contextValues = {
294
+ chatId: chatId,
295
+ userId: sourcePayload.userId,
296
+ transport: sourcePayload.transport || 'telegram'
297
+ };
298
+ const syntheticContext = {
299
+ get: function () {
300
+ const keys = Array.prototype.slice.call(arguments);
301
+ if (keys.length === 0) return Object.assign({}, contextValues);
302
+ if (keys.length === 1) return contextValues[keys[0]];
303
+ return keys.reduce(function (result, key) {
304
+ result[key] = contextValues[key];
305
+ return result;
306
+ }, {});
307
+ },
308
+ set: function (key, value) {
309
+ if (key && typeof key === 'object') Object.assign(contextValues, key);
310
+ else if (key !== undefined) contextValues[key] = value;
311
+ return syntheticContext;
312
+ },
313
+ remove: function () {
314
+ Array.prototype.slice.call(arguments).forEach(function (key) { delete contextValues[key]; });
315
+ return syntheticContext;
316
+ },
317
+ clear: function () {
318
+ Object.keys(contextValues).forEach(function (key) { delete contextValues[key]; });
319
+ return syntheticContext;
320
+ },
321
+ all: function () { return Object.assign({}, contextValues); }
322
+ };
293
323
  msg.chat = function () {
294
- return {
295
- get: function () { return {}; },
296
- set: function () { return undefined; },
297
- remove: function () { return undefined; }
298
- };
324
+ return syntheticContext;
299
325
  };
300
326
  }
301
327
  if (typeof msg.get !== 'function') {