iobroker.openknx 1.1.9 → 1.1.11
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/README.md +8 -19
- package/io-package.json +27 -27
- package/lib/projectImport.js +2 -3
- package/main.js +16 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -52,6 +52,12 @@ ioBroker adapter for KNX IP communication, powered by [KNXUltimate](https://gith
|
|
|
52
52
|
Placeholder for the next version (at the beginning of the line):
|
|
53
53
|
### **WORK IN PROGRESS**
|
|
54
54
|
-->
|
|
55
|
+
### 1.1.11 (2026-05-08)
|
|
56
|
+
- fix for UDP interface connection
|
|
57
|
+
|
|
58
|
+
### 1.1.10 (2026-05-05)
|
|
59
|
+
- add new DPTs and units
|
|
60
|
+
|
|
55
61
|
### 1.1.9 (2026-05-04)
|
|
56
62
|
- fix handling of unkown DPT
|
|
57
63
|
|
|
@@ -62,29 +68,12 @@ ioBroker adapter for KNX IP communication, powered by [KNXUltimate](https://gith
|
|
|
62
68
|
### 1.1.7 (2026-04-29)
|
|
63
69
|
- improve Umlaute handling for DPT-16
|
|
64
70
|
|
|
65
|
-
### 1.1.6 (2026-04-12)
|
|
66
|
-
|
|
67
|
-
- (TA2k) **breaking:** KNX communication switched to KNXUltimate
|
|
68
|
-
- (TA2k) **breaking:** DPT21 property names changed (outofservice → outOfService, inalarm → inAlarm, alarmeunack → alarmUnAck), values must be boolean
|
|
69
|
-
- (TA2k) **breaking:** DPT237 property names changed to camelCase
|
|
70
|
-
- (TA2k) feature: Native .knxproj import (ETS4/5/6, password-protected) with flags, DPT inference, room assignment
|
|
71
|
-
- (TA2k) feature: KNX Secure support
|
|
72
|
-
- (TA2k) feature: Extended DPT coverage and compatibility (9 additional DPTs, including DPT-22, 213, 222, 235, 242, 249, 251)
|
|
73
|
-
- (TA2k) feature: Improved connection stability
|
|
74
|
-
- (TA2k) feature: Improved role detection (switch, level, value, text, date) based on DPT type
|
|
75
|
-
- (TA2k) feature: Direct Link all iobroker states to a KNX state with a conversion mode
|
|
76
|
-
- (TA2k) feature: GA-Tools: all GA properties editable (DPT, type, role, flags) with compact layout
|
|
77
|
-
|
|
78
|
-
### 0.9.1 (2026-03-12)
|
|
79
|
-
- bugfix: Fixing increased delay in knx commands after several days
|
|
80
|
-
- (copilot) Adapter requires admin >= 7.7.22 now
|
|
81
|
-
- (copilot) Adapter requires js-controller >= 6.0.11 now
|
|
82
|
-
- (@klein0r) Adapter requires node.js >= 20 and js-controller >= 6 now
|
|
83
|
-
|
|
84
71
|
### initial version
|
|
85
72
|
|
|
86
73
|
- initial version from https://www.npmjs.com/package/iobroker.knx/v/0.8.3
|
|
87
74
|
|
|
75
|
+
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
76
|
+
|
|
88
77
|
## License
|
|
89
78
|
|
|
90
79
|
Copyright 2024 contributors to the ioBroker.openknx project
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "openknx",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.11",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.1.11": {
|
|
7
|
+
"en": "fix for UDP interface connection",
|
|
8
|
+
"de": "Fix für UDP-Interface Verbindung",
|
|
9
|
+
"ru": "установить соединение интерфейса UDP",
|
|
10
|
+
"pt": "corrigir para conexão de interface UDP",
|
|
11
|
+
"nl": "fix voor UDP interface verbinding",
|
|
12
|
+
"fr": "correction pour la connexion à l'interface UDP",
|
|
13
|
+
"it": "correzione per connessione interfaccia UDP",
|
|
14
|
+
"es": "fijado para conexión de interfaz UDP",
|
|
15
|
+
"pl": "fix dla połączenia interfejsu UDP",
|
|
16
|
+
"uk": "виправлення для підключення інтерфейсу UDP",
|
|
17
|
+
"zh-cn": "uDP 接口连接的固定"
|
|
18
|
+
},
|
|
19
|
+
"1.1.10": {
|
|
20
|
+
"en": "add new DPTs and units",
|
|
21
|
+
"de": "neue DPTs und Einheiten hinzugefügt",
|
|
22
|
+
"ru": "добавить новые DPT и блоки",
|
|
23
|
+
"pt": "adicionar novos DPTs e unidades",
|
|
24
|
+
"nl": "nieuwe DPT's en eenheden toevoegen",
|
|
25
|
+
"fr": "ajouter de nouveaux DPT et unités",
|
|
26
|
+
"it": "aggiungere nuovi DPT e unità",
|
|
27
|
+
"es": "añadir nuevos DPTs y unidades",
|
|
28
|
+
"pl": "dodać nowe DPT i jednostki",
|
|
29
|
+
"uk": "додати нові ДРТ і юніти",
|
|
30
|
+
"zh-cn": "添加新的 DPT 和单位"
|
|
31
|
+
},
|
|
6
32
|
"1.1.9": {
|
|
7
33
|
"en": "fix handling of unkown DPT",
|
|
8
34
|
"de": "Die Behandlung von unbekannten DPTs gefixt",
|
|
@@ -67,32 +93,6 @@
|
|
|
67
93
|
"pl": "bugfix: Ustawienie zwiększonego opóźnienia w komendach knx po kilku dniach\nAdapter wymaga admin > = 7.7.22\nAdapter wymaga sterownika js- > = 6.0.11\nAdapter wymaga admin > = 7.6.17\n\nAdapter wymaga node.js > = 20 i kontroler js- > = 6 teraz",
|
|
68
94
|
"uk": "виправлення помилок: Виправлення підвищеної затримки в командах knx після декількох днів\nАдаптер вимагає адмін >= 7.7.22 тепер\nАдаптер вимагає js-controller >=6.0.11 тепер\nАдаптер вимагає адмін >= 7.6.17 тепер\n\nАдаптер вимагає node.js >= 20 і js-controller >= 6 тепер",
|
|
69
95
|
"zh-cn": "错误修正 : 几天后修复 knx 命令中增加的延迟\n适任者需要管理员 \\ 7.7.22 现在\n适配器需要js控制器 现在6.0.11\n适任者需要行政主管 现在7.6.17\n\n适配器需要节点.js QQ 20和js控制器 QQ 现在6个"
|
|
70
|
-
},
|
|
71
|
-
"0.9.0": {
|
|
72
|
-
"en": "Adapter requires node.js >= 18 and js-controller >= 5 now\nDependencies have been updated",
|
|
73
|
-
"de": "Adapter benötigt node.js >= 18 und js-controller >= 5 jetzt\nAbhängigkeiten wurden aktualisiert",
|
|
74
|
-
"ru": "Адаптер требует node.js >= 18 и js-контроллер >= 5 сейчас\nЗависимость обновлена",
|
|
75
|
-
"pt": "Adapter requer node.js >= 18 e js-controller >= 5 agora\nAs dependências foram atualizadas",
|
|
76
|
-
"nl": "Voor adaptor zijn node.js < 18 en js-controller > Nu 5\nAfhankelijkheden zijn bijgewerkt",
|
|
77
|
-
"fr": "L'adaptateur nécessite node.js >= 18 et js-controller >= 5 maintenant\nLes dépendances ont été actualisées",
|
|
78
|
-
"it": "Adattatore richiede node.js >= 18 e js-controller >= 5 ora\nLe dipendenze sono state aggiornate",
|
|
79
|
-
"es": "Adaptador requiere node.js ó= 18 y js-controller 5 ahora\nSe han actualizado las dependencias",
|
|
80
|
-
"pl": "Adapter wymaga node.js > = 18 i kontroler js- > = 5 teraz\nZaktualizowano zależności",
|
|
81
|
-
"uk": "Адаптер вимагає node.js >= 18 і js-controller >= 5 тепер\nЗалежність було оновлено",
|
|
82
|
-
"zh-cn": "适配器需要节点.js QQ18和js控制器 QQ 现在5号\n依赖关系已更新"
|
|
83
|
-
},
|
|
84
|
-
"0.8.0": {
|
|
85
|
-
"en": "feature: put KNX interface name into log\nbugfix: #419 wait for connection complete before data processing in case of receiving data before\nbugfix: #457 Ack missing after changing IOB object value",
|
|
86
|
-
"de": "feature: KNX-Schnittstellenname in Log setzen\nbugfix: #419 warten auf die vollständige verbindung vor der datenverarbeitung im falle des empfangens von daten vor\nbugfix: #457 Ack fehlt nach Änderung des IOB-Objektwerts",
|
|
87
|
-
"ru": "функция: введите имя интерфейса KNX в журнал\nbugfix: #419 дождаться завершения соединения перед обработкой данных в случае получения данных\n#457 Не хватает после изменения значения объекта IOB",
|
|
88
|
-
"pt": "característica: colocar o nome da interface KNX no log\nbugfix: #419 esperar pela conexão completa antes do processamento de dados em caso de receber dados antes\nbugfix: #457 Falta após alterar o valor do objeto IOB",
|
|
89
|
-
"nl": "functie: zet KNX interfacenaam in log\nbugfix: #419 wacht op verbinding voltooid voordat gegevens worden verwerkt in geval van het ontvangen van gegevens voor\nbugfix: #457 Ack ontbreekt na het veranderen van IOB-objectwaarde",
|
|
90
|
-
"fr": "fonctionnalité: mettre le nom de l'interface KNX dans log\nbugfix: #419 attendre la connexion complète avant le traitement des données en cas de réception des données avant\nbugfix : #457 Ack manquant après modification de la valeur de l'objet IOB",
|
|
91
|
-
"it": "funzione: inserire il nome dell'interfaccia KNX nel log\nbugfix: #419 attendere la connessione completa prima dell'elaborazione dei dati in caso di ricezione dei dati prima\nbugfix: #457 Ack mancante dopo aver cambiato il valore dell'oggetto IOB",
|
|
92
|
-
"es": "función: poner el nombre de interfaz KNX en el registro\nbugfix: #419 esperar la conexión completa antes del procesamiento de datos en caso de recibir datos antes\nbugfix: #457 Falta después de cambiar el valor del objeto IOB",
|
|
93
|
-
"pl": "funkcja: umieścić nazwę interfejsu KNX w logu\nbugfix: # 419 czekać na połączenie zakończone przed przetwarzaniem danych w przypadku otrzymania danych przed\nbugfix: # 457 Brak Ack po zmianie wartości obiektu IOB",
|
|
94
|
-
"uk": "функція: покласти ім'я інтерфейсу KNX в журнал\nвиправлення помилок: #419 почекайте підключення до обробки даних у разі отримання даних до\nenglish, Українська, Français... Відсутня після зміни значення об'єкта IOB",
|
|
95
|
-
"zh-cn": "特性: 将 KNX 接口名称放入日志\nbugfix: # 419 在数据处理之前等待连接完成, 以防在接收数据之前\n错误修正 : # 457 更改 IOB 对象值后丢失"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/lib/projectImport.js
CHANGED
|
@@ -9,7 +9,6 @@ const select = require("xpath");
|
|
|
9
9
|
const dom = require("@xmldom/xmldom").DOMParser;
|
|
10
10
|
const tools = require("./tools.js");
|
|
11
11
|
const similarity = require("./similarity.js");
|
|
12
|
-
|
|
13
12
|
module.exports = {
|
|
14
13
|
// get xml Files from index.html via adapter.on 'message' and put it into file Obj
|
|
15
14
|
parseInput: function (adapter, xml, callback) {
|
|
@@ -106,7 +105,7 @@ module.exports = {
|
|
|
106
105
|
read: true,
|
|
107
106
|
role: role, //description: https://github.com/ioBroker/ioBroker/blob/master/doc/STATE_ROLES.md#state-roles
|
|
108
107
|
type: type, //possible values: number, string, boolean, array, object, mixed, file. It is important to note that array, object, mixed and file must be serialized using JSON.stringify().
|
|
109
|
-
unit:
|
|
108
|
+
unit: dptObj?.subtype?.unit || "",
|
|
110
109
|
write: true,
|
|
111
110
|
states: dptObj?.subtype?.enc,
|
|
112
111
|
...(range[0] != null && typeof range[0] == "number" && type == "number" && { min: range[0] }),
|
|
@@ -338,7 +337,7 @@ module.exports = {
|
|
|
338
337
|
read: commonRead,
|
|
339
338
|
role: role,
|
|
340
339
|
type: type,
|
|
341
|
-
unit:
|
|
340
|
+
unit: dptObj?.subtype?.unit || "",
|
|
342
341
|
write: commonWrite,
|
|
343
342
|
update: transmitFlag,
|
|
344
343
|
states: dptObj?.subtype?.enc,
|
package/main.js
CHANGED
|
@@ -966,13 +966,27 @@ class openknx extends utils.Adapter {
|
|
|
966
966
|
}
|
|
967
967
|
}
|
|
968
968
|
|
|
969
|
-
//
|
|
969
|
+
// KNXUltimate "interface" option expects an OS name (e.g. "eth0"), config stores an IP
|
|
970
|
+
let ifaceName = "";
|
|
971
|
+
if (this.config.localInterface) {
|
|
972
|
+
const interfaces = require("os").networkInterfaces();
|
|
973
|
+
for (const [name, addrs] of Object.entries(interfaces)) {
|
|
974
|
+
if (addrs && addrs.some((a) => a.address === this.config.localInterface)) {
|
|
975
|
+
ifaceName = name;
|
|
976
|
+
break;
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
if (!ifaceName) {
|
|
980
|
+
this.log.warn(`Configured local interface IP ${this.config.localInterface} not found on this system. Using auto-detection.`);
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
|
|
970
984
|
const knxOptions = {
|
|
971
985
|
hostProtocol,
|
|
972
986
|
ipAddr,
|
|
973
987
|
ipPort: this.config.gwipport,
|
|
974
988
|
physAddr: this.config.eibadr || "0.0.0",
|
|
975
|
-
|
|
989
|
+
interface: ifaceName,
|
|
976
990
|
KNXQueueSendIntervalMilliseconds: this.config.sendInterval || 25,
|
|
977
991
|
// https://github.com/Supergiovane/node-red-contrib-knx-ultimate/issues/78
|
|
978
992
|
suppress_ack_ldatareq: true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.openknx",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.11",
|
|
4
4
|
"description": "ioBroker knx Adapter",
|
|
5
5
|
"author": "boellner",
|
|
6
6
|
"contributors": [
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@xmldom/xmldom": "^0.9.10",
|
|
39
39
|
"@zip.js/zip.js": "^2.8.26",
|
|
40
40
|
"ipaddr.js": "^2.4.0",
|
|
41
|
-
"knxultimate": "^5.5.
|
|
41
|
+
"knxultimate": "^5.5.6",
|
|
42
42
|
"sax": "^1.6.0",
|
|
43
43
|
"xpath": "^0.0.34"
|
|
44
44
|
},
|