NEWS
Test Adapter Samsung Smartthings v.0.0.x
-
Schade. Der Adapter scheint mit Node 20 nicht mehr zu funktionieren.
Exception-Code: ERR_OSSL_WRONG_FINAL_BLOCK_LENGTH: error:1C80006B:Provider routines::wrong final block length
smartthings.0
2025-12-22 22:09:59.099 error Error: error:1C80006B:Provider routines::wrong final block length at Decipheriv.final (node:internal/crypto/cipher:193:29) at Smartthings.login (/opt/iobroker/node_modules/iobroker.smartthings/main.js:135:32) at Smartthings.onReady (/opt/iobroker/node_modules/iobroker.smartthings/main.js:58:18)
smartthings.0
2025-12-22 22:09:59.098 error unhandled promise rejection: error:1C80006B:Provider routines::wrong final block length
smartthings.0
2025-12-22 22:09:59.098 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().Abwarten ob da noch was kommt....
-
Schade. Der Adapter scheint mit Node 20 nicht mehr zu funktionieren.
Exception-Code: ERR_OSSL_WRONG_FINAL_BLOCK_LENGTH: error:1C80006B:Provider routines::wrong final block length
smartthings.0
2025-12-22 22:09:59.099 error Error: error:1C80006B:Provider routines::wrong final block length at Decipheriv.final (node:internal/crypto/cipher:193:29) at Smartthings.login (/opt/iobroker/node_modules/iobroker.smartthings/main.js:135:32) at Smartthings.onReady (/opt/iobroker/node_modules/iobroker.smartthings/main.js:58:18)
smartthings.0
2025-12-22 22:09:59.098 error unhandled promise rejection: error:1C80006B:Provider routines::wrong final block length
smartthings.0
2025-12-22 22:09:59.098 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().Abwarten ob da noch was kommt....
@smarteppi sagte in Test Adapter Samsung Smartthings v.0.0.x:
Der Adapter scheint mit Node 20 nicht mehr zu funktionieren.
Losgelöst vom Problem solltest du ohnehin auf nodejs 22 wechseln.
-
@smarteppi sagte in Test Adapter Samsung Smartthings v.0.0.x:
Der Adapter scheint mit Node 20 nicht mehr zu funktionieren.
Losgelöst vom Problem solltest du ohnehin auf nodejs 22 wechseln.
@Thomas-Braun sagte in Test Adapter Samsung Smartthings v.0.0.x:
@smarteppi sagte in Test Adapter Samsung Smartthings v.0.0.x:
Der Adapter scheint mit Node 20 nicht mehr zu funktionieren.
Losgelöst vom Problem solltest du ohnehin auf nodejs 22 wechseln.
Ja werde ich.
Ich denke aber es wird das Problem nicht lösen.
ChatGTP sagt hier:
** *Gespeicherte Login-Daten / Token zu entschlüsseln
*- Nutzt dafür crypto.createDecipheriv
- Node.js ≥ 20 (OpenSSL 3) ist strenger
- Alte Verschlüsselung → 💥**
-
@Thomas-Braun sagte in Test Adapter Samsung Smartthings v.0.0.x:
@smarteppi sagte in Test Adapter Samsung Smartthings v.0.0.x:
Der Adapter scheint mit Node 20 nicht mehr zu funktionieren.
Losgelöst vom Problem solltest du ohnehin auf nodejs 22 wechseln.
Ja werde ich.
Ich denke aber es wird das Problem nicht lösen.
ChatGTP sagt hier:
** *Gespeicherte Login-Daten / Token zu entschlüsseln
*- Nutzt dafür crypto.createDecipheriv
- Node.js ≥ 20 (OpenSSL 3) ist strenger
- Alte Verschlüsselung → 💥**
@smarteppi sagte in Test Adapter Samsung Smartthings v.0.0.x:
Ich denke aber es wird das Problem nicht lösen.
Das habe ich auch nicht behauptet. Allerdings befindet sich nodejs@20 kurz vor EoL und 22 ist schon länger die Empfehlung für den ioBroker.
-
Wie zu erwarten hat sich mit nodejs22 nichts verbessert.
Please enter a valid codeUrl or Samsung Smartthings Token
smartthings.0
2025-12-27 18:11:20.419 error Please enter a Samsung Smartthings Code Url in the instance settings
smartthings.0
2025-12-27 18:11:20.418 info Start login via code url
smartthings.0
2025-12-27 18:11:20.400 info starting. Version 0.2.2 (non-npm: TA2k/ioBroker.smartthings#b055221990231cf4c8xxxxxxxxe94ff59b0fd75) in /opt/iobroker/node_modules/iobroker.smartthings, node: v22.21.0, js-controller: 7.0.7
smartthings.0
2025-12-27 18:11:16.483 info terminating
smartthings.0
2025-12-27 18:11:16.035 warn Terminated (UNCAUGHT_EXCEPTION): Without reason
smartthings.0
2025-12-27 18:11:16.034 info terminating
smartthings.0
2025-12-27 18:11:16.033 info Got terminate signal TERMINATE_YOURSELF
smartthings.0
2025-12-27 18:11:15.980 error Exception-Code: ERR_OSSL_WRONG_FINAL_BLOCK_LENGTH: error:1C80006B:Provider routines::wrong final block length
smartthings.0
2025-12-27 18:11:15.980 error Error: error:1C80006B:Provider routines::wrong final block length at Decipheriv.final (node:internal/crypto/cipher:184:29) at Smartthings.login (/opt/iobroker/node_modules/iobroker.smartthings/main.js:135:32) at Smartthings.onReady (/opt/iobroker/node_modules/iobroker.smartthings/main.js:58:18)
smartthings.0
2025-12-27 18:11:15.980 error unhandled promise rejection: error:1C80006B:Provider routines::wrong final block length
smartthings.0
2025-12-27 18:11:15.979 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
smartthings.0
2025-12-27 18:11:15.977 info Start login via code url
smartthings.0
2025-12-27 18:11:15.956 info starting. Version 0.2.2 (non-npm: TA2k/ioBroker.smartthings#b05522199023xxxxxxxxxbee94ff59b0fd75) in /opt/iobroker/node_modules/iobroker.smartthings, node: v22.21.0, js-controller: 7.0.7 -
Das sagt KI:
Was genau schiefgeht (technisch korrekt)Node 20+ / 22 nutzt OpenSSL 3.x
Der SmartThings-Adapter:
verschlüsselt Tokens legacy-kompatibel
entschlüsselt sie mit createDecipheriv
OpenSSL 3 ist strenger bei:
Padding
Blocklängen
Ergebnis:
wrong final block length
KI schlägt downgrade nodejs auf 18 vor - mach ich natürlich nicht
Alternative:
Node 22 behalten (nicht empfohlen, aber möglich)Nur mit Legacy-Provider:
export NODE_OPTIONS=--openssl-legacy-provider
iobroker restartIst das zu empfehlen?
-
Das sagt KI:
Was genau schiefgeht (technisch korrekt)Node 20+ / 22 nutzt OpenSSL 3.x
Der SmartThings-Adapter:
verschlüsselt Tokens legacy-kompatibel
entschlüsselt sie mit createDecipheriv
OpenSSL 3 ist strenger bei:
Padding
Blocklängen
Ergebnis:
wrong final block length
KI schlägt downgrade nodejs auf 18 vor - mach ich natürlich nicht
Alternative:
Node 22 behalten (nicht empfohlen, aber möglich)Nur mit Legacy-Provider:
export NODE_OPTIONS=--openssl-legacy-provider
iobroker restartIst das zu empfehlen?
Dann schau in die Issues des Adapters und leg entsprechend eins an, falls es noch nichts passendes gibt.
-
Dann schau in die Issues des Adapters und leg entsprechend eins an, falls es noch nichts passendes gibt.
@Thomas-Braun Leider muss ich sagen das mir dazu die Kenntnisse fehlen. Ich hab auch kein Github Konto.
Ich bin ein User der sich da so durchkämpft. Wenn der Adapter nicht mehr weiterentwickelt wird ist das zu akzeptieren. Danke trotzdem Danke! -
Das sagt KI:
Was genau schiefgeht (technisch korrekt)Node 20+ / 22 nutzt OpenSSL 3.x
Der SmartThings-Adapter:
verschlüsselt Tokens legacy-kompatibel
entschlüsselt sie mit createDecipheriv
OpenSSL 3 ist strenger bei:
Padding
Blocklängen
Ergebnis:
wrong final block length
KI schlägt downgrade nodejs auf 18 vor - mach ich natürlich nicht
Alternative:
Node 22 behalten (nicht empfohlen, aber möglich)Nur mit Legacy-Provider:
export NODE_OPTIONS=--openssl-legacy-provider
iobroker restartIst das zu empfehlen?
@smarteppi ich habe das problem mit node 22.21.1 auf MacOS nicht. welches OS verwendest du
=== Node.js and OpenSSL Version Information === Node.js version: v22.21.1 Node.js platform: darwin Node.js arch: arm64 OpenSSL version: 3.6.0 === All Process Versions === node: 22.21.1 acorn: 8.15.0 ada: 2.9.2 amaro: 1.1.4 ares: 1.34.5 brotli: 1.2.0 cjs_module_lexer: 2.1.0 cldr: 48.0 icu: 78.1 llhttp: 9.3.0 modules: 127 napi: 10 nbytes: 0.1.1 ncrypto: 0.0.1 nghttp2: 1.68.0 openssl: 3.6.0 simdjson: 4.2.2 simdutf: 7.7.0 sqlite: 3.51.0 tz: 2025b undici: 6.22.0 unicode: 17.0 uv: 1.51.0 uvwasi: 0.0.23 v8: 12.4.254.21-node.33 zlib: 1.2.12 zstd: 1.5.7 === Crypto Capabilities === Available ciphers: 130 Has aes-128-cbc: YES === OpenSSL Constants Available === Crypto constants defined: YESDu kannst es auch selber überprüfen einfach in test.js speichern und dann ausführen
node test.jsconst crypto = require('crypto'); console.log('=== Node.js and OpenSSL Version Information ===\n'); console.log('Node.js version:', process.version); console.log('Node.js platform:', process.platform); console.log('Node.js arch:', process.arch); console.log(''); // Check OpenSSL version console.log('OpenSSL version:', process.versions.openssl); console.log(''); // Get all crypto-related versions console.log('=== All Process Versions ==='); Object.keys(process.versions).forEach(key => { console.log(`${key}: ${process.versions[key]}`); }); console.log(''); // Check available crypto features console.log('=== Crypto Capabilities ==='); console.log('Available ciphers:', crypto.getCiphers().length); console.log('Has aes-128-cbc:', crypto.getCiphers().includes('aes-128-cbc') ? 'YES' : 'NO'); console.log(''); // Try to get more detailed OpenSSL info try { const { constants } = crypto; console.log('=== OpenSSL Constants Available ==='); console.log('Crypto constants defined:', Object.keys(constants).length > 0 ? 'YES' : 'NO'); } catch (e) { console.log('Could not access crypto constants:', e.message); } -
@smarteppi ich habe das problem mit node 22.21.1 auf MacOS nicht. welches OS verwendest du
=== Node.js and OpenSSL Version Information === Node.js version: v22.21.1 Node.js platform: darwin Node.js arch: arm64 OpenSSL version: 3.6.0 === All Process Versions === node: 22.21.1 acorn: 8.15.0 ada: 2.9.2 amaro: 1.1.4 ares: 1.34.5 brotli: 1.2.0 cjs_module_lexer: 2.1.0 cldr: 48.0 icu: 78.1 llhttp: 9.3.0 modules: 127 napi: 10 nbytes: 0.1.1 ncrypto: 0.0.1 nghttp2: 1.68.0 openssl: 3.6.0 simdjson: 4.2.2 simdutf: 7.7.0 sqlite: 3.51.0 tz: 2025b undici: 6.22.0 unicode: 17.0 uv: 1.51.0 uvwasi: 0.0.23 v8: 12.4.254.21-node.33 zlib: 1.2.12 zstd: 1.5.7 === Crypto Capabilities === Available ciphers: 130 Has aes-128-cbc: YES === OpenSSL Constants Available === Crypto constants defined: YESDu kannst es auch selber überprüfen einfach in test.js speichern und dann ausführen
node test.jsconst crypto = require('crypto'); console.log('=== Node.js and OpenSSL Version Information ===\n'); console.log('Node.js version:', process.version); console.log('Node.js platform:', process.platform); console.log('Node.js arch:', process.arch); console.log(''); // Check OpenSSL version console.log('OpenSSL version:', process.versions.openssl); console.log(''); // Get all crypto-related versions console.log('=== All Process Versions ==='); Object.keys(process.versions).forEach(key => { console.log(`${key}: ${process.versions[key]}`); }); console.log(''); // Check available crypto features console.log('=== Crypto Capabilities ==='); console.log('Available ciphers:', crypto.getCiphers().length); console.log('Has aes-128-cbc:', crypto.getCiphers().includes('aes-128-cbc') ? 'YES' : 'NO'); console.log(''); // Try to get more detailed OpenSSL info try { const { constants } = crypto; console.log('=== OpenSSL Constants Available ==='); console.log('Crypto constants defined:', Object.keys(constants).length > 0 ? 'YES' : 'NO'); } catch (e) { console.log('Could not access crypto constants:', e.message); }