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
package/README.md
CHANGED
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
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, diagnostics, virtual devices, and powerful automation nodes. Build professional, reliable, and scalable smart home and building automation projects with minimal effort.
|
|
10
10
|
|
|
11
|
+
## Cerebrum Ultimate
|
|
12
|
+
|
|
13
|
+
The former bundled AI assistant has moved to the standalone [Cerebrum Ultimate](https://github.com/Supergiovane/node-red-contrib-cerebrum-ultimate) package. Cerebrum Ultimate now provides the conversational, learning and supervised home-intelligence features, while using KNX Ultimate as an optional compatible integration. Hidden legacy runtime types remain in this package only so existing Node-RED flows continue to load; new installations should add the Cerebrum node from the standalone package.
|
|
14
|
+
|
|
11
15
|
<br/>
|
|
12
16
|
<br/>
|
|
13
17
|
<br/>
|
package/nodes/knxUltimateAI.html
CHANGED
|
@@ -467,11 +467,11 @@
|
|
|
467
467
|
|
|
468
468
|
<script type="text/javascript">
|
|
469
469
|
RED.nodes.registerType('knxUltimateAI', {
|
|
470
|
-
category: "KNX Ultimate
|
|
470
|
+
category: "KNX Ultimate (legacy)",
|
|
471
471
|
color: '#FF9800',
|
|
472
472
|
defaults: {
|
|
473
473
|
server: { type: "knxUltimate-config", required: true },
|
|
474
|
-
name: { value: "
|
|
474
|
+
name: { value: "Legacy AI node", required: false },
|
|
475
475
|
topic: { value: "", required: false },
|
|
476
476
|
|
|
477
477
|
llmEnabled: { value: false },
|
|
@@ -509,9 +509,9 @@
|
|
|
509
509
|
},
|
|
510
510
|
icon: "node-eye-icon.svg",
|
|
511
511
|
label: function () {
|
|
512
|
-
return (this.name || "
|
|
512
|
+
return (this.name || "Legacy AI node");
|
|
513
513
|
},
|
|
514
|
-
paletteLabel: "
|
|
514
|
+
paletteLabel: "Legacy AI node",
|
|
515
515
|
oneditprepare: function () {
|
|
516
516
|
try { RED.sidebar.show("help"); } catch (error) { }
|
|
517
517
|
const node = this;
|
|
@@ -873,7 +873,7 @@
|
|
|
873
873
|
.text(String(prompt.text))
|
|
874
874
|
.on("click", function (evt) {
|
|
875
875
|
evt.preventDefault();
|
|
876
|
-
openKnxAiWebPage("
|
|
876
|
+
openKnxAiWebPage("cerebrum", String(prompt.text));
|
|
877
877
|
})
|
|
878
878
|
.appendTo($prompts);
|
|
879
879
|
});
|
|
@@ -1004,7 +1004,7 @@
|
|
|
1004
1004
|
homeMemory: t("knxUltimateAI.messages.chatContextFileHomeMemory", "Bounded learned home memory only; AI Education remains in the node property."),
|
|
1005
1005
|
schedules: t("knxUltimateAI.messages.chatContextFileSchedules", "Authoritative structured plans and reminders for this node."),
|
|
1006
1006
|
schedulesReadable: t("knxUltimateAI.messages.chatContextFileSchedulesReadable", "Human-readable plans and reminders generated from the scheduler state."),
|
|
1007
|
-
assistantConfig: t("knxUltimateAI.messages.chatContextFileAssistantConfig", "Persistent
|
|
1007
|
+
assistantConfig: t("knxUltimateAI.messages.chatContextFileAssistantConfig", "Persistent Cerebrum configuration and semantic areas for this node."),
|
|
1008
1008
|
lastChatPrompt: t("knxUltimateAI.messages.chatContextFileLastChatPrompt", "Temporary local copy of the latest system and user messages sent to the chat model; overwritten on every chat request.")
|
|
1009
1009
|
};
|
|
1010
1010
|
(Array.isArray(overview.files) ? overview.files : []).forEach(function (item) {
|
|
@@ -1082,10 +1082,14 @@
|
|
|
1082
1082
|
const params = new URLSearchParams();
|
|
1083
1083
|
if (nodeId) params.set("nodeId", nodeId);
|
|
1084
1084
|
if (view === "chat-learning") {
|
|
1085
|
-
params.set("tab", "
|
|
1086
|
-
params.set("
|
|
1087
|
-
} else if (view === "
|
|
1088
|
-
params.set("tab", "
|
|
1085
|
+
params.set("tab", "cerebrum");
|
|
1086
|
+
params.set("cerebrumTab", "learning");
|
|
1087
|
+
} else if (view === "cerebrum-memory") {
|
|
1088
|
+
params.set("tab", "cerebrum");
|
|
1089
|
+
params.set("cerebrumTab", "memory");
|
|
1090
|
+
} else if (view === "cerebrum") {
|
|
1091
|
+
params.set("tab", "cerebrum");
|
|
1092
|
+
params.set("cerebrumTab", "conversation");
|
|
1089
1093
|
if (prompt) params.set("prompt", String(prompt));
|
|
1090
1094
|
}
|
|
1091
1095
|
const accessToken = resolveAccessToken();
|
|
@@ -1105,6 +1109,11 @@
|
|
|
1105
1109
|
openKnxAiWebPage("chat-learning");
|
|
1106
1110
|
});
|
|
1107
1111
|
|
|
1112
|
+
$("#knx-ai-open-cerebrum-memory").on("click", function (evt) {
|
|
1113
|
+
evt.preventDefault();
|
|
1114
|
+
openKnxAiWebPage("cerebrum-memory");
|
|
1115
|
+
});
|
|
1116
|
+
|
|
1108
1117
|
const setRefreshModelsBusy = (busy) => {
|
|
1109
1118
|
const $button = $("#knx-ai-refreshModels");
|
|
1110
1119
|
$button.prop("disabled", !!busy);
|
|
@@ -1522,9 +1531,13 @@
|
|
|
1522
1531
|
} catch (error) { }
|
|
1523
1532
|
}
|
|
1524
1533
|
})
|
|
1534
|
+
// The historical type remains registered so deployed flows keep loading,
|
|
1535
|
+
// but new Cerebrum nodes belong to node-red-contrib-cerebrum-ultimate.
|
|
1536
|
+
try { RED.palette.remove('knxUltimateAI'); } catch (error) { }
|
|
1525
1537
|
</script>
|
|
1526
1538
|
|
|
1527
1539
|
<script type="text/html" data-template-name="knxUltimateAI">
|
|
1540
|
+
<div class="form-tips" style="margin-bottom:10px;"><b>Legacy node:</b> existing flow instances remain supported. For new installations use <a href="https://github.com/Supergiovane/node-red-contrib-cerebrum-ultimate#readme" target="_blank"><b>Cerebrum Ultimate</b></a>.</div>
|
|
1528
1541
|
<div class="form-row" style="margin-bottom:10px;">
|
|
1529
1542
|
<span style="color:#ff0000"><i class="fa fa-youtube"></i></span> <a target="_blank" href="https://www.youtube.com/playlist?list=PL9Yh1bjbLAYrU8PsVhW4xzEug2WtVFv3E"><b>KNX-Ultimate video tutorials (YouTube playlist)</b></a>
|
|
1530
1543
|
</div>
|
|
@@ -1550,7 +1563,7 @@
|
|
|
1550
1563
|
<label><i class="fa fa-external-link"></i> Web UI</label>
|
|
1551
1564
|
<div style="display:flex; gap:8px; flex-wrap:wrap;">
|
|
1552
1565
|
<button type="button" class="red-ui-button" id="knx-ai-open-web-page-vue" style="background-color:#ff9800; border-color:#ff9800; color:#ffffff !important; -webkit-text-fill-color:#ffffff;">
|
|
1553
|
-
<i class="fa fa-external-link" style="color:#ffffff !important;"></i> <span style="color:#ffffff !important;">Open
|
|
1566
|
+
<i class="fa fa-external-link" style="color:#ffffff !important;"></i> <span style="color:#ffffff !important;">Open Cerebrum Ultimate Web Page</span>
|
|
1554
1567
|
</button>
|
|
1555
1568
|
</div>
|
|
1556
1569
|
</div>
|
|
@@ -1590,6 +1603,11 @@
|
|
|
1590
1603
|
<button type="button" class="red-ui-button" id="knx-ai-open-chat-learning">
|
|
1591
1604
|
<i class="fa fa-external-link"></i> <span data-i18n="knxUltimateAI.buttons.openChatLearning"></span>
|
|
1592
1605
|
</button>
|
|
1606
|
+
<h4 style="margin-top:14px;"><i class="fa fa-database"></i> <span data-i18n="knxUltimateAI.sections.cerebrumMemory"></span></h4>
|
|
1607
|
+
<p class="knx-ai-chat-learning-link-copy" data-i18n="knxUltimateAI.messages.cerebrumMemoryOpenHint"></p>
|
|
1608
|
+
<button type="button" class="red-ui-button" id="knx-ai-open-cerebrum-memory">
|
|
1609
|
+
<i class="fa fa-external-link"></i> <span data-i18n="knxUltimateAI.buttons.openCerebrumMemory"></span>
|
|
1610
|
+
</button>
|
|
1593
1611
|
</div>
|
|
1594
1612
|
<div id="knx-ai-detected-adapters-panel">
|
|
1595
1613
|
<h4><i class="fa fa-puzzle-piece"></i> <span data-i18n="knxUltimateAI.sections.detectedAdapters"></span></h4>
|