iobroker.openknx 1.1.2 → 1.1.4

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 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.2 (2026-03-22)
52
+ ### 1.1.4 (2026-03-28)
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.2",
4
+ "version": "1.1.4",
5
5
  "news": {
6
- "1.1.2": {
6
+ "1.1.4": {
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
- this.knxConnection.write(gaData.native.address, writeVal, gaData.native.dpt);
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
- this.knxConnection.read(ga);
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
- try {
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.openknx",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "ioBroker knx Adapter",
5
5
  "author": "boellner",
6
6
  "contributors": [
@@ -38,7 +38,7 @@
38
38
  "@xmldom/xmldom": "^0.9.8",
39
39
  "@zip.js/zip.js": "^2.8.23",
40
40
  "ipaddr.js": "^2.3.0",
41
- "knxultimate": "^5.2.11",
41
+ "knxultimate": "^5.4.0",
42
42
  "xpath": "^0.0.34"
43
43
  },
44
44
  "devDependencies": {