iobroker.openknx 1.1.8 → 1.1.9
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 +3 -5
- package/admin/i18n/de/translations.json +1 -2
- package/admin/i18n/en/translations.json +1 -2
- package/admin/i18n/es/translations.json +1 -2
- package/admin/i18n/fr/translations.json +1 -2
- package/admin/i18n/it/translations.json +1 -2
- package/admin/i18n/nl/translations.json +1 -2
- package/admin/i18n/pl/translations.json +1 -2
- package/admin/i18n/pt/translations.json +1 -2
- package/admin/i18n/ru/translations.json +1 -2
- package/admin/i18n/uk/translations.json +1 -2
- package/admin/i18n/zh-cn/translations.json +1 -2
- package/admin/index_m.html +1 -7
- package/admin/words.js +0 -1
- package/io-package.json +14 -15
- package/main.js +6 -27
- package/package.json +3 -3
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.9 (2026-05-04)
|
|
56
|
+
- fix handling of unkown DPT
|
|
57
|
+
|
|
55
58
|
### 1.1.8 (2026-04-30)
|
|
56
59
|
- add compatiblity mode für raw DPT5.*
|
|
57
60
|
- reduce default delay to 25ms
|
|
@@ -78,11 +81,6 @@ ioBroker adapter for KNX IP communication, powered by [KNXUltimate](https://gith
|
|
|
78
81
|
- (copilot) Adapter requires js-controller >= 6.0.11 now
|
|
79
82
|
- (@klein0r) Adapter requires node.js >= 20 and js-controller >= 6 now
|
|
80
83
|
|
|
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
84
|
### initial version
|
|
87
85
|
|
|
88
86
|
- initial version from https://www.npmjs.com/package/iobroker.knx/v/0.8.3
|
|
@@ -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
|
}
|
package/admin/index_m.html
CHANGED
|
@@ -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
|
-
|
|
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,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "openknx",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.9",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.1.9": {
|
|
7
|
+
"en": "fix handling of unkown DPT",
|
|
8
|
+
"de": "Die Behandlung von unbekannten DPTs gefixt",
|
|
9
|
+
"ru": "обработка Unkown DPT",
|
|
10
|
+
"pt": "corrigir o manuseamento de DPT deskown",
|
|
11
|
+
"nl": "fix handling van unkown DPT",
|
|
12
|
+
"fr": "fixer la manipulation du DPT décoloré",
|
|
13
|
+
"it": "gestione corretta di DPT non proprio",
|
|
14
|
+
"es": "arreglar el manejo de DPT unkown",
|
|
15
|
+
"pl": "fix handling of unkown DPT",
|
|
16
|
+
"uk": "фіксувати обробку unkown DPT",
|
|
17
|
+
"zh-cn": "固定处理未隐藏的 DPT"
|
|
18
|
+
},
|
|
6
19
|
"1.1.8": {
|
|
7
20
|
"en": "add compatiblity mode für raw DPT5.*\nreduce default delay to 25ms",
|
|
8
21
|
"de": "Kombatiblitäts-Modus für raw DPT5.*\nDefault-Delay auf 25m reduziert",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
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",
|
|
81
94
|
"uk": "функція: покласти ім'я інтерфейсу KNX в журнал\nвиправлення помилок: #419 почекайте підключення до обробки даних у разі отримання даних до\nenglish, Українська, Français... Відсутня після зміни значення об'єкта IOB",
|
|
82
95
|
"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": "",
|
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,
|
|
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 =
|
|
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,
|
|
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(
|
|
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,
|
|
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.
|
|
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.
|
|
3
|
+
"version": "1.1.9",
|
|
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.
|
|
41
|
-
"knxultimate": "^5.5.
|
|
40
|
+
"ipaddr.js": "^2.4.0",
|
|
41
|
+
"knxultimate": "^5.5.4",
|
|
42
42
|
"sax": "^1.6.0",
|
|
43
43
|
"xpath": "^0.0.34"
|
|
44
44
|
},
|