node-red-contrib-knx-ultimate 6.3.32 → 7.0.0
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 +128 -116
- package/README.md +4 -0
- package/nodes/knxUltimateAI.html +29 -11
- package/nodes/knxUltimateAI.js +1567 -237
- package/nodes/knxUltimateAIHomeAssistant.html +40 -0
- package/nodes/knxUltimateAIHomeAssistant.js +152 -0
- package/nodes/knxUltimateHueController.html +1 -1
- package/nodes/knxUltimateMatterBridge.html +2 -2
- package/nodes/knxUltimateMatterControllerDevice.html +12 -12
- package/nodes/locales/de/knxUltimateAI.html +4 -199
- package/nodes/locales/de/knxUltimateAI.json +11 -8
- package/nodes/locales/de/knxUltimateViewer.html +1 -1
- package/nodes/locales/en/knxUltimateAI.html +4 -203
- package/nodes/locales/en/knxUltimateAI.json +11 -8
- package/nodes/locales/en/knxUltimateViewer.html +1 -1
- package/nodes/locales/es/knxUltimateAI.html +4 -199
- package/nodes/locales/es/knxUltimateAI.json +11 -8
- package/nodes/locales/es/knxUltimateViewer.html +1 -1
- package/nodes/locales/fr/knxUltimateAI.html +4 -199
- package/nodes/locales/fr/knxUltimateAI.json +11 -8
- package/nodes/locales/fr/knxUltimateViewer.html +1 -1
- package/nodes/locales/it/knxUltimateAI.html +4 -203
- package/nodes/locales/it/knxUltimateAI.json +11 -8
- package/nodes/locales/it/knxUltimateViewer.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateAI.html +4 -199
- package/nodes/locales/zh-CN/knxUltimateAI.json +11 -8
- package/nodes/locales/zh-CN/knxUltimateViewer.html +1 -1
- package/nodes/plugins/knxUltimate-cerebrum-runtime-plugin.js +79 -0
- package/nodes/plugins/knxUltimateAI-vue/assets/app.css +1 -1
- package/nodes/plugins/knxUltimateAI-vue/assets/app.js +13 -4
- package/nodes/plugins/knxUltimateAI-vue/index.html +1 -1
- package/nodes/plugins/knxUltimateViewer-vue/assets/app.js +2 -2
- package/nodes/utils/knxAiCamera.js +4 -4
- package/nodes/utils/knxAiCerebrum.js +406 -0
- package/nodes/utils/knxAiChatContext.js +4 -4
- package/nodes/utils/knxAiHomeMemory.js +543 -9
- package/nodes/utils/knxAiScheduler.js +2 -2
- package/nodes/utils/knxAiSemanticContext.js +5 -5
- package/package.json +4 -2
- package/resources/KNXAIChatAdapterMappings.js +35 -9
- package/resources/hueControllerProfiles.js +7614 -7622
- package/examples/KNX AI - Conversational Control with Confirmation.json +0 -395
- package/examples/KNX AI - Summary Anomalies and Ask.json +0 -226
- package/examples/KNX AI - Telegrambot Direct Chat.json +0 -198
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"id": "tab_knx_ai_telegram",
|
|
4
|
-
"type": "tab",
|
|
5
|
-
"label": "KNX AI - Telegrambot direct chat",
|
|
6
|
-
"disabled": false,
|
|
7
|
-
"info": "Direct text and voice chat wiring for windkh/node-red-contrib-telegrambot using the KNX AI chat-adapter preset. After deploying, review the automatic Setup Doctor and send /start to the bot for a deterministic, localized introduction with personalized safe suggestions. A voice request is transcribed and receives an Opus voice reply; confirmation buttons return through the same receiver, so no callback event node is required. Voice processing requires the selected OpenAI-compatible chat provider and reuses its endpoint and API key."
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
"id": "comment_knx_ai_telegram_setup",
|
|
11
|
-
"type": "comment",
|
|
12
|
-
"z": "tab_knx_ai_telegram",
|
|
13
|
-
"name": "1. Configure, check Setup Doctor, then send /start",
|
|
14
|
-
"info": "The windkh/node-red-contrib-telegrambot preset is already selected. Configure the KNX gateway, import the ETS CSV, select the OpenAI-compatible chat provider with an endpoint that supports /audio/transcriptions and /audio/speech, enter its API key when required, and configure the Telegram bot token. Deploy, review the automatic Setup Doctor, then send /start or /help to receive the safe personalized welcome and Telegram suggestion keyboard; this onboarding does not call the LLM, read or write KNX, or generate TTS. Text requests receive text; voice requests receive voice, with text fallback if speech synthesis fails. Anthropic, Ollama and Bionic LM Studio remain available for text chat but do not process Telegram voice. Output 5 is left unwired: connect it to one or more ttsultimate nodes, or use Link Out/Link In across flow tabs, for model-selected home announcements.",
|
|
15
|
-
"x": 500,
|
|
16
|
-
"y": 40,
|
|
17
|
-
"wires": []
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"id": "comment_knx_ai_telegram_warning",
|
|
21
|
-
"type": "comment",
|
|
22
|
-
"z": "tab_knx_ai_telegram",
|
|
23
|
-
"name": "Reads are immediate; actuator writes require the Telegram confirmation button",
|
|
24
|
-
"info": "Use safe KNX group addresses while testing. Confirmation is enabled by default and pending write plans expire after five minutes.",
|
|
25
|
-
"x": 500,
|
|
26
|
-
"y": 80,
|
|
27
|
-
"wires": []
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"id": "comment_knx_ai_home_intelligence",
|
|
31
|
-
"type": "comment",
|
|
32
|
-
"z": "tab_knx_ai_telegram",
|
|
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
|
-
"x": 520,
|
|
36
|
-
"y": 120,
|
|
37
|
-
"wires": []
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"id": "telegram_receiver_knx_ai",
|
|
41
|
-
"type": "telegram receiver",
|
|
42
|
-
"z": "tab_knx_ai_telegram",
|
|
43
|
-
"name": "Telegram text + voice",
|
|
44
|
-
"bot": "telegram_bot_knx_ai",
|
|
45
|
-
"saveDataDir": "",
|
|
46
|
-
"filterCommands": false,
|
|
47
|
-
"x": 170,
|
|
48
|
-
"y": 180,
|
|
49
|
-
"wires": [
|
|
50
|
-
[
|
|
51
|
-
"node_knx_ai_telegram"
|
|
52
|
-
],
|
|
53
|
-
[]
|
|
54
|
-
]
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"id": "node_knx_ai_telegram",
|
|
58
|
-
"type": "knxUltimateAI",
|
|
59
|
-
"z": "tab_knx_ai_telegram",
|
|
60
|
-
"server": "cfg_knx_ai_telegram",
|
|
61
|
-
"name": "KNX AI + Telegram adapter",
|
|
62
|
-
"topic": "knx-ai",
|
|
63
|
-
"llmEnabled": true,
|
|
64
|
-
"llmProvider": "openai_compat",
|
|
65
|
-
"llmBaseUrl": "https://api.openai.com/v1/chat/completions",
|
|
66
|
-
"llmModel": "gpt-5.4",
|
|
67
|
-
"llmSystemPrompt": "Sei un assistente per un impianto KNX. Rispondi nella lingua dell'utente.",
|
|
68
|
-
"llmIncludeRaw": false,
|
|
69
|
-
"llmIncludeDocsSnippets": true,
|
|
70
|
-
"llmAllowKnxCommands": true,
|
|
71
|
-
"llmRequireCommandConfirmation": true,
|
|
72
|
-
"chatAdapterPreset": "windkh-telegrambot",
|
|
73
|
-
"chatInputCode": "",
|
|
74
|
-
"chatOutputCode": "",
|
|
75
|
-
"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.",
|
|
76
|
-
"x": 500,
|
|
77
|
-
"y": 210,
|
|
78
|
-
"wires": [
|
|
79
|
-
[],
|
|
80
|
-
[],
|
|
81
|
-
[
|
|
82
|
-
"telegram_sender_knx_ai",
|
|
83
|
-
"debug_knx_ai_telegram_reply"
|
|
84
|
-
],
|
|
85
|
-
[
|
|
86
|
-
"node_knx_ai_telegram_universal"
|
|
87
|
-
],
|
|
88
|
-
[
|
|
89
|
-
]
|
|
90
|
-
]
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"id": "telegram_sender_knx_ai",
|
|
94
|
-
"type": "telegram sender",
|
|
95
|
-
"z": "tab_knx_ai_telegram",
|
|
96
|
-
"name": "Telegram reply",
|
|
97
|
-
"bot": "telegram_bot_knx_ai",
|
|
98
|
-
"haserroroutput": false,
|
|
99
|
-
"outputs": 1,
|
|
100
|
-
"x": 790,
|
|
101
|
-
"y": 180,
|
|
102
|
-
"wires": [
|
|
103
|
-
[]
|
|
104
|
-
]
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"id": "debug_knx_ai_telegram_reply",
|
|
108
|
-
"type": "debug",
|
|
109
|
-
"z": "tab_knx_ai_telegram",
|
|
110
|
-
"name": "Adapted Telegram msg",
|
|
111
|
-
"active": true,
|
|
112
|
-
"tosidebar": true,
|
|
113
|
-
"console": false,
|
|
114
|
-
"tostatus": false,
|
|
115
|
-
"complete": "true",
|
|
116
|
-
"targetType": "full",
|
|
117
|
-
"x": 810,
|
|
118
|
-
"y": 230,
|
|
119
|
-
"wires": []
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"id": "node_knx_ai_telegram_universal",
|
|
123
|
-
"type": "knxUltimate",
|
|
124
|
-
"z": "tab_knx_ai_telegram",
|
|
125
|
-
"server": "cfg_knx_ai_telegram",
|
|
126
|
-
"topic": "0/0/0",
|
|
127
|
-
"dpt": "1.001",
|
|
128
|
-
"initialread": false,
|
|
129
|
-
"notifyreadrequest": false,
|
|
130
|
-
"notifyresponse": true,
|
|
131
|
-
"notifywrite": true,
|
|
132
|
-
"notifyreadrequestalsorespondtobus": false,
|
|
133
|
-
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "",
|
|
134
|
-
"listenallga": true,
|
|
135
|
-
"setTopicType": "listenAllGA",
|
|
136
|
-
"name": "KNX Ultimate - Universal Mode",
|
|
137
|
-
"outputtype": "write",
|
|
138
|
-
"outputRBE": false,
|
|
139
|
-
"inputRBE": false,
|
|
140
|
-
"x": 800,
|
|
141
|
-
"y": 300,
|
|
142
|
-
"wires": [
|
|
143
|
-
[
|
|
144
|
-
"debug_knx_ai_telegram_bus"
|
|
145
|
-
]
|
|
146
|
-
]
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
"id": "debug_knx_ai_telegram_bus",
|
|
150
|
-
"type": "debug",
|
|
151
|
-
"z": "tab_knx_ai_telegram",
|
|
152
|
-
"name": "KNX telegrams",
|
|
153
|
-
"active": true,
|
|
154
|
-
"tosidebar": true,
|
|
155
|
-
"console": false,
|
|
156
|
-
"tostatus": false,
|
|
157
|
-
"complete": "true",
|
|
158
|
-
"targetType": "full",
|
|
159
|
-
"x": 1050,
|
|
160
|
-
"y": 300,
|
|
161
|
-
"wires": []
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
"id": "telegram_bot_knx_ai",
|
|
165
|
-
"type": "telegram bot",
|
|
166
|
-
"botname": "Configure your BotFather bot",
|
|
167
|
-
"usernames": "",
|
|
168
|
-
"chatids": "",
|
|
169
|
-
"baseapiurl": "",
|
|
170
|
-
"updatemode": "polling",
|
|
171
|
-
"pollinterval": "300",
|
|
172
|
-
"usesocks": false,
|
|
173
|
-
"sockshost": "",
|
|
174
|
-
"socksport": "",
|
|
175
|
-
"socksusername": "anonymous",
|
|
176
|
-
"sockspassword": "",
|
|
177
|
-
"bothost": "",
|
|
178
|
-
"localbotport": "8443",
|
|
179
|
-
"publicbotport": "8443",
|
|
180
|
-
"privatekey": "",
|
|
181
|
-
"certificate": "",
|
|
182
|
-
"useselfsignedcertificate": false,
|
|
183
|
-
"sslterminated": false,
|
|
184
|
-
"verboselogging": false
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
"id": "cfg_knx_ai_telegram",
|
|
188
|
-
"type": "knxUltimate-config",
|
|
189
|
-
"host": "224.0.23.12",
|
|
190
|
-
"port": "3671",
|
|
191
|
-
"physAddr": "15.15.202",
|
|
192
|
-
"suppressACKRequest": false,
|
|
193
|
-
"csv": "",
|
|
194
|
-
"KNXEthInterface": "Auto",
|
|
195
|
-
"KNXEthInterfaceManuallyInput": "",
|
|
196
|
-
"autoReconnect": "yes"
|
|
197
|
-
}
|
|
198
|
-
]
|