iobroker.openknx 1.1.6 → 1.1.7

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
@@ -52,6 +52,9 @@ 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.7 (2026-04-29)
56
+ - improve Umlaute handling for DPT-16
57
+
55
58
  ### 1.1.6 (2026-04-12)
56
59
 
57
60
  - (TA2k) **breaking:** KNX communication switched to KNXUltimate
@@ -82,10 +85,6 @@ ioBroker adapter for KNX IP communication, powered by [KNXUltimate](https://gith
82
85
  - bugfix: #419 wait for connection complete before data processing in case of receiving data before
83
86
  - bugfix: #457 Ack missing after changing IOB object value
84
87
 
85
- ### 0.7.3 (2024-03-05)
86
-
87
- - feature: one of the warnings is configurable in the dialog
88
-
89
88
  ### initial version
90
89
 
91
90
  - initial version from https://www.npmjs.com/package/iobroker.knx/v/0.8.3
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "openknx",
4
- "version": "1.1.6",
4
+ "version": "1.1.7",
5
5
  "news": {
6
+ "1.1.7": {
7
+ "en": "improve Umlaute handling for DPT-16",
8
+ "de": "Verbesserung der Umlaute Handhabung für DPT-16",
9
+ "ru": "улучшение управляемости Umlaute для DPT-16",
10
+ "pt": "melhorar o manuseio de Umlaute para o DPT-16",
11
+ "nl": "umlautebehandeling verbeteren voor DPT-16",
12
+ "fr": "améliorer la manipulation Umlaute pour DPT-16",
13
+ "it": "migliorare la gestione Umlaute per DPT-16",
14
+ "es": "mejorar el manejo de Umlaute para DPT-16",
15
+ "pl": "poprawa obsługi Umlaute dla DPT- 16",
16
+ "uk": "поліпшити роботу Umlaute для DPT-16",
17
+ "zh-cn": "改进 DPT-16 的 Umlaute 处理"
18
+ },
6
19
  "1.1.6": {
7
20
  "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
21
  "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",
package/main.js CHANGED
@@ -235,7 +235,7 @@ class openknx extends utils.Adapter {
235
235
  try {
236
236
  this.log.info(`knxproj file size: ${(buffer.length / 1024 / 1024).toFixed(1)} MB`);
237
237
  // Warn if heap limit might be too low for large projects
238
- const v8 = require("v8");
238
+ const v8 = require("node:v8");
239
239
  const heapStats = v8.getHeapStatistics();
240
240
  const heapLimitMB = Math.round(heapStats.heap_size_limit / 1024 / 1024);
241
241
  const fileSizeMB = buffer.length / 1024 / 1024;
@@ -805,7 +805,7 @@ class openknx extends utils.Adapter {
805
805
  return "read";
806
806
  } else if (gaData.common.write) {
807
807
  this.log.debug(
808
- `Outbound GroupValue_Write to " ${ga} value: ${isRaw ? rawVal : JSON.stringify(knxVal)} from ${id}`,
808
+ `Outbound GroupValue_Write to ${ga} value: ${isRaw ? rawVal : JSON.stringify(knxVal)} from ${id} (queue: ${this.knxConnection?.commandQueue?.length || 0})`,
809
809
  );
810
810
  try {
811
811
  if (isRaw) {
@@ -975,9 +975,8 @@ class openknx extends utils.Adapter {
975
975
  KNXQueueSendIntervalMilliseconds: this.config.minimumDelay || 25,
976
976
  // https://github.com/Supergiovane/node-red-contrib-knx-ultimate/issues/78
977
977
  suppress_ack_ldatareq: true,
978
- // Disable KNXUltimate internal logging - we use logStream handler instead
979
- // This prevents EPIPE errors during shutdown
980
- loglevel: this.log.level === "silly" ? "trace" : "info",
978
+ // Enable KNXUltimate internal logging at debug level to see L_DATA_CON timing
979
+ loglevel: this.log.level === "silly" ? "trace" : this.log.level === "debug" ? "debug" : "info",
981
980
  };
982
981
 
983
982
  // KNX Secure options
@@ -1232,7 +1231,7 @@ class openknx extends utils.Adapter {
1232
1231
  stateval,
1233
1232
  this.gaList.getDataById(id).native.dpt,
1234
1233
  );
1235
- this.log.debug(`responding with value ${state.val}`);
1234
+ this.log.debug(`responding to ${dest} with value ${state.val} (queue: ${this.knxConnection.commandQueue?.length || 0})`);
1236
1235
  } catch (e) {
1237
1236
  this.log.error(`Failed to respond to ${dest}: ${e.message || e}`);
1238
1237
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.openknx",
3
- "version": "1.1.6",
3
+ "version": "1.1.7",
4
4
  "description": "ioBroker knx Adapter",
5
5
  "author": "boellner",
6
6
  "contributors": [
@@ -35,10 +35,11 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@iobroker/adapter-core": "^3.3.2",
38
- "@xmldom/xmldom": "^0.9.9",
38
+ "@xmldom/xmldom": "^0.9.10",
39
39
  "@zip.js/zip.js": "^2.8.26",
40
40
  "ipaddr.js": "^2.3.0",
41
- "knxultimate": "^5.4.0",
41
+ "knxultimate": "^5.5.3",
42
+ "sax": "^1.6.0",
42
43
  "xpath": "^0.0.34"
43
44
  },
44
45
  "devDependencies": {