node-red-contrib-knx-ultimate 8.1.0 → 8.1.1
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 +4 -0
- package/nodes/knxUltimate-config.js +23 -7
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -32,6 +32,19 @@ try { NODE_VERSION = require('../package.json').version } catch (e) { /* empty *
|
|
|
32
32
|
let KNX_ENGINE_VERSION = 'unknown'
|
|
33
33
|
try { KNX_ENGINE_VERSION = require('knxultimate/package.json').version } catch (e) { /* empty */ }
|
|
34
34
|
|
|
35
|
+
// Returns the group service of a bus telegram, or null when it is not one:
|
|
36
|
+
// transport control TPDUs (T_Connect, T_Disconnect, T_ACK, T_NAK: TPCI only, no APCI)
|
|
37
|
+
// and point-to-point telegrams (cEMI Ctrl2 address type 0 = individual destination).
|
|
38
|
+
const getGroupServiceEvent = (cEMIMessage) => {
|
|
39
|
+
const npdu = cEMIMessage?.npdu
|
|
40
|
+
if (!npdu || npdu.isTransportControl === true) return null
|
|
41
|
+
if (cEMIMessage.control?.addressType === 0) return null
|
|
42
|
+
if (npdu.isGroupRead) return 'GroupValue_Read'
|
|
43
|
+
if (npdu.isGroupResponse) return 'GroupValue_Response'
|
|
44
|
+
if (npdu.isGroupWrite) return 'GroupValue_Write'
|
|
45
|
+
return null
|
|
46
|
+
}
|
|
47
|
+
|
|
35
48
|
// DATAPONT MANIPULATION HELPERS
|
|
36
49
|
// ####################
|
|
37
50
|
const sortBy = (field) => (a, b) => {
|
|
@@ -1399,18 +1412,20 @@ module.exports = (RED) => {
|
|
|
1399
1412
|
return
|
|
1400
1413
|
}
|
|
1401
1414
|
|
|
1402
|
-
let _evt = null
|
|
1403
|
-
if (_datagram.cEMIMessage.npdu.isGroupRead) _evt = 'GroupValue_Read'
|
|
1404
|
-
if (_datagram.cEMIMessage.npdu.isGroupResponse) _evt = 'GroupValue_Response'
|
|
1405
|
-
if (_datagram.cEMIMessage.npdu.isGroupWrite) _evt = 'GroupValue_Write'
|
|
1406
|
-
|
|
1407
1415
|
let _src = null
|
|
1408
1416
|
_src = _datagram.cEMIMessage.srcAddress.toString()
|
|
1409
1417
|
|
|
1410
1418
|
let _dest = null
|
|
1411
1419
|
_dest = _datagram.cEMIMessage.dstAddress.toString()
|
|
1412
1420
|
|
|
1413
|
-
|
|
1421
|
+
// Point-to-point and transport control telegrams (e.g. an ETS device scan) are valid, but not for us
|
|
1422
|
+
const _evt = getGroupServiceEvent(_datagram.cEMIMessage)
|
|
1423
|
+
if (_evt === null) {
|
|
1424
|
+
node.sysLogger?.debug(`HandleBusEvent: ignored non group telegram src=${_src} dest=${_dest}`)
|
|
1425
|
+
return
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
if (_src === null || _dest === null) {
|
|
1414
1429
|
node.sysLogger?.warn(`HandleBusEvent: unable to parse telegram, ignored (evt=${_evt || 'n/a'} src=${_src || 'n/a'} dest=${_dest || 'n/a'})`)
|
|
1415
1430
|
return
|
|
1416
1431
|
};
|
|
@@ -2754,5 +2769,6 @@ module.exports = (RED) => {
|
|
|
2754
2769
|
}
|
|
2755
2770
|
|
|
2756
2771
|
module.exports.__test = {
|
|
2757
|
-
resolveHostAddress
|
|
2772
|
+
resolveHostAddress,
|
|
2773
|
+
getGroupServiceEvent
|
|
2758
2774
|
}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"engines": {
|
|
4
4
|
"node": ">=20.18.1"
|
|
5
5
|
},
|
|
6
|
-
"version": "8.1.
|
|
6
|
+
"version": "8.1.1",
|
|
7
7
|
"description": "KNX integration for Node-RED with KNX/IP and KNX Secure, ETS import, routing, diagnostics, automation utilities, MQTT and Modbus adapters. Optional Hue Ultimate and Matter Ultimate packages connect through the KNX gateway.",
|
|
8
8
|
"files": [
|
|
9
9
|
"nodes/",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"scripts/check-legacy-flows.js"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"knxultimate": "6.2.
|
|
22
|
+
"knxultimate": "6.2.1",
|
|
23
23
|
"lodash": "4.18.1",
|
|
24
24
|
"mqtt": "^5.15.2",
|
|
25
25
|
"ping": "0.4.4",
|