node-red-contrib-knx-ultimate 6.3.17 → 6.3.19
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 +12 -0
- package/examples/KNX AI - Conversational Control with Confirmation.json +40 -21
- package/examples/KNX AI - Summary Anomalies and Ask.json +0 -17
- package/examples/KNX AI - Telegrambot Direct Chat.json +3 -29
- package/nodes/knxUltimateAI.html +462 -210
- package/nodes/knxUltimateAI.js +1560 -182
- package/nodes/locales/de/knxUltimateAI.html +37 -48
- package/nodes/locales/de/knxUltimateAI.json +42 -39
- package/nodes/locales/en/knxUltimateAI.html +41 -51
- package/nodes/locales/en/knxUltimateAI.json +42 -39
- package/nodes/locales/es/knxUltimateAI.html +37 -48
- package/nodes/locales/es/knxUltimateAI.json +42 -39
- package/nodes/locales/fr/knxUltimateAI.html +37 -48
- package/nodes/locales/fr/knxUltimateAI.json +42 -39
- package/nodes/locales/it/knxUltimateAI.html +41 -51
- package/nodes/locales/it/knxUltimateAI.json +42 -39
- package/nodes/locales/zh-CN/knxUltimateAI.html +37 -48
- package/nodes/locales/zh-CN/knxUltimateAI.json +42 -39
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@
|
|
|
6
6
|
|
|
7
7
|
# CHANGELOG
|
|
8
8
|
|
|
9
|
+
**Version 6.3.19** - August 2026<br/>
|
|
10
|
+
|
|
11
|
+
- **KNX AI — conversational multi-step routines**: added coordinated routines such as leaving home, bedtime and cinema mode. KNX AI can now perform a first pass with up to 20 fresh KNX state reads, use the authoritative bus results to prepare an ordered plan of up to 12 validated writes, request one confirmation and then execute the complete routine. After confirmation it waits up to four seconds for immediate matching bus feedback, reports verified and unverified operations without treating missing immediate feedback as a device failure, and dispatches any explicitly requested TTS Ultimate announcement only after execution. Routine details, preliminary readings and execution results are exposed as structured chat metadata. The importable confirmation example, editor help and wiki documentation were updated in EN, IT, DE, FR, ES and zh-CN.<br/>
|
|
12
|
+
- **KNX AI — localized output labels**: corrected the four output-pin labels to use the node-scoped Node-RED translation catalog, so Summary, Anomalies, Assistant and KNX Commands follow the active editor language.<br/>
|
|
13
|
+
|
|
14
|
+
**Version 6.3.18** - August 2026<br/>
|
|
15
|
+
|
|
16
|
+
- **KNX AI — focused configuration with fixed defaults**: aligned the hidden traffic-analysis defaults to a 600-second history, disk archival enabled for 10 days, automatic summaries disabled, a 120-second analysis window, 5,000 in-memory events and a Top-12 list. The Node-RED project inventory is now always included, while traffic analysis, chat input/output mappings and their obsolete editor controls remain hidden. Documentation language selection was removed because the AI now chooses the appropriate language. Proactive-home switches and advanced proactive settings were removed without legacy-value migration: user-managed AI Education is now the sole configuration surface for this behaviour. Editor help, examples and wiki documentation were updated in EN, IT, DE, FR, ES and zh-CN.<br/>
|
|
17
|
+
- **KNX AI — horizontal accordion and visible chat context**: rebuilt the editor accordion with the same horizontal-tab layout and visual behaviour as KNXUltimate. Automatically detected adapters now appear at the end, followed by a new context card that summarizes what chat can access, including generated context filenames and the absolute KNX telegram archive directories.<br/>
|
|
18
|
+
- **KNX AI — TTS Ultimate announcements**: added automatic discovery of `node-red-contrib-tts-ultimate` and a selector for the TTS Ultimate node to use across all flows. Chat responses can now dispatch spoken announcements through the selected TTS/Sonos path while preserving the existing adapter registry design.<br/>
|
|
19
|
+
- **KNX AI — local model providers and responsiveness**: promoted Ollama out of beta and added Bionic LM Studio. Model selection now discovers each local model's maximum context length and configures it when loaded; smaller context windows automatically receive reduced, relevance-selected prompts and bounded output budgets, with progressive context compaction on provider overflow errors. Local requests use a ten-minute minimum timeout, preserve detailed provider errors and retry supported OpenAI-compatible parameter variants. Chat users receive localized thinking feedback while inference is running, and the node status now reports only incoming requests and thinking state instead of KNX telegram traffic.<br/>
|
|
20
|
+
|
|
9
21
|
**Version 6.3.17** - August 2026<br/>
|
|
10
22
|
|
|
11
23
|
- **KNX AI — unified Assistant context for chat channels**: Telegram, RedBot and custom chat adapters now receive the same complete KNX analysis context as the web Assistant, including the full relevant traffic selection, summaries, areas, learned home memory, Node-RED flow context, Function-node source and documentation snippets enabled by the node configuration. The chat-specific ETS catalog, camera capabilities, persistent conversation context, command validation and confirmation safeguards remain layered on top.<br/>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"type": "tab",
|
|
5
5
|
"label": "KNX AI - Conversational control",
|
|
6
6
|
"disabled": false,
|
|
7
|
-
"info": "Example of fresh KNX state reads and
|
|
7
|
+
"info": "Example of fresh KNX state reads, conversational multi-step routines and actuator control with a mandatory confirmation step for writes."
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
"id": "cmt_knx_ai_control_setup",
|
|
@@ -192,6 +192,45 @@
|
|
|
192
192
|
]
|
|
193
193
|
]
|
|
194
194
|
},
|
|
195
|
+
{
|
|
196
|
+
"id": "inj_knx_ai_control_routine",
|
|
197
|
+
"type": "inject",
|
|
198
|
+
"z": "tab_knx_ai_control",
|
|
199
|
+
"name": "Routine: sto uscendo",
|
|
200
|
+
"props": [
|
|
201
|
+
{
|
|
202
|
+
"p": "payload",
|
|
203
|
+
"v": "Sto uscendo: controlla gli stati aggiornati della casa e prepara una routine sicura per spegnere le luci, abbassare le tapparelle e ridurre il clima. Segnalami porte o finestre aperte.",
|
|
204
|
+
"vt": "str"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"p": "topic",
|
|
208
|
+
"v": "ask",
|
|
209
|
+
"vt": "str"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"p": "chatId",
|
|
213
|
+
"v": "demo-chat-1",
|
|
214
|
+
"vt": "str"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"p": "language",
|
|
218
|
+
"v": "it",
|
|
219
|
+
"vt": "str"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"repeat": "",
|
|
223
|
+
"crontab": "",
|
|
224
|
+
"once": false,
|
|
225
|
+
"onceDelay": 0.1,
|
|
226
|
+
"x": 170,
|
|
227
|
+
"y": 340,
|
|
228
|
+
"wires": [
|
|
229
|
+
[
|
|
230
|
+
"node_knx_ai_control"
|
|
231
|
+
]
|
|
232
|
+
]
|
|
233
|
+
},
|
|
195
234
|
{
|
|
196
235
|
"id": "node_knx_ai_control",
|
|
197
236
|
"type": "knxUltimateAI",
|
|
@@ -199,33 +238,13 @@
|
|
|
199
238
|
"server": "cfg_knx_ai_control",
|
|
200
239
|
"name": "KNX AI with confirmation",
|
|
201
240
|
"topic": "knx-ai",
|
|
202
|
-
"notifyreadrequest": true,
|
|
203
|
-
"notifyresponse": true,
|
|
204
|
-
"notifywrite": true,
|
|
205
|
-
"analysisWindowSec": "120",
|
|
206
|
-
"historyWindowSec": "600",
|
|
207
|
-
"historyStoreToDisk": false,
|
|
208
|
-
"historyStoreRetentionDays": "10",
|
|
209
|
-
"emitIntervalSec": "0",
|
|
210
|
-
"topN": "10",
|
|
211
|
-
"maxEvents": "50000",
|
|
212
|
-
"rateWindowSec": "10",
|
|
213
|
-
"maxTelegramPerSecOverall": "0",
|
|
214
|
-
"maxTelegramPerSecPerGA": "0",
|
|
215
|
-
"flapWindowSec": "30",
|
|
216
|
-
"flapMaxChanges": "0",
|
|
217
|
-
"enablePattern": true,
|
|
218
|
-
"patternMaxLagMs": "1500",
|
|
219
|
-
"patternMinCount": "8",
|
|
220
241
|
"llmEnabled": true,
|
|
221
242
|
"llmProvider": "openai_compat",
|
|
222
243
|
"llmBaseUrl": "https://api.openai.com/v1/chat/completions",
|
|
223
244
|
"llmModel": "gpt-5.4",
|
|
224
245
|
"llmSystemPrompt": "Sei un assistente per un impianto KNX. Rispondi in italiano e proponi solo comandi necessari e coerenti con la richiesta.",
|
|
225
246
|
"llmIncludeRaw": false,
|
|
226
|
-
"llmIncludeFlowContext": true,
|
|
227
247
|
"llmIncludeDocsSnippets": true,
|
|
228
|
-
"llmDocsLanguage": "it",
|
|
229
248
|
"llmAllowKnxCommands": true,
|
|
230
249
|
"llmRequireCommandConfirmation": true,
|
|
231
250
|
"x": 520,
|
|
@@ -137,22 +137,6 @@
|
|
|
137
137
|
"server": "cfg_knx_ai_1",
|
|
138
138
|
"name": "KNX AI",
|
|
139
139
|
"topic": "knx-ai",
|
|
140
|
-
"notifywrite": true,
|
|
141
|
-
"notifyresponse": true,
|
|
142
|
-
"notifyreadrequest": true,
|
|
143
|
-
"analysisWindowSec": "60",
|
|
144
|
-
"historyWindowSec": "300",
|
|
145
|
-
"maxEvents": "5000",
|
|
146
|
-
"emitIntervalSec": "0",
|
|
147
|
-
"topN": "10",
|
|
148
|
-
"enablePattern": true,
|
|
149
|
-
"patternMaxLagMs": "1500",
|
|
150
|
-
"patternMinCount": "8",
|
|
151
|
-
"rateWindowSec": "10",
|
|
152
|
-
"maxTelegramPerSecOverall": "0",
|
|
153
|
-
"maxTelegramPerSecPerGA": "0",
|
|
154
|
-
"flapWindowSec": "30",
|
|
155
|
-
"flapMaxChanges": "0",
|
|
156
140
|
"llmEnabled": false,
|
|
157
141
|
"llmProvider": "openai_compat",
|
|
158
142
|
"llmBaseUrl": "https://api.openai.com/v1/chat/completions",
|
|
@@ -236,4 +220,3 @@
|
|
|
236
220
|
"autoReconnect": "yes"
|
|
237
221
|
}
|
|
238
222
|
]
|
|
239
|
-
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"id": "comment_knx_ai_home_intelligence",
|
|
31
31
|
"type": "comment",
|
|
32
32
|
"z": "tab_knx_ai_telegram",
|
|
33
|
-
"name": "3.
|
|
34
|
-
"info": "
|
|
33
|
+
"name": "3. AI Education: bounded memory + proactive cover notifications",
|
|
34
|
+
"info": "AI Education requests proactive notifications after 120 minutes, outside 23:00-07:00, with a six-hour repeat interval. The most recent Telegram chat becomes the recipient. The Markdown memory file has a hard 5 MB limit. Proactive observations use output 3 only and never write to KNX.",
|
|
35
35
|
"x": 520,
|
|
36
36
|
"y": 120,
|
|
37
37
|
"wires": []
|
|
@@ -76,45 +76,19 @@
|
|
|
76
76
|
"server": "cfg_knx_ai_telegram",
|
|
77
77
|
"name": "KNX AI + Telegram adapter",
|
|
78
78
|
"topic": "knx-ai",
|
|
79
|
-
"notifyreadrequest": true,
|
|
80
|
-
"notifyresponse": true,
|
|
81
|
-
"notifywrite": true,
|
|
82
|
-
"analysisWindowSec": "120",
|
|
83
|
-
"historyWindowSec": "600",
|
|
84
|
-
"historyStoreToDisk": false,
|
|
85
|
-
"historyStoreRetentionDays": "10",
|
|
86
|
-
"emitIntervalSec": "0",
|
|
87
|
-
"topN": "10",
|
|
88
|
-
"maxEvents": "50000",
|
|
89
|
-
"rateWindowSec": "10",
|
|
90
|
-
"maxTelegramPerSecOverall": "0",
|
|
91
|
-
"maxTelegramPerSecPerGA": "0",
|
|
92
|
-
"flapWindowSec": "30",
|
|
93
|
-
"flapMaxChanges": "0",
|
|
94
|
-
"enablePattern": true,
|
|
95
|
-
"patternMaxLagMs": "1500",
|
|
96
|
-
"patternMinCount": "8",
|
|
97
79
|
"llmEnabled": true,
|
|
98
80
|
"llmProvider": "openai_compat",
|
|
99
81
|
"llmBaseUrl": "https://api.openai.com/v1/chat/completions",
|
|
100
82
|
"llmModel": "gpt-5.4",
|
|
101
83
|
"llmSystemPrompt": "Sei un assistente per un impianto KNX. Rispondi nella lingua dell'utente.",
|
|
102
84
|
"llmIncludeRaw": false,
|
|
103
|
-
"llmIncludeFlowContext": true,
|
|
104
85
|
"llmIncludeDocsSnippets": true,
|
|
105
|
-
"llmDocsLanguage": "it",
|
|
106
86
|
"llmAllowKnxCommands": true,
|
|
107
87
|
"llmRequireCommandConfirmation": true,
|
|
108
88
|
"chatAdapterPreset": "none",
|
|
109
89
|
"chatInputCode": "",
|
|
110
90
|
"chatOutputCode": "",
|
|
111
|
-
"
|
|
112
|
-
"proactiveRecipient": "",
|
|
113
|
-
"proactiveOpenMinutes": "120",
|
|
114
|
-
"proactiveCooldownMinutes": "360",
|
|
115
|
-
"proactiveQuietStart": "23:00",
|
|
116
|
-
"proactiveQuietEnd": "07:00",
|
|
117
|
-
"aiEducation": "Avvisami se una persiana, una finestra o una porta rimane aperta insolitamente a lungo. Non inviare notifiche durante le ore silenziose configurate.",
|
|
91
|
+
"aiEducation": "Avvisa la mia ultima chat se una persiana, una finestra o una porta rimane aperta per almeno 120 minuti. Non inviare notifiche tra le 23:00 e le 07:00 e non ripetere lo stesso avviso prima di 6 ore.",
|
|
118
92
|
"x": 500,
|
|
119
93
|
"y": 210,
|
|
120
94
|
"wires": [
|