node-red-contrib-knx-ultimate 6.0.10 → 6.0.12
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 +10 -0
- package/nodes/knxUltimateHueLight.html +1 -5
- package/nodes/knxUltimateMatterBridge.html +67 -2
- package/nodes/knxUltimateMatterControllerDevice.html +329 -44
- package/nodes/locales/de/knxUltimateMatterBridge.html +0 -2
- package/nodes/locales/de/knxUltimateMatterControllerDevice.html +10 -2
- package/nodes/locales/de/knxUltimateMatterControllerDevice.json +17 -1
- package/nodes/locales/en/knxUltimateMatterBridge.html +0 -2
- package/nodes/locales/en/knxUltimateMatterControllerDevice.html +10 -2
- package/nodes/locales/en/knxUltimateMatterControllerDevice.json +17 -1
- package/nodes/locales/es/knxUltimateMatterBridge.html +0 -2
- package/nodes/locales/es/knxUltimateMatterControllerDevice.html +10 -2
- package/nodes/locales/es/knxUltimateMatterControllerDevice.json +17 -1
- package/nodes/locales/fr/knxUltimateMatterBridge.html +0 -2
- package/nodes/locales/fr/knxUltimateMatterControllerDevice.html +10 -2
- package/nodes/locales/fr/knxUltimateMatterControllerDevice.json +17 -1
- package/nodes/locales/it/knxUltimateMatterBridge.html +0 -2
- package/nodes/locales/it/knxUltimateMatterControllerDevice.html +10 -2
- package/nodes/locales/it/knxUltimateMatterControllerDevice.json +17 -1
- package/nodes/locales/zh-CN/knxUltimateMatterBridge.html +0 -2
- package/nodes/locales/zh-CN/knxUltimateMatterControllerDevice.html +10 -2
- package/nodes/locales/zh-CN/knxUltimateMatterControllerDevice.json +17 -1
- package/nodes/matter-config.js +5 -4
- package/nodes/utils/matterControllerProfiles/doorLock.js +19 -2
- package/nodes/utils/matterControllerProfiles/fan.js +20 -0
- package/nodes/utils/matterControllerProfiles/index.js +11 -1
- package/nodes/utils/matterControllerProfiles/mappedEndpoint.js +53 -15
- package/nodes/utils/matterControllerProfiles/switch.js +14 -0
- package/nodes/utils/matterControllerProfiles/thermostat.js +20 -0
- package/nodes/utils/matterControllerProfiles/universal.js +462 -0
- package/nodes/utils/matterControllerProfiles/windowCovering.js +20 -0
- package/nodes/utils/matterEngine.mjs +12 -3
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
|
|
7
7
|
# CHANGELOG
|
|
8
8
|
|
|
9
|
+
**Version 6.0.12** - July 2026<br/>
|
|
10
|
+
|
|
11
|
+
- **Control Matter from KNX — Universal Mode**: a dedicated **Mode** selector now switches between a single Matter device and controller-wide Universal Mode. Its **Universal Battery Monitor** scans every commissioned node and endpoint for battery Power Source clusters, maintains a normalized cache, publishes an optional aggregate KNX alarm as DPT 1.005, cycles low-battery device names every 2 seconds as DPT 16.001, and answers `getAllBatteries` flow queries. The alternative **All Matter events** service preserves the generic attribute/event stream and dynamic read/write/command input.<br/>
|
|
12
|
+
- **Universal Battery Monitor — KNX editor and diagnostics**: battery options now use the same vertical-tab and ETS/CSV group-address selectors as single-device profiles. Alarm and text mappings are aligned as Function/GA/DPT/Name rows, support editable names and KNX read responses, ignore wired Power Source endpoints, and show an aggregate battery status instead of per-device `unknown` states.<br/>
|
|
13
|
+
- **Matter light capability refresh**: Color Control `featureMap` and the endpoint device type now drive the Tunable White and RGB/HSV tabs. New selections, changed devices and previously saved nodes normalize stale capabilities so Tunable White lights no longer retain unsupported colour mappings.<br/>
|
|
14
|
+
- **Matter editor/help cleanup**: decorative animated light icons and duplicate localized help headings were removed from the Matter Controller, Matter Bridge and shared light editor where applicable.<br/>
|
|
15
|
+
- **Matter Bridge — editor tab orientation**: the device editor now uses the same left-hand vertical tab layout as Matter Controller, keeping Mappings and Advanced options visually consistent without changing saved configuration.<br/>
|
|
16
|
+
- **Control Matter from KNX — dedicated controller profiles**: Window Covering (`0x0102`), Thermostat (`0x0201`), Fan Control (`0x0202`) and Switch (`0x003B`) endpoints are now selected into explicit capability-driven profiles instead of the anonymous mapped fallback. They share the guarded mapping lifecycle while enforcing their native input/event cluster boundary and presenting semantic canvas status; Switch initial/long/multi-press events are filtered to the selected endpoint and exposed on the optional flow output. Simple actuators and sensors remain on the generic mapped profile.<br/>
|
|
17
|
+
- **Control Matter from KNX — flow attribute reads and persistent Door Lock status**: mapped endpoints now use an unambiguous top-level flow contract: `msg.clusterId` plus `msg.attribute` reads an attribute, `msg.value` makes it an attribute write, and `msg.command` plus `msg.args` invokes a command. Reads return the value in `msg.payload`, may force a remote request with `msg.requestFromRemote = true`, and accept numeric attribute ID `0`. Door Lock nodes now retain their last `locked`/`unlocked` canvas status when generic Matter or KNX notifications arrive.<br/>
|
|
18
|
+
|
|
9
19
|
**Version 6.0.10** - July 2026<br/>
|
|
10
20
|
|
|
11
21
|
- **Matter nodes — crash containment**: asynchronous bridge state updates, controller client callbacks, engine errors, startup/watchdog timers and the controller command queue are now guarded so rejected promises and EventEmitter errors are reported instead of becoming uncaught exceptions or unhandled rejections capable of stopping Node-RED.<br/>
|
|
@@ -1777,10 +1777,6 @@
|
|
|
1777
1777
|
target="_blank" href="https://youtu.be/jjEUI1J8bkA"><u><span data-i18n="common.youtube_sample"></span></u></a>
|
|
1778
1778
|
<br />
|
|
1779
1779
|
<br />
|
|
1780
|
-
<p align="center">
|
|
1781
|
-
<i class="fa-regular fa-lightbulb fa-bounce fa-2x"></i>
|
|
1782
|
-
</p>
|
|
1783
|
-
<br />
|
|
1784
1780
|
<label for="node-input-server">
|
|
1785
1781
|
<img
|
|
1786
1782
|
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAKnRFWHRDcmVhdGlvbiBUaW1lAEZyIDYgQXVnIDIwMTAgMjE6NTI6MTkgKzAxMDD84aS8AAAAB3RJTUUH3gYYCicNV+4WIQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAACUSURBVHjaY2CgFZg5c+Z/ZEyWAZ8+f/6/ZsWs/xoamqMGkGrA6Wla/1+fVARjEBuGsSoGmY4eZSCNL59d/g8DIDbIAHR14OgFGQByKjIGKX5+6/T///8gGMQGiV1+/B0Fg70GIkD+RMYgxf/O5/7//2MSmAZhkBi6OrgB6Bg5DGB4ajr3f2xqsYYLSDE2THJUDg0AAAqyDVd4tp4YAAAAAElFTkSuQmCC"></img>
|
|
@@ -2487,4 +2483,4 @@ Use the **Hue native effects** table to map your KNX values to the effects suppo
|
|
|
2487
2483
|
The Dimming function works in **KNX mode `start` and`stop` ** . To start dimming, send only one "start" KNX telegram. To stop dimming, send a "stop" KNX telegram. Please**remember that** , when you set your wall swiches properties.
|
|
2488
2484
|
|
|
2489
2485
|
<br/>
|
|
2490
|
-
</script>
|
|
2486
|
+
</script>
|
|
@@ -109,8 +109,71 @@
|
|
|
109
109
|
try { RED.sidebar.show('help'); } catch (error) { /* empty */ }
|
|
110
110
|
const node = this;
|
|
111
111
|
|
|
112
|
-
//
|
|
113
|
-
$('#
|
|
112
|
+
// Keep the same left-hand vertical tab orientation as Matter Controller.
|
|
113
|
+
if ($('#knxUltimateMatterControllerDeviceVerticalTabs').length === 0) {
|
|
114
|
+
$('head').append(`
|
|
115
|
+
<style id="knxUltimateMatterControllerDeviceVerticalTabs">
|
|
116
|
+
.hue-vertical-tabs.ui-tabs.ui-widget.ui-widget-content.ui-corner-all {
|
|
117
|
+
display: flex;
|
|
118
|
+
border: none;
|
|
119
|
+
padding: 0;
|
|
120
|
+
}
|
|
121
|
+
.hue-vertical-tabs > ul.ui-tabs-nav {
|
|
122
|
+
flex: 0 0 180px;
|
|
123
|
+
border-right: 1px solid #ccc;
|
|
124
|
+
border-left: none;
|
|
125
|
+
border-top: none;
|
|
126
|
+
border-bottom: none;
|
|
127
|
+
padding: 0.5em 0.3em;
|
|
128
|
+
}
|
|
129
|
+
.hue-vertical-tabs > ul.ui-tabs-nav li {
|
|
130
|
+
float: none;
|
|
131
|
+
width: 100%;
|
|
132
|
+
margin: 0 0 2px 0;
|
|
133
|
+
}
|
|
134
|
+
.hue-vertical-tabs > ul.ui-tabs-nav li a {
|
|
135
|
+
display: block;
|
|
136
|
+
width: 100%;
|
|
137
|
+
white-space: normal;
|
|
138
|
+
position: relative;
|
|
139
|
+
border-bottom: none !important;
|
|
140
|
+
}
|
|
141
|
+
.hue-vertical-tabs > ul.ui-tabs-nav li.ui-tabs-active {
|
|
142
|
+
border-bottom: none !important;
|
|
143
|
+
}
|
|
144
|
+
.hue-vertical-tabs > ul.ui-tabs-nav li.ui-tabs-active a::after {
|
|
145
|
+
content: "";
|
|
146
|
+
position: absolute;
|
|
147
|
+
left: 0;
|
|
148
|
+
bottom: 0;
|
|
149
|
+
width: 50%;
|
|
150
|
+
height: 3px;
|
|
151
|
+
background: currentColor;
|
|
152
|
+
}
|
|
153
|
+
.hue-vertical-tabs .ui-tabs-panel {
|
|
154
|
+
flex: 1;
|
|
155
|
+
padding: 0.8em 1em;
|
|
156
|
+
box-sizing: border-box;
|
|
157
|
+
border: none;
|
|
158
|
+
background: transparent;
|
|
159
|
+
}
|
|
160
|
+
.hue-vertical-tabs .form-row > dt {
|
|
161
|
+
flex: 1 1 auto;
|
|
162
|
+
margin: 0;
|
|
163
|
+
}
|
|
164
|
+
.hue-vertical-tabs hr {
|
|
165
|
+
width: 100%;
|
|
166
|
+
border: 0;
|
|
167
|
+
border-top: 1px solid #ccc;
|
|
168
|
+
margin: 8px 0;
|
|
169
|
+
}
|
|
170
|
+
</style>`);
|
|
171
|
+
}
|
|
172
|
+
const $tabs = $('#mb-tabs');
|
|
173
|
+
$tabs.addClass('hue-vertical-tabs');
|
|
174
|
+
$tabs.tabs();
|
|
175
|
+
$tabs.find('ul').addClass('ui-tabs-nav');
|
|
176
|
+
$tabs.find('li').removeClass('ui-corner-top').addClass('ui-corner-left');
|
|
114
177
|
|
|
115
178
|
// Resolves the KNX gateway at query time: the selected one, or - as a
|
|
116
179
|
// fallback - the first knxUltimate-config available, so the GA list works
|
|
@@ -441,6 +504,8 @@ Exposes **one KNX device as a Matter device**. This node is in **BETA**.
|
|
|
441
504
|
|
|
442
505
|
Point it to a **Matter Bridge** configuration node (the actual bridge, paired once by Alexa/Google Home/Apple Home), pick the device type, give it the name the assistant will use, and fill the group addresses.
|
|
443
506
|
|
|
507
|
+
The **Mappings** and **Advanced** tabs are arranged vertically on the left, matching the Matter Controller editor.
|
|
508
|
+
|
|
444
509
|
- **Matter → KNX**: commands from the voice assistant write to the *command* group addresses.
|
|
445
510
|
- **KNX → Matter**: telegrams on the *status* group addresses update the Matter attribute (and the app UI).
|
|
446
511
|
|