node-red-contrib-knx-ultimate 6.3.0 → 6.3.1

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,11 @@
6
6
 
7
7
  # CHANGELOG
8
8
 
9
+ **Version 6.3.1** - August 2026<br/>
10
+
11
+ - Updated dependencies, including the security-fixed jsPDF release.<br/>
12
+ - Replaced `node-color-log` with Winston, shared with the KNXUltimate engine.<br/>
13
+
9
14
  **Version 6.3.0** - August 2026<br/>
10
15
 
11
16
  - **HUE Controller**: unified device-first workflow for all supported Hue API v2 resources, with automatic type detection and legacy-node migration.<br/>
@@ -5,6 +5,7 @@
5
5
  /* eslint-disable no-inner-declarations */
6
6
  /* eslint-disable max-len */
7
7
  const cloneDeep = require('lodash/cloneDeep')
8
+ const LoggerClass = require('./utils/sysLogger')
8
9
  const {
9
10
  HUE_CONTROLLER_RESOURCE_TYPES,
10
11
  buildHueControllerResourceCatalog
@@ -12,14 +13,6 @@ const {
12
13
  // const classHUE = require("./utils/hueEngine").classHUE;
13
14
  const hueColorConverter = require('./utils/colorManipulators/hueColorConverter')
14
15
 
15
- // 10/09/2024 Setup the color logger
16
- loggerSetup = (options) => {
17
- const clog = require('node-color-log').createNamedLogger(options.setPrefix)
18
- clog.setLevel(options.loglevel)
19
- clog.setDate(() => (new Date()).toLocaleString())
20
- return clog
21
- }
22
-
23
16
  module.exports = (RED) => {
24
17
  function hueConfig (config) {
25
18
  RED.nodes.createNode(this, config)
@@ -33,7 +26,7 @@ module.exports = (RED) => {
33
26
  node.pendingHueResourceReload = null
34
27
  node.activeHueIdentifySessions = new Map()
35
28
  try {
36
- node.sysLogger = loggerSetup({ loglevel: node.loglevel, setPrefix: 'hue-config.js' })
29
+ node.sysLogger = new LoggerClass({ loglevel: node.loglevel, setPrefix: 'hue-config.js' })
37
30
  } catch (error) { console.log(error.stack) }
38
31
  node.name = config.name === undefined || config.name === '' ? node.host : config.name
39
32
 
@@ -798,6 +791,7 @@ module.exports = (RED) => {
798
791
 
799
792
  node.on('close', (done) => {
800
793
  try {
794
+ node.sysLogger?.destroy()
801
795
  node.sysLogger = null
802
796
  node.nodeClients = []
803
797
  node.closeConnection()
@@ -2755,8 +2755,8 @@ module.exports = (RED) => {
2755
2755
  } catch (error) { /* empty */ }
2756
2756
  node.nodeClients = [] // 05/04/2022 Nullify
2757
2757
  try {
2758
- if (node.sysLogger !== null) node.sysLogger = null
2759
- loggerEngine.destroy()
2758
+ node.sysLogger?.destroy()
2759
+ node.sysLogger = null
2760
2760
  } catch (error) { /* empty */ }
2761
2761
  done()
2762
2762
  })
@@ -115,7 +115,7 @@
115
115
 
116
116
  <script type="text/javascript">
117
117
  RED.nodes.registerType('knxUltimateAI', {
118
- category: "KNX Ultimate",
118
+ category: "KNX Ultimate AI",
119
119
  color: '#FF9800',
120
120
  defaults: {
121
121
  server: { type: "knxUltimate-config", required: true },
@@ -875,4 +875,4 @@
875
875
  </div>
876
876
  </div>
877
877
  </div>
878
- </script>
878
+ </script>
@@ -1,17 +1,10 @@
1
1
  /* eslint-disable max-len */
2
2
  const path = require('path')
3
+ const LoggerClass = require('./utils/sysLogger')
3
4
  const { exportMatterStorage, importMatterStorage } = require('./utils/matterStorageBackup')
4
5
  const matterPackageVersion = require('@matter/main').version
5
6
  const { Specification } = require('@matter/model')
6
7
 
7
- // 10/09/2024 Setup the color logger
8
- const loggerSetup = (options) => {
9
- const clog = require('node-color-log').createNamedLogger(options.setPrefix)
10
- clog.setLevel(options.loglevel)
11
- clog.setDate(() => (new Date()).toLocaleString())
12
- return clog
13
- }
14
-
15
8
  module.exports = (RED) => {
16
9
  function matterConfig (config) {
17
10
  RED.nodes.createNode(this, config)
@@ -30,7 +23,7 @@ module.exports = (RED) => {
30
23
  message: 'Waiting for commissioning to start.'
31
24
  }
32
25
  try {
33
- node.sysLogger = loggerSetup({ loglevel: node.loglevel, setPrefix: 'matter-config.js' })
26
+ node.sysLogger = new LoggerClass({ loglevel: node.loglevel, setPrefix: 'matter-config.js' })
34
27
  } catch (error) { console.log(error.stack) }
35
28
  node.name = config.name === undefined || config.name === '' ? 'Matter Controller' : config.name
36
29
  node.fabricLabel = config.fabricLabel === undefined || config.fabricLabel === '' ? 'KNX-Ultimate' : config.fabricLabel
@@ -378,6 +371,7 @@ module.exports = (RED) => {
378
371
  try {
379
372
  if (node.matterManager !== null) await node.matterManager.close()
380
373
  node.matterManager = null
374
+ node.sysLogger?.destroy()
381
375
  node.sysLogger = null
382
376
  done()
383
377
  } catch (error) {
@@ -1,17 +1,10 @@
1
1
  /* eslint-disable max-len */
2
2
  const path = require('path')
3
+ const LoggerClass = require('./utils/sysLogger')
3
4
  const { exportMatterStorage, importMatterStorage } = require('./utils/matterStorageBackup')
4
5
  const matterPackageVersion = require('@matter/main').version
5
6
  const { Specification } = require('@matter/model')
6
7
 
7
- // 10/09/2024 Setup the color logger
8
- const loggerSetup = (options) => {
9
- const clog = require('node-color-log').createNamedLogger(options.setPrefix)
10
- clog.setLevel(options.loglevel)
11
- clog.setDate(() => (new Date()).toLocaleString())
12
- return clog
13
- }
14
-
15
8
  // The running Matter servers, keyed by config node id. Kept OUTSIDE the node lifecycle:
16
9
  // a re-deploy must NOT restart the Matter server, otherwise the paired controllers
17
10
  // resume their session without re-reading the structure and never see device changes.
@@ -26,7 +19,7 @@ module.exports = (RED) => {
26
19
  node.loglevel = config.loglevel !== undefined ? config.loglevel : 'error'
27
20
  node.sysLogger = null
28
21
  try {
29
- node.sysLogger = loggerSetup({ loglevel: node.loglevel, setPrefix: 'matterbridge-config.js' })
22
+ node.sysLogger = new LoggerClass({ loglevel: node.loglevel, setPrefix: 'matterbridge-config.js' })
30
23
  } catch (error) { console.log(error.stack) }
31
24
 
32
25
  node.name = config.name === undefined || config.name === '' ? 'Matter Bridge' : config.name
@@ -258,6 +251,7 @@ module.exports = (RED) => {
258
251
  } catch (error) { /* empty */ }
259
252
  node.matterBridge = null
260
253
  node.deviceClients.clear()
254
+ node.sysLogger?.destroy()
261
255
  node.sysLogger = null
262
256
  done()
263
257
  })()