node-red-contrib-knx-ultimate 5.0.3 → 5.0.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/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@
6
6
 
7
7
  # CHANGELOG
8
8
 
9
+ **Version 5.0.4** - July 2026<br/>
10
+
11
+ - **IoT Bridge** node, **Covers & Thermostats** editor: fixed the group-address autocomplete, which suggested only DPT **1.x** addresses in every field. Each field now filters by the datapoint it expects: cover **Set/Status position** GAs list DPT **5.x** (5.001), and the thermostat **Current temperature** and **Setpoint set/status** GAs list DPT **9.x** (9.001). Up/Down, Stop and On/Off keep their 1.x filter.<br/>
12
+
9
13
  **Version 5.0.3** - July 2026<br/>
10
14
 
11
15
  - Added a link to the **KNX-Ultimate YouTube tutorials playlist** at the top of every node's configuration panel, so the video tutorials are one click away from any node.<br/>
@@ -402,10 +402,17 @@
402
402
  const T = (k) => node._('knxUltimateIoTBridge.ha.' + k);
403
403
  const coverFields = ['gaUpDown', 'gaStop', 'gaPosSet', 'gaPosState'];
404
404
  const climateFields = ['gaCurrentTemp', 'gaSetpointSet', 'gaSetpointState', 'gaOnOff'];
405
+ // DPT main-type each field expects, used to filter the GA autocomplete so
406
+ // e.g. the position GAs suggest DPT 5.x and the temperature GAs suggest 9.x
407
+ // instead of everything defaulting to 1.x.
408
+ const gaDptFilter = {
409
+ gaUpDown: '1.', gaStop: '1.', gaPosSet: '5.', gaPosState: '5.',
410
+ gaCurrentTemp: '9.', gaSetpointSet: '9.', gaSetpointState: '9.', gaOnOff: '1.'
411
+ };
405
412
 
406
413
  // Group-address autocomplete, identical to the mapping GA field (and the
407
414
  // knxUltimate node): suggests GAs from the gateway's ETS CSV.
408
- function attachGaAutocomplete(input) {
415
+ function attachGaAutocomplete(input, dptFilter) {
409
416
  try {
410
417
  if (oNodeServer && oNodeServer.id && typeof KNX_enableSecureFormatting === 'function') {
411
418
  KNX_enableSecureFormatting(input, oNodeServer.id);
@@ -419,7 +426,7 @@
419
426
  $.getJSON('knxUltimatecsv?nodeID=' + sid, (data) => {
420
427
  response($.map(data || [], (value) => {
421
428
  const search = (value.ga + ' (' + value.devicename + ') DPT' + value.dpt);
422
- if (htmlUtilsfullCSVSearch(search, request.term + ' 1.')) {
429
+ if (htmlUtilsfullCSVSearch(search, request.term + ' ' + (dptFilter || '1.'))) {
423
430
  return {
424
431
  label: value.ga + ' # ' + value.devicename + ' # ' + value.dpt,
425
432
  value: value.ga
@@ -440,7 +447,7 @@
440
447
  $('<label/>').css({ width: '160px' }).text(T('ce_' + key)).appendTo(row);
441
448
  const input = $('<input/>', { type: 'text', class: 'ce-' + key })
442
449
  .attr('placeholder', '1/2/3').css({ width: '130px' }).val(value || '').appendTo(row);
443
- attachGaAutocomplete(input);
450
+ attachGaAutocomplete(input, gaDptFilter[key]);
444
451
  return input;
445
452
  }
446
453
  function numRow(parent, key, value) {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "engines": {
4
4
  "node": ">=20.18.1"
5
5
  },
6
- "version": "5.0.3",
6
+ "version": "5.0.4",
7
7
  "description": "Control your KNX and KNX Secure intallation via Node-Red! A bunch of KNX nodes, with integrated Philips HUE control, ETS group address importer, KNX AI for diagnosticsand KNX routing between interfaces. Easy to use and highly configurable.",
8
8
  "files": [
9
9
  "nodes/",