iobroker.openknx 1.1.8 → 1.1.10

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,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.10 (2026-05-05)
56
+ - add new DPTs and units
57
+
58
+ ### 1.1.9 (2026-05-04)
59
+ - fix handling of unkown DPT
60
+
55
61
  ### 1.1.8 (2026-04-30)
56
62
  - add compatiblity mode für raw DPT5.*
57
63
  - reduce default delay to 25ms
@@ -72,21 +78,12 @@ ioBroker adapter for KNX IP communication, powered by [KNXUltimate](https://gith
72
78
  - (TA2k) feature: Direct Link all iobroker states to a KNX state with a conversion mode
73
79
  - (TA2k) feature: GA-Tools: all GA properties editable (DPT, type, role, flags) with compact layout
74
80
 
75
- ### 0.9.1 (2026-03-12)
76
- - bugfix: Fixing increased delay in knx commands after several days
77
- - (copilot) Adapter requires admin >= 7.7.22 now
78
- - (copilot) Adapter requires js-controller >= 6.0.11 now
79
- - (@klein0r) Adapter requires node.js >= 20 and js-controller >= 6 now
80
-
81
- ### 0.9.0 (2024-04-21)
82
-
83
- - (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now
84
- - (mcm1957) Dependencies have been updated
85
-
86
81
  ### initial version
87
82
 
88
83
  - initial version from https://www.npmjs.com/package/iobroker.knx/v/0.8.3
89
84
 
85
+ [Older changelogs can be found there](CHANGELOG_OLD.md)
86
+
90
87
  ## License
91
88
 
92
89
  Copyright 2024 contributors to the ioBroker.openknx project
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "Vorhandene IOB-Objekte entfernen, die nicht in der ETS-Importdatei enthalten sind",
100
100
  "set acknowledgement flag when application writes to object": "Bestätigungsflag setzen, wenn Anwendung auf Objekt schreibt",
101
101
  "this is not a number": "dies ist keine Zahl",
102
- "use common.type boolean for 1 bit enum instead of number": "common.type boolean für 1-Bit-Enum anstelle von Zahl verwenden",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "Basis-DPTs als Rohwerte behandeln, z.B. DPT5 = 0-255 (openknx 0.9.1 Kompatibilität)"
102
+ "use common.type boolean for 1 bit enum instead of number": "common.type boolean für 1-Bit-Enum anstelle von Zahl verwenden"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "Unsupported file format": "Unsupported file format",
100
100
  "use common.type boolean for 1 bit enum instead of number": "use common.type boolean for 1 bit enum instead of number",
101
101
  "Value": "Value",
102
- "Write": "Write",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)"
102
+ "Write": "Write"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "eliminar objetos IOB existentes que no están en el archivo de importación ETS",
100
100
  "set acknowledgement flag when application writes to object": "establecer el indicador de reconocimiento cuando la aplicación escribe en el objeto",
101
101
  "this is not a number": "esto no es un numero",
102
- "use common.type boolean for 1 bit enum instead of number": "use common.type booleano para enumeración de 1 bit en lugar de número",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "tratar DPTs base como valores sin procesar, ej. DPT5 = 0-255 (compatibilidad openknx 0.9.1)"
102
+ "use common.type boolean for 1 bit enum instead of number": "use common.type booleano para enumeración de 1 bit en lugar de número"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "supprimer les objets IOB existants qui ne figurent pas dans le fichier d'importation ETS",
100
100
  "set acknowledgement flag when application writes to object": "définir l'indicateur d'accusé de réception lorsque l'application écrit dans l'objet",
101
101
  "this is not a number": "ce n'est pas un nombre",
102
- "use common.type boolean for 1 bit enum instead of number": "utilisez common.type boolean pour une énumération de 1 bit au lieu d'un nombre",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "traiter les DPTs de base comme valeurs brutes, ex. DPT5 = 0-255 (compatibilité openknx 0.9.1)"
102
+ "use common.type boolean for 1 bit enum instead of number": "utilisez common.type boolean pour une énumération de 1 bit au lieu d'un nombre"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "rimuovere gli oggetti IOB esistenti che non si trovano nel file di importazione ETS",
100
100
  "set acknowledgement flag when application writes to object": "imposta il flag di riconoscimento quando l'applicazione scrive nell'oggetto",
101
101
  "this is not a number": "questo non è un numero",
102
- "use common.type boolean for 1 bit enum instead of number": "utilizzare common.type booleano per l'enumerazione a 1 bit anziché il numero",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "trattare i DPT base come valori grezzi, es. DPT5 = 0-255 (compatibilità openknx 0.9.1)"
102
+ "use common.type boolean for 1 bit enum instead of number": "utilizzare common.type booleano per l'enumerazione a 1 bit anziché il numero"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "verwijder bestaande IOB-objecten die niet in het ETS-importbestand staan",
100
100
  "set acknowledgement flag when application writes to object": "bevestigingsvlag instellen wanneer toepassing naar object schrijft",
101
101
  "this is not a number": "dit is geen nummer",
102
- "use common.type boolean for 1 bit enum instead of number": "gebruik common.type boolean voor 1 bit enum in plaats van getal",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "basis-DPTs als onbewerkte waarden behandelen, bijv. DPT5 = 0-255 (openknx 0.9.1 compatibiliteit)"
102
+ "use common.type boolean for 1 bit enum instead of number": "gebruik common.type boolean voor 1 bit enum in plaats van getal"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "usuń istniejące obiekty IOB, których nie ma w pliku importu ETS",
100
100
  "set acknowledgement flag when application writes to object": "ustaw flagę potwierdzenia, gdy aplikacja zapisuje do obiektu",
101
101
  "this is not a number": "to nie jest liczba",
102
- "use common.type boolean for 1 bit enum instead of number": "użyj wartości logicznej common.type dla 1-bitowego wyliczenia zamiast liczby",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "traktuj bazowe DPT jako wartości surowe, np. DPT5 = 0-255 (kompatybilność openknx 0.9.1)"
102
+ "use common.type boolean for 1 bit enum instead of number": "użyj wartości logicznej common.type dla 1-bitowego wyliczenia zamiast liczby"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "remova objetos IOB existentes que não estão no arquivo de importação ETS",
100
100
  "set acknowledgement flag when application writes to object": "definir sinalizador de reconhecimento quando o aplicativo grava no objeto",
101
101
  "this is not a number": "este não é um número",
102
- "use common.type boolean for 1 bit enum instead of number": "use common.type booleano para enum de 1 bit em vez de número",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "tratar DPTs base como valores brutos, ex. DPT5 = 0-255 (compatibilidade openknx 0.9.1)"
102
+ "use common.type boolean for 1 bit enum instead of number": "use common.type booleano para enum de 1 bit em vez de número"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "удалить существующие объекты IOB, которых нет в файле импорта ETS",
100
100
  "set acknowledgement flag when application writes to object": "установить флаг подтверждения, когда приложение записывает в объект",
101
101
  "this is not a number": "это не число",
102
- "use common.type boolean for 1 bit enum instead of number": "используйте логическое значение common.type для 1-битного перечисления вместо числа",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "обрабатывать базовые DPT как необработанные значения, напр. DPT5 = 0-255 (совместимость с openknx 0.9.1)"
102
+ "use common.type boolean for 1 bit enum instead of number": "используйте логическое значение common.type для 1-битного перечисления вместо числа"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "видалити існуючі об’єкти IOB, яких немає у файлі імпорту ETS",
100
100
  "set acknowledgement flag when application writes to object": "встановити позначку підтвердження, коли програма записує об’єкт",
101
101
  "this is not a number": "це не число",
102
- "use common.type boolean for 1 bit enum instead of number": "використовуйте common.type boolean для 1-бітового enum замість числа",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "обробляти базові DPT як необроблені значення, напр. DPT5 = 0-255 (сумісність openknx 0.9.1)"
102
+ "use common.type boolean for 1 bit enum instead of number": "використовуйте common.type boolean для 1-бітового enum замість числа"
104
103
  }
@@ -99,6 +99,5 @@
99
99
  "remove existing IOB objects that are not in ETS import file": "删除 ETS 导入文件中不存在的现有 IOB 对象",
100
100
  "set acknowledgement flag when application writes to object": "当应用程序写入对象时设置确认标志",
101
101
  "this is not a number": "这不是一个数字",
102
- "use common.type boolean for 1 bit enum instead of number": "使用 common.type boolean 作为 1 位枚举而不是数字",
103
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": "将基本DPT视为原始值,如DPT5 = 0-255(openknx 0.9.1兼容)"
102
+ "use common.type boolean for 1 bit enum instead of number": "使用 common.type boolean 作为 1 位枚举而不是数字"
104
103
  }
@@ -99,7 +99,6 @@
99
99
  });
100
100
  }, 1000);
101
101
  if (settings.autoreadEnabled === undefined) settings.autoreadEnabled = false;
102
- if (settings.rawBaseDpt === undefined) settings.rawBaseDpt = true;
103
102
  if (settings.deviceName === undefined) settings.deviceName = "";
104
103
  if (settings.eibadr === undefined) settings.eibadr = "0.0.0";
105
104
  if (settings.gwip === undefined) settings.gwip = "127.0.0.1";
@@ -1175,12 +1174,7 @@
1175
1174
  <label class="translate" for="noWarnUnknownGa"
1176
1175
  >do not warn on unknown KNX group adresses</label>
1177
1176
  </div>
1178
- <div class="col s12 input-field">
1179
- <input class="value" id="rawBaseDpt" type="checkbox" checked />
1180
- <label class="translate" for="rawBaseDpt"
1181
- >treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)</label>
1182
- </div>
1183
-
1177
+
1184
1178
  </div>
1185
1179
  </div>
1186
1180
  </div>
package/admin/words.js CHANGED
@@ -107,7 +107,6 @@ systemDictionary = {
107
107
  "physical KNX address in format a/b/c not valid": {"en": "physical KNX address in format a/b/c not valid", "de": "Physikalische KNX-Adresse im Format a/b/c ungültig", "ru": "физический адрес KNX в формате a/b/c недействителен", "pt": "endereço KNX físico no formato a/b/c inválido", "nl": "fysiek KNX-adres in formaat a/b/c niet geldig", "fr": "adresse physique KNX au format a/b/c non valide", "it": "indirizzo fisico KNX in formato a/b/c non valido", "es": "Dirección física KNX en formato a/b/c no válida", "pl": "adres fizyczny KNX w formacie a/b/c jest nieprawidłowy", "uk": "фізична адреса KNX у форматі a/b/c недійсна", "zh-cn": "a/b/c 格式的物理 KNX 地址无效"},
108
108
  "please provide a valid minimum send delay value between 0 and 1000 [ms]": {"en": "please provide a valid minimum send delay value between 0 and 1000 [ms]", "de": "Bitte geben Sie einen gültigen Wert für die Sendeverzögerung zwischen 0 und 1000 [ms] an", "ru": "укажите допустимое минимальное значение задержки отправки от 0 до 1000 [мс]", "pt": "forneça um valor mínimo de atraso de envio válido entre 0 e 1000 [ms]", "nl": "geef een geldige minimale verzendvertragingswaarde op tussen 0 en 1000 [ms]", "fr": "veuillez fournir une valeur de délai d'envoi minimum valide comprise entre 0 et 1 000 [ms]", "it": "fornire un valore di ritardo di invio minimo valido compreso tra 0 e 1000 [ms]", "es": "proporcione un valor de retardo de envío mínimo válido entre 0 y 1000 [ms]", "pl": "proszę podać poprawną minimalną wartość opóźnienia wysyłania pomiędzy 0 a 1000 [ms]", "uk": "надайте дійсне мінімальне значення затримки надсилання від 0 до 1000 [мс]", "zh-cn": "请提供 0 到 1000 [ms] 之间的有效最小发送延迟值"},
109
109
  "readout values of autoread iob objects on startup": {"en": "readout values of autoread iob objects on startup", "de": "Werte von Autoread-IOB-Objekten beim Start des Adapters auslesen", "ru": "считывание значений объектов autoread iob при запуске", "pt": "valores de leitura de objetos iob de leitura automática na inicialização", "nl": "uitleeswaarden van autoread iob-objecten bij het opstarten", "fr": "lire les valeurs des objets iob à lecture automatique au démarrage", "it": "valori di lettura degli oggetti iob con lettura automatica all’avvio", "es": "valores de lectura de objetos iob de lectura automática al inicio", "pl": "odczyt wartości obiektów iob z automatycznym odczytem przy uruchomieniu", "uk": "зчитування значень автозчитування об’єктів iob під час запуску", "zh-cn": "启动时自动读取 iob 对象的读数值"},
110
- "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)": {"en": "treat base DPTs as raw values, e.g. DPT5 = 0-255 (openknx 0.9.1 compatibility)", "de": "Basis-DPTs als Rohwerte behandeln, z.B. DPT5 = 0-255 (openknx 0.9.1 Kompatibilität)", "ru": "обрабатывать базовые DPT как необработанные значения, напр. DPT5 = 0-255 (совместимость с openknx 0.9.1)", "pt": "tratar DPTs base como valores brutos, ex. DPT5 = 0-255 (compatibilidade openknx 0.9.1)", "nl": "basis-DPTs als onbewerkte waarden behandelen, bijv. DPT5 = 0-255 (openknx 0.9.1 compatibiliteit)", "fr": "traiter les DPTs de base comme valeurs brutes, ex. DPT5 = 0-255 (compatibilité openknx 0.9.1)", "it": "trattare i DPT base come valori grezzi, es. DPT5 = 0-255 (compatibilità openknx 0.9.1)", "es": "tratar DPTs base como valores sin procesar, ej. DPT5 = 0-255 (compatibilidad openknx 0.9.1)", "pl": "traktuj bazowe DPT jako wartości surowe, np. DPT5 = 0-255 (kompatybilność openknx 0.9.1)", "uk": "обробляти базові DPT як необроблені значення, напр. DPT5 = 0-255 (сумісність openknx 0.9.1)", "zh-cn": "将基本DPT视为原始值,如DPT5 = 0-255(openknx 0.9.1兼容)"},
111
110
  "remove existing IOB objects that are not in ETS import file": {"en": "remove existing IOB objects that are not in ETS import file", "de": "Vorhandene IOB-Objekte entfernen, die nicht in der ETS-Importdatei enthalten sind", "ru": "удалить существующие объекты IOB, которых нет в файле импорта ETS", "pt": "remova objetos IOB existentes que não estão no arquivo de importação ETS", "nl": "verwijder bestaande IOB-objecten die niet in het ETS-importbestand staan", "fr": "supprimer les objets IOB existants qui ne figurent pas dans le fichier d'importation ETS", "it": "rimuovere gli oggetti IOB esistenti che non si trovano nel file di importazione ETS", "es": "eliminar objetos IOB existentes que no están en el archivo de importación ETS", "pl": "usuń istniejące obiekty IOB, których nie ma w pliku importu ETS", "uk": "видалити існуючі об’єкти IOB, яких немає у файлі імпорту ETS", "zh-cn": "删除 ETS 导入文件中不存在的现有 IOB 对象"},
112
111
  "set acknowledgement flag when application writes to object": {"en": "set acknowledgement flag when application writes to object", "de": "Bestätigungsflag setzen, wenn Anwendung auf Objekt schreibt", "ru": "установить флаг подтверждения, когда приложение записывает в объект", "pt": "definir sinalizador de reconhecimento quando o aplicativo grava no objeto", "nl": "bevestigingsvlag instellen wanneer toepassing naar object schrijft", "fr": "définir l'indicateur d'accusé de réception lorsque l'application écrit dans l'objet", "it": "imposta il flag di riconoscimento quando l'applicazione scrive nell'oggetto", "es": "establecer el indicador de reconocimiento cuando la aplicación escribe en el objeto", "pl": "ustaw flagę potwierdzenia, gdy aplikacja zapisuje do obiektu", "uk": "встановити позначку підтвердження, коли програма записує об’єкт", "zh-cn": "当应用程序写入对象时设置确认标志"},
113
112
  "this is not a number": { "en": "this is not a number", "de": "dies ist keine Zahl", "ru": "это не число", "pt": "este não é um número", "nl": "dit is geen nummer", "fr": "ce n'est pas un nombre", "it": "questo non è un numero", "es": "esto no es un numero", "pl": "to nie jest liczba", "uk": "це не число", "zh-cn": "这不是一个数字"},
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "openknx",
4
- "version": "1.1.8",
4
+ "version": "1.1.10",
5
5
  "news": {
6
+ "1.1.10": {
7
+ "en": "add new DPTs and units",
8
+ "de": "neue DPTs und Einheiten hinzugefügt",
9
+ "ru": "добавить новые DPT и блоки",
10
+ "pt": "adicionar novos DPTs e unidades",
11
+ "nl": "nieuwe DPT's en eenheden toevoegen",
12
+ "fr": "ajouter de nouveaux DPT et unités",
13
+ "it": "aggiungere nuovi DPT e unità",
14
+ "es": "añadir nuevos DPTs y unidades",
15
+ "pl": "dodać nowe DPT i jednostki",
16
+ "uk": "додати нові ДРТ і юніти",
17
+ "zh-cn": "添加新的 DPT 和单位"
18
+ },
19
+ "1.1.9": {
20
+ "en": "fix handling of unkown DPT",
21
+ "de": "Die Behandlung von unbekannten DPTs gefixt",
22
+ "ru": "обработка Unkown DPT",
23
+ "pt": "corrigir o manuseamento de DPT deskown",
24
+ "nl": "fix handling van unkown DPT",
25
+ "fr": "fixer la manipulation du DPT décoloré",
26
+ "it": "gestione corretta di DPT non proprio",
27
+ "es": "arreglar el manejo de DPT unkown",
28
+ "pl": "fix handling of unkown DPT",
29
+ "uk": "фіксувати обробку unkown DPT",
30
+ "zh-cn": "固定处理未隐藏的 DPT"
31
+ },
6
32
  "1.1.8": {
7
33
  "en": "add compatiblity mode für raw DPT5.*\nreduce default delay to 25ms",
8
34
  "de": "Kombatiblitäts-Modus für raw DPT5.*\nDefault-Delay auf 25m reduziert",
@@ -67,32 +93,6 @@
67
93
  "pl": "Adapter wymaga node.js > = 18 i kontroler js- > = 5 teraz\nZaktualizowano zależności",
68
94
  "uk": "Адаптер вимагає node.js >= 18 і js-controller >= 5 тепер\nЗалежність було оновлено",
69
95
  "zh-cn": "适配器需要节点.js QQ18和js控制器 QQ 现在5号\n依赖关系已更新"
70
- },
71
- "0.8.0": {
72
- "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",
73
- "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",
74
- "ru": "функция: введите имя интерфейса KNX в журнал\nbugfix: #419 дождаться завершения соединения перед обработкой данных в случае получения данных\n#457 Не хватает после изменения значения объекта IOB",
75
- "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",
76
- "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",
77
- "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",
78
- "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",
79
- "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",
80
- "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",
81
- "uk": "функція: покласти ім'я інтерфейсу KNX в журнал\nвиправлення помилок: #419 почекайте підключення до обробки даних у разі отримання даних до\nenglish, Українська, Français... Відсутня після зміни значення об'єкта IOB",
82
- "zh-cn": "特性: 将 KNX 接口名称放入日志\nbugfix: # 419 在数据处理之前等待连接完成, 以防在接收数据之前\n错误修正 : # 457 更改 IOB 对象值后丢失"
83
- },
84
- "0.7.3": {
85
- "en": "feature: one of the warnings is configurable in the dialog",
86
- "de": "feature: eine der warnungen ist im dialog konfigurierbar",
87
- "ru": "функция: одно из предупреждений настраивается в диалоге",
88
- "pt": "recurso: um dos avisos é configurável na caixa de diálogo",
89
- "nl": "functie: een van de waarschuwingen is in het dialoogvenster instelbaar",
90
- "fr": "fonctionnalité : un des avertissements est configurable dans la boîte de dialogue",
91
- "it": "caratteristica: uno degli avvisi è configurabile nella finestra di dialogo",
92
- "es": "función: una de las advertencias es configurable en el diálogo",
93
- "pl": "funkcja: jeden z ostrzeżeń jest konfigurowalny w oknie dialogowym",
94
- "uk": "функція: один з попереджень налаштований у діалоговому вікні",
95
- "zh-cn": "特性: 在对话框中可配置警告之一"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -179,7 +179,6 @@
179
179
  "aliasRegexp": "stat(e|us)(\\.|$)|rm(\\.|$)|r(ü|ue)ckmeldung(\\.|$)",
180
180
  "aliasSimilarity": 0.9,
181
181
  "autoreadEnabled": true,
182
- "rawBaseDpt": true,
183
182
  "deviceName": "",
184
183
  "eibadr": "0.0.0",
185
184
  "gwip": "",
@@ -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: !!dptObj && dptObj.subtype && dptObj.subtype.unit ? dptObj.subtype.unit : undefined,
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: !!dptObj && dptObj.subtype && dptObj.subtype.unit ? dptObj.subtype.unit : undefined,
340
+ unit: dptObj?.subtype?.unit || "",
342
341
  write: commonWrite,
343
342
  update: transmitFlag,
344
343
  states: dptObj?.subtype?.enc,
package/main.js CHANGED
@@ -50,13 +50,6 @@ class openknx extends utils.Adapter {
50
50
  this.stopping = false;
51
51
  this.linkedStateMap = {}; // foreignStateId → knxObjectId (reverse lookup for Direct Link)
52
52
 
53
- // Base DPTs without subtype that get unwanted scaling in KNXUltimate
54
- // Map to their raw/unscaled subtype equivalent (like knx.js 0.9.x did)
55
- this.baseDptRawMap = {
56
- DPT5: "DPT5.005",
57
- DPT6: "DPT6.010",
58
- };
59
-
60
53
  // redirect log from KNXUltimate (winston-based logStream) to adapter log
61
54
  // Collapse multiline messages (stack traces) into a single line
62
55
  this.logHandler = entry => {
@@ -592,20 +585,6 @@ class openknx extends utils.Adapter {
592
585
  return duplicates.length ? message : "";
593
586
  }
594
587
 
595
- /**
596
- * Returns the effective DPT string. When rawBaseDpt is enabled and a base DPT
597
- * without subtype is given (e.g. "DPT5"), maps it to an unscaled subtype
598
- * to match knx.js 0.9.x behavior (no percentage scaling).
599
- */
600
- effectiveDpt(dpt) {
601
- if (this.config.rawBaseDpt !== false && dpt && dpt.indexOf(".") === -1) {
602
- const mapped = this.baseDptRawMap[dpt.toUpperCase()];
603
- if (mapped) {
604
- return mapped;
605
- }
606
- }
607
- return dpt;
608
- }
609
588
 
610
589
  // obj to string and date to number for iobroker from knx stack
611
590
  convertType(val) {
@@ -706,7 +685,7 @@ class openknx extends utils.Adapter {
706
685
  `Direct Link [${mode}]: ${id} changed to ${JSON.stringify(state.val)}, writing ${JSON.stringify(writeVal)} to GA ${gaData.native.address}`,
707
686
  );
708
687
  try {
709
- this.knxConnection.write(gaData.native.address, writeVal, this.effectiveDpt(gaData.native.dpt));
688
+ this.knxConnection.write(gaData.native.address, writeVal, gaData.native.dpt);
710
689
  } catch (e) {
711
690
  this.log.warn(`Direct Link write failed for ${gaData.native.address}: ${e.message}`);
712
691
  }
@@ -740,7 +719,7 @@ class openknx extends utils.Adapter {
740
719
  return "not connected to KNX bus";
741
720
  }
742
721
 
743
- const dpt = this.effectiveDpt(gaData.native.dpt);
722
+ const dpt = gaData.native.dpt;
744
723
  const ga = gaData.native.address;
745
724
  let knxVal = state.val;
746
725
  let rawVal;
@@ -926,7 +905,7 @@ class openknx extends utils.Adapter {
926
905
  if (foreignState?.val != null) {
927
906
  const gaData = this.gaList.getDataById(knxId);
928
907
  if (gaData?.native?.address && gaData?.native?.dpt) {
929
- this.knxConnection.write(gaData.native.address, foreignState.val, this.effectiveDpt(gaData.native.dpt));
908
+ this.knxConnection.write(gaData.native.address, foreignState.val, gaData.native.dpt);
930
909
  this.log.debug(`Direct Link sync: ${foreignId}=${foreignState.val} → ${gaData.native.address}`);
931
910
  }
932
911
  }
@@ -1056,7 +1035,7 @@ class openknx extends utils.Adapter {
1056
1035
  const data = this.gaList.getDataById(key);
1057
1036
  let dptConfig = null;
1058
1037
  try {
1059
- dptConfig = dptlib.resolve(this.effectiveDpt(data.native.dpt));
1038
+ dptConfig = dptlib.resolve(data.native.dpt);
1060
1039
  } catch {
1061
1040
  // Unknown DPT - will use raw mode
1062
1041
  }
@@ -1246,7 +1225,7 @@ class openknx extends utils.Adapter {
1246
1225
  this.getForeignState(data.native.linkedState, (fErr, fState) => {
1247
1226
  if (!fErr && fState && fState.val != null) {
1248
1227
  try {
1249
- this.knxConnection.respond(dest, fState.val, this.effectiveDpt(data.native.dpt));
1228
+ this.knxConnection.respond(dest, fState.val, data.native.dpt);
1250
1229
  this.log.debug(`Direct Link: Read ${dest} → ${fState.val}`);
1251
1230
  } catch (e) {
1252
1231
  this.log.error(`Direct Link: respond ${dest}: ${e.message || e}`);
@@ -1270,7 +1249,7 @@ class openknx extends utils.Adapter {
1270
1249
  this.knxConnection.respond(
1271
1250
  dest,
1272
1251
  stateval,
1273
- this.effectiveDpt(this.gaList.getDataById(id).native.dpt),
1252
+ this.gaList.getDataById(id).native.dpt,
1274
1253
  );
1275
1254
  this.log.debug(`responding to ${dest} with value ${state.val} (queue: ${this.knxConnection.commandQueue?.length || 0})`);
1276
1255
  } catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.openknx",
3
- "version": "1.1.8",
3
+ "version": "1.1.10",
4
4
  "description": "ioBroker knx Adapter",
5
5
  "author": "boellner",
6
6
  "contributors": [
@@ -37,8 +37,8 @@
37
37
  "@iobroker/adapter-core": "^3.3.2",
38
38
  "@xmldom/xmldom": "^0.9.10",
39
39
  "@zip.js/zip.js": "^2.8.26",
40
- "ipaddr.js": "^2.3.0",
41
- "knxultimate": "^5.5.3",
40
+ "ipaddr.js": "^2.4.0",
41
+ "knxultimate": "^5.5.6",
42
42
  "sax": "^1.6.0",
43
43
  "xpath": "^0.0.34"
44
44
  },