From 02bdc5c0b089a71108758c13afcfc64d6f55c6a8 Mon Sep 17 00:00:00 2001 From: Ingo Fischer Date: Thu, 9 Jan 2025 09:05:56 +0100 Subject: [PATCH 1/6] Deps and updates --- package-lock.json | 386 +++++++++++++--------------------------------- package.json | 14 +- 2 files changed, 115 insertions(+), 285 deletions(-) diff --git a/package-lock.json b/package-lock.json index 636be33..f15c115 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,9 +13,9 @@ "@iobroker/dm-utils": "^0.6.11", "@iobroker/i18n": "^0.3.1", "@iobroker/type-detector": "^4.1.1", - "@matter/main": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/nodejs": "0.12.0-alpha.0-20241231-9ac20db97", - "@project-chip/matter.js": "0.12.0-alpha.0-20241231-9ac20db97", + "@matter/main": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/nodejs": "0.12.0-alpha.0-20250108-7ae2a767d", + "@project-chip/matter.js": "0.12.0-alpha.0-20250108-7ae2a767d", "axios": "^1.7.9", "jsonwebtoken": "^9.0.2" }, @@ -23,24 +23,24 @@ "@alcalzone/release-script": "^3.8.0", "@alcalzone/release-script-plugin-iobroker": "^3.7.2", "@alcalzone/release-script-plugin-license": "^3.7.0", - "@iobroker/build-tools": "^2.0.12", + "@iobroker/build-tools": "^2.0.14", "@iobroker/dev-server": "^0.7.3", "@iobroker/eslint-config": "^1.0.0", "@iobroker/legacy-testing": "^2.0.1", "@iobroker/types": "^7.0.6", "@types/jsonwebtoken": "^9.0.7", - "@types/node": "^22.10.2", + "@types/node": "^22.10.5", "chai": "^4.5.0", "colorette": "^2.0.20", "mocha": "^11.0.1", "puppeteer": "^23.11.1", - "typescript": "~5.7.2" + "typescript": "~5.7.3" }, "engines": { "node": ">=18" }, "optionalDependencies": { - "@matter/nodejs-ble": "0.12.0-alpha.0-20241231-9ac20db97" + "@matter/nodejs-ble": "0.12.0-alpha.0-20250108-7ae2a767d" } }, "node_modules/@alcalzone/pak": { @@ -497,12 +497,12 @@ } }, "node_modules/@iobroker/build-tools": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@iobroker/build-tools/-/build-tools-2.0.12.tgz", - "integrity": "sha512-pDcxQ3tlYmGz6obMCo8ZuK//R2WSrHtosffZUYApEPB9NonA1GQD3D0tf4azJLAlJHX3k5teIKFivCvGMzTFjg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@iobroker/build-tools/-/build-tools-2.0.14.tgz", + "integrity": "sha512-AdhOvxZ+wZC8EVSbHg/PvfSU/qsfAAny2AJMGMW03w9oPMrq/zTCBE9hAUnF59/I2RLrfFmUUIcg5xTkEDoy2A==", "dev": true, "dependencies": { - "glob": "^11.0.0" + "glob": "^10.4.5" }, "engines": { "node": ">=16" @@ -1001,64 +1001,64 @@ } }, "node_modules/@matter/general": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@matter/general/-/general-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-MDj//sB5/AkoohIg5Kx/c1PBoJy9DRzf3dg7mbptCxV4N1QzxPynz2qHk5V+cEMYZX0Jx2uy4amD5pWw8VgCHg==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@matter/general/-/general-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-cHlsLLnjVZcNl63D0LdNW3z8IQAm2x6b0TGXGKEXJ3CGsFvZtx5QXz8bupvQGSeD0Q2neUoKvfqT/PM7GMaGOA==", "license": "Apache-2.0", "dependencies": { - "@noble/curves": "^1.7.0" + "@noble/curves": "^1.8.0" } }, "node_modules/@matter/main": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@matter/main/-/main-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-zihZhEiwgXEJJkDUe52c9Dy/Nc8Zz4ujDEBi0jay0iUwoGY7ASftWHyh/mGG6kGeFo5RCRO67hN4yKzNCT7M6A==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@matter/main/-/main-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-fkzn6ONZ3bwnCBMIOq/OKQ3GhpLVQyt0Psw2LRpZK6Nr5YFYp5sihrrMKaNz79LbB5xFRu/6AGdEVzFku6342A==", "license": "Apache-2.0", "dependencies": { - "@matter/general": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/model": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/node": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/protocol": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/types": "0.12.0-alpha.0-20241231-9ac20db97", + "@matter/general": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/model": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/node": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/protocol": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/types": "0.12.0-alpha.0-20250108-7ae2a767d", "@noble/curves": "^1.7.0" }, "optionalDependencies": { - "@matter/nodejs": "0.12.0-alpha.0-20241231-9ac20db97" + "@matter/nodejs": "0.12.0-alpha.0-20250108-7ae2a767d" } }, "node_modules/@matter/model": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@matter/model/-/model-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-ukUsFdLewsIQe3/CCJfbPHBJpZxB9FodZWvtj3fOTBseNRWTSnX/n2QkLp8MrmLSH3pZzG2BAo9D4IiTl4ZylQ==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@matter/model/-/model-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-XVGtuJLKFYLr1SKcqYBoW9BrZadr/hg89O/V1QWJaQ9WqiCmYByguuXi8/76R+f+Fw+xwU16/HSj0tPgmEuc/g==", "license": "Apache-2.0", "dependencies": { - "@matter/general": "0.12.0-alpha.0-20241231-9ac20db97", + "@matter/general": "0.12.0-alpha.0-20250108-7ae2a767d", "@noble/curves": "^1.7.0" } }, "node_modules/@matter/node": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@matter/node/-/node-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-Rou4UjVqDPa9S+/iJPGcrOm32apxq5XnM0Roino11cXBp2Sfgov85p0+J4ZfgKHPGFoy1RP2QUoRpPngG0hXOQ==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@matter/node/-/node-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-8PlfebwjM+9lBecIHXA3ynWI/dlObYYdYZv0l0hFTK2BCSRkJrRF8NyDGqiUPbUIwq3sI5hUxJDU7MCJNJ2jig==", "license": "Apache-2.0", "dependencies": { - "@matter/general": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/model": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/protocol": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/types": "0.12.0-alpha.0-20241231-9ac20db97", + "@matter/general": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/model": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/protocol": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/types": "0.12.0-alpha.0-20250108-7ae2a767d", "@noble/curves": "^1.7.0" } }, "node_modules/@matter/nodejs": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@matter/nodejs/-/nodejs-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-Mq7BJDlAqf9DNQvKp55VMfEawEdqHKj02mwXbQTfH5Gg2UX2RaXdRsN6U2b3YpYteDvZzS8ArDL/8K65RRyh5A==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@matter/nodejs/-/nodejs-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-O4iBzk4TxL1FF7vwiGq83ca35hSu61bFZ2srFxrcliNvRoQ/7iHebg7ZdxPkvw/4XN4a70Q8NIVtyKUDqKXj1w==", "license": "Apache-2.0", "dependencies": { - "@matter/general": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/node": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/protocol": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/types": "0.12.0-alpha.0-20241231-9ac20db97", + "@matter/general": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/node": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/protocol": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/types": "0.12.0-alpha.0-20250108-7ae2a767d", "node-localstorage": "^3.0.5" }, "engines": { @@ -1066,54 +1066,54 @@ } }, "node_modules/@matter/nodejs-ble": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@matter/nodejs-ble/-/nodejs-ble-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-FEEPkHnKdsDTZyqg5dMH5xeaQTKWZOL1eTv4mhJ2C3cE1AyQheGVwwx9y4S2eBN6+VLsuz9ebL9fF+05BFpqyA==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@matter/nodejs-ble/-/nodejs-ble-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-Z+KFiIuRRB6vsUPVbW74kwCGpg1n8htE3G9vKAOLtOLTi9Wq7EG6buRtQnoi/EW0hMuooEorsTnvfB4hOmZenQ==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@matter/general": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/protocol": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/types": "0.12.0-alpha.0-20241231-9ac20db97" + "@matter/general": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/protocol": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/types": "0.12.0-alpha.0-20250108-7ae2a767d" }, "engines": { "node": ">=18.0.0" }, "optionalDependencies": { "@stoprocent/bleno": "^0.8.1", - "@stoprocent/noble": "^1.17.3" + "@stoprocent/noble": "^1.18.2" } }, "node_modules/@matter/protocol": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@matter/protocol/-/protocol-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-zIYhCjxUlheDkDumr/Cmm17pvwTlMj/mKeYyMPkRLAbE1SpVq0FkaAQeqeLfhokWmM4V/S87pJ9ezK5DHMF+fw==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@matter/protocol/-/protocol-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-i9uC6w6VSWWXTkQSsII/uFkVlzkcHJI92PvB2ky/kg/gXTMlvcsZfN951pyV8VwFPldE7shRlHTlnGeA+6W0Lw==", "license": "Apache-2.0", "dependencies": { - "@matter/general": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/model": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/types": "0.12.0-alpha.0-20241231-9ac20db97", - "@noble/curves": "^1.7.0" + "@matter/general": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/model": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/types": "0.12.0-alpha.0-20250108-7ae2a767d", + "@noble/curves": "^1.8.0" } }, "node_modules/@matter/types": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@matter/types/-/types-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-DrRFlywnpUjwChWpkhRfdwJBSqQkUAO8q0ZD0hqe4iOPdcrI+XG2r2dKfP5wnyZQbG75cPY0uv0IGq692yVbLQ==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@matter/types/-/types-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-opI+W8nZzac1cf95uOTqQ6JRkIEt3tT8pmdmuuddLuANu2D44uKEGLjkDkL28noPISQrBblhU8rZvaor5Ab9Sg==", "license": "Apache-2.0", "dependencies": { - "@matter/general": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/model": "0.12.0-alpha.0-20241231-9ac20db97", + "@matter/general": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/model": "0.12.0-alpha.0-20250108-7ae2a767d", "@noble/curves": "^1.7.0" } }, "node_modules/@noble/curves": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz", - "integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", + "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", "license": "MIT", "dependencies": { - "@noble/hashes": "1.6.0" + "@noble/hashes": "1.7.0" }, "engines": { "node": "^14.21.3 || >=16" @@ -1123,9 +1123,9 @@ } }, "node_modules/@noble/hashes": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz", - "integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", "license": "MIT", "engines": { "node": "^14.21.3 || >=16" @@ -1266,16 +1266,16 @@ } }, "node_modules/@project-chip/matter.js": { - "version": "0.12.0-alpha.0-20241231-9ac20db97", - "resolved": "https://registry.npmjs.org/@project-chip/matter.js/-/matter.js-0.12.0-alpha.0-20241231-9ac20db97.tgz", - "integrity": "sha512-qlVq/Xaaa4vVF+KxGSxF+Vi2SdU8WtUI8t/Jfj+NZ+7trqX4t6mXomoWlQSAh6Myp/3ojDfo8x3VylFa9L4ImQ==", + "version": "0.12.0-alpha.0-20250108-7ae2a767d", + "resolved": "https://registry.npmjs.org/@project-chip/matter.js/-/matter.js-0.12.0-alpha.0-20250108-7ae2a767d.tgz", + "integrity": "sha512-5xO3F/uXlFEJCMJ7YERy32c1SpzNfC8E6wJOaYaQPmF0E3gyRrFP8rMVMsPui3fVgsFpW4Guy2gtVKGcolONBw==", "license": "Apache-2.0", "dependencies": { - "@matter/general": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/model": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/node": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/protocol": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/types": "0.12.0-alpha.0-20241231-9ac20db97", + "@matter/general": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/model": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/node": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/protocol": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/types": "0.12.0-alpha.0-20250108-7ae2a767d", "@noble/curves": "^1.7.0" } }, @@ -1812,9 +1812,9 @@ } }, "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6026,25 +6026,22 @@ } }, "node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": "20 || >=22" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -6073,16 +6070,16 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": "20 || >=22" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -7172,19 +7169,19 @@ } }, "node_modules/jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": "20 || >=22" - }, "funding": { "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/js-tokens": { @@ -7716,14 +7713,11 @@ } }, "node_modules/lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } + "license": "ISC" }, "node_modules/make-fetch-happen": { "version": "10.2.1", @@ -8225,66 +8219,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/mocha/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/mocha/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/mocha/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -8298,23 +8232,6 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -9232,17 +9149,17 @@ "peer": true }, "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": "20 || >=22" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10100,93 +10017,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/rimraf/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -11740,9 +11570,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index 9cf87be..647cd63 100644 --- a/package.json +++ b/package.json @@ -23,16 +23,16 @@ "url": "https://github.com/ioBroker/ioBroker.matter" }, "optionalDependencies": { - "@matter/nodejs-ble": "0.12.0-alpha.0-20241231-9ac20db97" + "@matter/nodejs-ble": "0.12.0-alpha.0-20250108-7ae2a767d" }, "dependencies": { "@iobroker/adapter-core": "^3.2.3", "@iobroker/i18n": "^0.3.1", "@iobroker/dm-utils": "^0.6.11", "@iobroker/type-detector": "^4.1.1", - "@matter/main": "0.12.0-alpha.0-20241231-9ac20db97", - "@matter/nodejs": "0.12.0-alpha.0-20241231-9ac20db97", - "@project-chip/matter.js": "0.12.0-alpha.0-20241231-9ac20db97", + "@matter/main": "0.12.0-alpha.0-20250108-7ae2a767d", + "@matter/nodejs": "0.12.0-alpha.0-20250108-7ae2a767d", + "@project-chip/matter.js": "0.12.0-alpha.0-20250108-7ae2a767d", "axios": "^1.7.9", "jsonwebtoken": "^9.0.2" }, @@ -40,18 +40,18 @@ "@alcalzone/release-script": "^3.8.0", "@alcalzone/release-script-plugin-iobroker": "^3.7.2", "@alcalzone/release-script-plugin-license": "^3.7.0", - "@iobroker/build-tools": "^2.0.12", + "@iobroker/build-tools": "^2.0.14", "@iobroker/dev-server": "^0.7.3", "@iobroker/eslint-config": "^1.0.0", "@iobroker/legacy-testing": "^2.0.1", "@iobroker/types": "^7.0.6", "@types/jsonwebtoken": "^9.0.7", - "@types/node": "^22.10.2", + "@types/node": "^22.10.5", "chai": "^4.5.0", "colorette": "^2.0.20", "mocha": "^11.0.1", "puppeteer": "^23.11.1", - "typescript": "~5.7.2" + "typescript": "~5.7.3" }, "bugs": { "url": "https://github.com/ioBroker/ioBroker.matter/issues" From f19e55b7037b99e180d6ee80a696937101a6e3a6 Mon Sep 17 00:00:00 2001 From: Ingo Fischer Date: Thu, 9 Jan 2025 09:06:12 +0100 Subject: [PATCH 2/6] fix Generic Switch for controller --- .../to-iobroker/GenericSwitchToIoBroker.ts | 57 ++++++++++--------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/src/matter/to-iobroker/GenericSwitchToIoBroker.ts b/src/matter/to-iobroker/GenericSwitchToIoBroker.ts index 2049682..a789512 100644 --- a/src/matter/to-iobroker/GenericSwitchToIoBroker.ts +++ b/src/matter/to-iobroker/GenericSwitchToIoBroker.ts @@ -38,51 +38,52 @@ export class GenericSwitchToIoBroker extends GenericDeviceToIoBroker { this.#ioBrokerDevice = new ButtonSensor( { ...ChannelDetector.getPatterns().buttonSensor, isIoBrokerDevice: false } as DetectedDevice, adapter, - this.enableDeviceTypeStates(), + this.enableMomentarySwitchDeviceTypeStates(), ); } else { // A Latching Switch (only other option) is mapped to a Socket this.#ioBrokerDevice = new Socket( { ...ChannelDetector.getPatterns().socket, isIoBrokerDevice: false } as DetectedDevice, adapter, - this.enableDeviceTypeStates(), + this.enableLatchingSwitchDeviceTypeStates(), ); } } - protected enableDeviceTypeStates(): DeviceOptions { - if (this.#ioBrokerDevice instanceof ButtonSensor) { - this.enableDeviceTypeStateForAttribute(PropertyType.Press, { + protected enableMomentarySwitchDeviceTypeStates(): DeviceOptions { + this.enableDeviceTypeStateForAttribute(PropertyType.Press, { + endpointId: this.appEndpoint.getNumber(), + clusterId: Switch.Cluster.id, + attributeName: 'currentPosition', + convertValue: value => value !== 0, + }); + + const hasLongPress = this.appEndpoint.getClusterClient(Switch.Complete)?.supportedFeatures + .momentarySwitchLongPress; + if (hasLongPress) { + this.enableDeviceTypeStateForEvent(PropertyType.PressLong, { endpointId: this.appEndpoint.getNumber(), clusterId: Switch.Cluster.id, - attributeName: 'currentPosition', - convertValue: value => value !== 0, + eventName: 'longPress', + convertValue: () => true, }); - - const hasLongPress = this.appEndpoint.getClusterClient(Switch.Complete)?.supportedFeatures - .momentarySwitchLongPress; - if (hasLongPress) { - this.enableDeviceTypeStateForEvent(PropertyType.PressLong, { - endpointId: this.appEndpoint.getNumber(), - clusterId: Switch.Cluster.id, - eventName: 'longPress', - convertValue: () => true, - }); - this.enableDeviceTypeStateForEvent(PropertyType.PressLong, { - endpointId: this.appEndpoint.getNumber(), - clusterId: Switch.Cluster.id, - eventName: 'longRelease', - convertValue: () => false, - }); - } - } else { - this.enableDeviceTypeStateForAttribute(PropertyType.PowerActual, { + this.enableDeviceTypeStateForEvent(PropertyType.PressLong, { endpointId: this.appEndpoint.getNumber(), clusterId: Switch.Cluster.id, - attributeName: 'currentPosition', - convertValue: value => value !== 0, + eventName: 'longRelease', + convertValue: () => false, }); } + return super.enableDeviceTypeStates(); + } + + protected enableLatchingSwitchDeviceTypeStates(): DeviceOptions { + this.enableDeviceTypeStateForAttribute(PropertyType.PowerActual, { + endpointId: this.appEndpoint.getNumber(), + clusterId: Switch.Cluster.id, + attributeName: 'currentPosition', + convertValue: value => value !== 0, + }); return super.enableDeviceTypeStates(); } From 272c082c114009e243fc04a603e1fb6c24452a60 Mon Sep 17 00:00:00 2001 From: Ingo Fischer Date: Thu, 9 Jan 2025 09:08:45 +0100 Subject: [PATCH 3/6] Add serialnumber --- src/matter/BridgedDevicesNode.ts | 5 +++- src/matter/ControllerNode.ts | 51 +++++++++++++++++++------------- src/matter/DeviceNode.ts | 2 +- 3 files changed, 35 insertions(+), 23 deletions(-) diff --git a/src/matter/BridgedDevicesNode.ts b/src/matter/BridgedDevicesNode.ts index 4884309..06e0028 100644 --- a/src/matter/BridgedDevicesNode.ts +++ b/src/matter/BridgedDevicesNode.ts @@ -73,6 +73,7 @@ class BridgedDevices extends BaseServerNode { if (mappingDevice) { const name = mappingDevice.name; const endpoints = mappingDevice.matterEndpoints; + const serialNumber = deviceOptions.uuid.replace(/-/g, ''); if (endpoints.length === 1 || deviceOptions.noComposed) { let erroredCount = 0; // When only one endpoint or non-composed we simply add all endpoints for itself to the bridge @@ -94,6 +95,7 @@ class BridgedDevices extends BaseServerNode { nodeLabel: matterName, productName: matterName, productLabel: name.substring(0, 64), + serialNumber, uniqueId: md5(endpoint.id), reachable: true, }); @@ -133,6 +135,7 @@ class BridgedDevices extends BaseServerNode { nodeLabel: matterName, productName: matterName, productLabel: name.substring(0, 64), + serialNumber, uniqueId: md5(id), reachable: true, }, @@ -189,7 +192,7 @@ class BridgedDevices extends BaseServerNode { const vendorId = this.#parameters.vendorId; // 0xfff1; const productId = this.#parameters.productId; // 0x8000; - const uniqueId = this.#parameters.uuid.replace(/-/g, '').split('.').pop(); + const uniqueId = this.#parameters.uuid.replace(/-/g, ''); if (uniqueId === undefined) { throw new Error(`Could not determine device unique id from ${this.#parameters.uuid}`); } diff --git a/src/matter/ControllerNode.ts b/src/matter/ControllerNode.ts index 986770d..56094a8 100644 --- a/src/matter/ControllerNode.ts +++ b/src/matter/ControllerNode.ts @@ -64,37 +64,46 @@ class Controller implements GeneralNode { } init(): void { - this.applyConfiguration(this.#parameters); - } - - applyConfiguration(config: MatterControllerConfig): MessageResponse { - const currentConfig: MatterControllerConfig = { - enabled: true, - defaultExposeMatterApplicationClusterData: false, - defaultExposeMatterSystemClusterData: false, - ...(this.#parameters as Partial), - }; - - this.#useBle = false; - if (config.ble !== currentConfig.ble || config.hciId !== currentConfig.hciId) { + if (this.#parameters.ble) { if ( - config.ble && - ((config.wifiSSID && config.wifiPassword) || - (config.threadNetworkName !== undefined && config.threadOperationalDataSet !== undefined)) + (this.#parameters.wifiSSID && this.#parameters.wifiPassword) || + (this.#parameters.threadNetworkName !== undefined && + this.#parameters.threadOperationalDataSet !== undefined) ) { try { - const hciId = config.hciId === undefined ? undefined : parseInt(config.hciId); + const hciId = this.#parameters.hciId === undefined ? undefined : parseInt(this.#parameters.hciId); Ble.get = singleton(() => new NodeJsBle({ hciId })); this.#useBle = true; } catch (error) { this.#adapter.log.warn(`Failed to initialize BLE: ${error.message}`); - config.ble = false; - return { - error: `Can not adjust configuration and enable BLE because of error: ${error.message}`, - }; + this.#parameters.ble = false; + return; } + } else { + this.#adapter.log.warn( + `BLE enabled but no WiFi or Thread configuration provided. BLE will stay disabled.`, + ); + this.#parameters.ble = false; } } + this.applyConfiguration(this.#parameters, true); + } + + applyConfiguration(config: MatterControllerConfig, isInit = false): MessageResponse { + const currentConfig: MatterControllerConfig = { + enabled: true, + defaultExposeMatterApplicationClusterData: false, + defaultExposeMatterSystemClusterData: false, + ...(this.#parameters as Partial), + }; + + if (!isInit && (config.ble !== currentConfig.ble || config.hciId !== currentConfig.hciId)) { + this.#adapter.setTimeout(() => this.#adapter.restart(), 5000); + // Restart of the adapter needed + return { + error: `BLE configuration adjusted. The adapter will restart in 5 seconds.`, + }; + } this.#parameters = config; return { result: true }; } diff --git a/src/matter/DeviceNode.ts b/src/matter/DeviceNode.ts index b630558..7cf3190 100644 --- a/src/matter/DeviceNode.ts +++ b/src/matter/DeviceNode.ts @@ -73,7 +73,7 @@ class Device extends BaseServerNode { const productName = this.#deviceOptions.name || this.#parameters.productName; const productId = this.#parameters.productId; // 0x8000; - const uniqueId = this.#parameters.uuid.replace(/-/g, '').split('.').pop(); + const uniqueId = this.#parameters.uuid.replace(/-/g, ''); if (uniqueId === undefined) { throw new Error(`Could not determine device unique id from ${this.#parameters.uuid}`); } From 812272329d9da7f96084f2a6d7604d6f1ac44d7e Mon Sep 17 00:00:00 2001 From: Ingo Fischer Date: Thu, 9 Jan 2025 09:08:55 +0100 Subject: [PATCH 4/6] changelog --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 84f4d2e..79d9158 100644 --- a/README.md +++ b/README.md @@ -241,7 +241,10 @@ TBD ### **WORK IN PROGRESS** * (@GermanBluefox) Fixed GUI errors * (@GermanBluefox) Added `Controller fabric label` to configuration -* (@GermanBluefox) Solution for QR-Code scanning on non HTTPS pages +* (@GermanBluefox) Added solution for QR-Code scanning on non HTTPS pages +* (@Apollon77) Fixed Generic Switch Device type for controller +* (@Apollon77) Fixed Controller BLE initialization and activation +* (@Apollon77) Added serialNumber to all devices and bridges for better device re-detection by controllers ### 0.3.4 (2024-12-31) * (@Apollon77) Updates matter.js to address several issues From a1fca2a7ba22dd81dfff443f8893e9bba1b3b22f Mon Sep 17 00:00:00 2001 From: Ingo Fischer Date: Thu, 9 Jan 2025 09:22:00 +0100 Subject: [PATCH 5/6] move controller up in settings --- src-admin/src/Tabs/Options.tsx | 50 +++++++++++++++++----------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src-admin/src/Tabs/Options.tsx b/src-admin/src/Tabs/Options.tsx index 332b9f2..f2666ee 100644 --- a/src-admin/src/Tabs/Options.tsx +++ b/src-admin/src/Tabs/Options.tsx @@ -422,6 +422,31 @@ class Options extends Component { +
+ {I18n.t('Controller Settings')} + this.props.onChange('controllerFabricLabel', e.target.value)} + margin="normal" + slotProps={{ + input: { + endAdornment: this.props.native.controllerFabricLabel ? ( + this.props.onChange('controllerFabricLabel', '')} + > + + + ) : null, + }, + }} + style={styles.input} + /> +
+
{I18n.t('Cloud Account')} @@ -572,31 +597,6 @@ class Options extends Component { />
-
- {I18n.t('Controller Settings')} - this.props.onChange('controllerFabricLabel', e.target.value)} - margin="normal" - slotProps={{ - input: { - endAdornment: this.props.native.controllerFabricLabel ? ( - this.props.onChange('controllerFabricLabel', '')} - > - - - ) : null, - }, - }} - style={styles.input} - /> -
-
{I18n.t('Maintenance Settings')}