node-red-contrib-knx-ultimate 5.2.1 → 5.2.2
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 +13 -10
- package/nodes/commonFunctions.js +9 -9
- package/nodes/knxUltimateMatterBridge.html +212 -299
- package/nodes/knxUltimateMatterBridge.js +166 -309
- package/nodes/knxUltimateMatterDevice.html +46 -0
- package/nodes/locales/de/knxUltimateMatterBridge.html +13 -24
- package/nodes/locales/de/knxUltimateMatterBridge.json +4 -1
- package/nodes/locales/de/matterbridge-config.html +34 -0
- package/nodes/locales/de/matterbridge-config.json +20 -0
- package/nodes/locales/en/knxUltimateMatterBridge.html +14 -25
- package/nodes/locales/en/knxUltimateMatterBridge.json +4 -1
- package/nodes/locales/en/matterbridge-config.html +34 -0
- package/nodes/locales/en/matterbridge-config.json +20 -0
- package/nodes/locales/es/knxUltimateMatterBridge.html +13 -24
- package/nodes/locales/es/knxUltimateMatterBridge.json +4 -1
- package/nodes/locales/es/matterbridge-config.html +34 -0
- package/nodes/locales/es/matterbridge-config.json +20 -0
- package/nodes/locales/fr/knxUltimateMatterBridge.html +13 -24
- package/nodes/locales/fr/knxUltimateMatterBridge.json +4 -1
- package/nodes/locales/fr/matterbridge-config.html +34 -0
- package/nodes/locales/fr/matterbridge-config.json +20 -0
- package/nodes/locales/it/knxUltimateMatterBridge.html +13 -24
- package/nodes/locales/it/knxUltimateMatterBridge.json +4 -1
- package/nodes/locales/it/matterbridge-config.html +34 -0
- package/nodes/locales/it/matterbridge-config.json +20 -0
- package/nodes/locales/zh-CN/knxUltimateMatterBridge.html +13 -24
- package/nodes/locales/zh-CN/knxUltimateMatterBridge.json +4 -1
- package/nodes/locales/zh-CN/matterbridge-config.html +34 -0
- package/nodes/locales/zh-CN/matterbridge-config.json +20 -0
- package/nodes/matterbridge-config.html +121 -0
- package/nodes/matterbridge-config.js +220 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,16 +6,19 @@
|
|
|
6
6
|
|
|
7
7
|
# CHANGELOG
|
|
8
8
|
|
|
9
|
-
**Version 5.2.
|
|
10
|
-
|
|
11
|
-
- New **Matter Bridge (BETA)
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
9
|
+
**Version 5.2.2** - July 2026<br/>
|
|
10
|
+
|
|
11
|
+
- New **Matter Bridge (BETA)**: exposes **KNX group addresses as Matter devices**. Alexa, Google Home, Apple Home (or any Matter controller) commission the bridge once — via QR code or 11-digit manual code shown in the editor — and see all your KNX devices with the names you typed, ready for app and voice control. It is the opposite direction of the Matter Device node introduced in 5.1.0.<br/>
|
|
12
|
+
- Two-node architecture (like the HUE and Matter Controller integrations): a **Matter Bridge** configuration node is the bridge itself (holds the pairing, the QR code and the port), and a **Matter Bridge device** node is added per exposed device and points to it. Spread the device nodes across your flows, each with its own status — no giant list.<br/>
|
|
13
|
+
- **17 device types**: on/off light, dimmable light, **RGB color light** (DPT 232.600, converted to/from the Matter color wheel), **tunable white light** (color temperature in Kelvin, DPT 7.600), plug, cover/shutter (up/down, stop, position % with optional inversion), thermostat (current temperature + heating setpoint, both ways), **fan/ventilation** (speed %), sensors (temperature, humidity, illuminance, occupancy, contact), **smoke/CO alarm**, **water leak detector**, **air quality sensor** (CO2 ppm with automatic air-quality classification) and **robot vacuum** (flow-only: integrate your robot with any Node-RED node and expose it to the voice assistants).<br/>
|
|
14
|
+
- Bidirectional with loop protection: assistant commands write to the KNX *command* group addresses; telegrams on the *status* group addresses update the Matter attributes (and the apps). At startup each device node can send a `GroupValue_Read` to its status GAs so the Matter attributes are populated before the first app query.<br/>
|
|
15
|
+
- **Live device reconciliation**: the Matter server stays alive across re-deploys — added/renamed/removed device nodes appear on the paired controllers within seconds, without restarting Node-RED and without re-pairing.<br/>
|
|
16
|
+
- Optional **node Input/Output PINs**: the output forwards every controller command to the flow; the input updates the Matter state from flow messages (`msg.payload = { function, value }`). Devices without a command GA become flow-only devices.<br/>
|
|
17
|
+
- The **KNX gateway is optional** on the device node: without it the device runs in flow-only mode, useful to expose flow-computed or non-KNX devices to Alexa & Co.<br/>
|
|
18
|
+
- Multi-fabric: several controllers can be paired at the same time; the pairing panel lists them and a **Reset pairing** button decommissions everything. The bridge identity persists across re-deploys (no re-pairing needed). Each configuration node can use a different UDP port, so multiple independent bridges are possible.<br/>
|
|
19
|
+
- Editor with ETS group-address autocomplete filtered per function: the KNX gateway is resolved automatically (auto-selected when only one exists), so the address list is always available. Localized in EN/IT/DE/FR/ES/zh-CN.<br/>
|
|
20
|
+
- Note for early 5.2.x BETA testers: the two-node split changes the Matter identity of the bridge - remove the old bridge from your Matter app and pair the new configuration node once.<br/>
|
|
21
|
+
- **Matter Device** node editor: the mappings list grows to fill the edit panel and has a native resize grip (bottom-right corner) to drag it to any height.<br/>
|
|
19
22
|
- Matter integration hardening: try/catch protection on all critical paths (controller startup, client registration, structure queries, commissioning aftermath) so errors never crash Node-RED. Fixed the devices editor losing the configured group addresses on close/reopen (with automatic recovery of configurations saved by the affected versions).<br/>
|
|
20
23
|
- **Documentation**: node help for the three Matter nodes in all six languages, new **Matter section** in the online docs sidebar with the Matter Controller, Matter Device and Matter Bridge pages (EN/IT/DE/FR/ES/zh-CN), the two new nodes on the homepage node list and the Matter logo alongside Home Assistant and MQTT.<br/>
|
|
21
24
|
|
package/nodes/commonFunctions.js
CHANGED
|
@@ -1006,15 +1006,15 @@ module.exports = (RED) => {
|
|
|
1006
1006
|
}
|
|
1007
1007
|
})
|
|
1008
1008
|
|
|
1009
|
-
// MATTER BRIDGE: returns the pairing info (QR code, manual code, commissioned fabrics) of a
|
|
1010
|
-
RED.httpAdmin.get('/KNXUltimateMatterBridgeInfo', RED.auth.needsPermission('
|
|
1009
|
+
// MATTER BRIDGE: returns the pairing info (QR code, manual code, commissioned fabrics) of a matterbridge-config node
|
|
1010
|
+
RED.httpAdmin.get('/KNXUltimateMatterBridgeInfo', RED.auth.needsPermission('matterbridge-config.read'), (req, res) => {
|
|
1011
1011
|
try {
|
|
1012
|
-
const
|
|
1013
|
-
if (
|
|
1012
|
+
const bridgeConfig = RED.nodes.getNode(req.query.configId)
|
|
1013
|
+
if (bridgeConfig === null || bridgeConfig === undefined || typeof bridgeConfig.getPairingInfo !== 'function') {
|
|
1014
1014
|
res.json({ error: 'PLEASE DEPLOY FIRST: then try again.' })
|
|
1015
1015
|
return
|
|
1016
1016
|
}
|
|
1017
|
-
res.json(
|
|
1017
|
+
res.json(bridgeConfig.getPairingInfo())
|
|
1018
1018
|
} catch (error) {
|
|
1019
1019
|
RED.log.error(`Err KNXUltimateMatterBridgeInfo: ${error.message}`)
|
|
1020
1020
|
res.json({ error: error.message })
|
|
@@ -1022,14 +1022,14 @@ module.exports = (RED) => {
|
|
|
1022
1022
|
})
|
|
1023
1023
|
|
|
1024
1024
|
// MATTER BRIDGE: factory reset (removes all paired controllers, restarts pairing advertising)
|
|
1025
|
-
RED.httpAdmin.get('/KNXUltimateMatterBridgeReset', RED.auth.needsPermission('
|
|
1025
|
+
RED.httpAdmin.get('/KNXUltimateMatterBridgeReset', RED.auth.needsPermission('matterbridge-config.write'), async (req, res) => {
|
|
1026
1026
|
try {
|
|
1027
|
-
const
|
|
1028
|
-
if (
|
|
1027
|
+
const bridgeConfig = RED.nodes.getNode(req.query.configId)
|
|
1028
|
+
if (bridgeConfig === null || bridgeConfig === undefined || typeof bridgeConfig.factoryResetBridge !== 'function') {
|
|
1029
1029
|
res.json({ error: 'PLEASE DEPLOY FIRST: then try again.' })
|
|
1030
1030
|
return
|
|
1031
1031
|
}
|
|
1032
|
-
await
|
|
1032
|
+
await bridgeConfig.factoryResetBridge()
|
|
1033
1033
|
res.json({ status: 'ok' })
|
|
1034
1034
|
} catch (error) {
|
|
1035
1035
|
RED.log.error(`Err KNXUltimateMatterBridgeReset: ${error.message}`)
|