iobroker.openknx 1.1.2 → 1.1.3
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 +1 -1
- package/io-package.json +2 -2
- package/main.js +12 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ ioBroker adapter for KNX IP communication, powered by [KNXUltimate](https://gith
|
|
|
49
49
|
Placeholder for the next version (at the beginning of the line):
|
|
50
50
|
### **WORK IN PROGRESS**
|
|
51
51
|
-->
|
|
52
|
-
### 1.1.
|
|
52
|
+
### 1.1.3 (2026-03-23)
|
|
53
53
|
|
|
54
54
|
- (TA2k) **breaking:** KNX communication switched to KNXUltimate
|
|
55
55
|
- (TA2k) **breaking:** DPT21 property names changed (outofservice → outOfService, inalarm → inAlarm, alarmeunack → alarmUnAck), values must be boolean
|
package/io-package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "openknx",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.3",
|
|
5
5
|
"news": {
|
|
6
|
-
"1.1.
|
|
6
|
+
"1.1.3": {
|
|
7
7
|
"en": "**breaking:** KNX communication switched to KNXUltimate\n**breaking:** DPT21 property names changed (outofservice → outOfService, inalarm → inAlarm, alarmeunack → alarmUnAck), values must be boolean\n**breaking:** DPT237 property names changed to camelCase\nfeature: KNX Secure support\nfeature: Native .knxproj import (ETS4/5/6, password-protected) with flags, DPT inference, room assignment\nfeature: Extended DPT coverage (9 additional DPTs, including DPT-22, 213, 222, 235, 242, 249, 251)\nfeature: Improved connection stability\nfeature: Improved role detection (switch, level, value, text, date) based on DPT type\nfeature: Direct Link all iobroker states to a KNX state\nfeature: GA-Tools: all GA properties editable (DPT, type, role, flags) with compact layout",
|
|
8
8
|
"de": "**breaking:** KNX-Kommunikation auf KNXUltimate umgestellt\n**breaking:** DPT21 Eigenschaftsnamen geändert (outofservice → outOfService, inalarm → inAlarm, alarmeunack → alarmUnAck), Werte müssen boolean sein\n**breaking:** DPT237 Eigenschaftsnamen auf camelCase geändert\nFeature: KNX Secure Unterstützung\nFeature: Nativer .knxproj Import (ETS4/5/6, passwortgeschützt) mit Flags, DPT-Erkennung, Raumzuordnung\nFeature: Erweiterte DPT-Abdeckung (9 zusätzliche DPTs, u.a. DPT-22, 213, 222, 235, 242, 249, 251)\nFeature: Verbesserte Verbindungsstabilität\nFeature: Verbesserte Rollenerkennung (switch, level, value, text, date) basierend auf DPT-Typ\nFeature: Direct Link – beliebige ioBroker-States mit KNX-Gruppenadressen verknüpfen\nFeature: GA-Tools: alle GA-Eigenschaften editierbar (DPT, Typ, Rolle, Flags) mit kompaktem Layout",
|
|
9
9
|
"ru": "**breaking:** KNX-коммуникация переключена на KNXUltimate\n**breaking:** Имена свойств DPT21 изменены (outofservice → outOfService, inalarm → inAlarm, alarmeunack → alarmUnAck), значения должны быть boolean\n**breaking:** Имена свойств DPT237 изменены на camelCase\nFeature: Поддержка KNX Secure\nFeature: Нативный импорт .knxproj (ETS4/5/6, с паролем) с флагами, определением DPT, назначением комнат\nFeature: Расширенное покрытие DPT (9 дополнительных DPT, включая DPT-22, 213, 222, 235, 242, 249, 251)\nFeature: Улучшенная стабильность соединения\nFeature: Улучшенное определение ролей (switch, level, value, text, date) на основе типа DPT\nFeature: Direct Link – привязка любых состояний ioBroker к групповым адресам KNX\nFeature: GA-Tools: все свойства GA редактируемы (DPT, тип, роль, флаги) с компактным макетом",
|
package/main.js
CHANGED
|
@@ -627,7 +627,11 @@ class openknx extends utils.Adapter {
|
|
|
627
627
|
this.log.debug(
|
|
628
628
|
`Direct Link [${mode}]: ${id} changed to ${JSON.stringify(state.val)}, writing ${JSON.stringify(writeVal)} to GA ${gaData.native.address}`,
|
|
629
629
|
);
|
|
630
|
-
|
|
630
|
+
try {
|
|
631
|
+
this.knxConnection.write(gaData.native.address, writeVal, gaData.native.dpt);
|
|
632
|
+
} catch (e) {
|
|
633
|
+
this.log.warn(`Direct Link write failed for ${gaData.native.address}: ${e.message}`);
|
|
634
|
+
}
|
|
631
635
|
// Update KNX object state
|
|
632
636
|
if (this.isForeign) {
|
|
633
637
|
this.setForeignState(linkedKnxId, { val: writeVal, ack: true });
|
|
@@ -736,7 +740,11 @@ class openknx extends utils.Adapter {
|
|
|
736
740
|
if (state.c == "GroupValue_Read" || state.q == 0x10) {
|
|
737
741
|
// interface to trigger GrouValue_Read is this object comment or StateQuality 16
|
|
738
742
|
this.log.debug(`Outbound GroupValue_Read to GA ${ga}`);
|
|
739
|
-
|
|
743
|
+
try {
|
|
744
|
+
this.knxConnection.read(ga);
|
|
745
|
+
} catch (e) {
|
|
746
|
+
this.log.warn(`GroupValue_Read failed for ${ga}: ${e.message}`);
|
|
747
|
+
}
|
|
740
748
|
// ack is generated with GroupValue_Response via indication event
|
|
741
749
|
return "read";
|
|
742
750
|
} else if (gaData.common.write) {
|
|
@@ -854,11 +862,9 @@ class openknx extends utils.Adapter {
|
|
|
854
862
|
// Clean up previous connection (reconnect case)
|
|
855
863
|
if (this.knxConnection) {
|
|
856
864
|
this.knxConnection.removeAllListeners();
|
|
857
|
-
|
|
858
|
-
this.knxConnection.Disconnect();
|
|
859
|
-
} catch (e) {
|
|
865
|
+
this.knxConnection.Disconnect().catch(() => {
|
|
860
866
|
// ignore - old connection may already be in broken state
|
|
861
|
-
}
|
|
867
|
+
});
|
|
862
868
|
this.knxConnection = undefined;
|
|
863
869
|
}
|
|
864
870
|
|