From 048d1a2eddff17de227d156c2a47f3d74ab557bc Mon Sep 17 00:00:00 2001 From: GermanBluefox Date: Mon, 4 Sep 2023 17:10:51 +0200 Subject: [PATCH 1/2] If no configuration found, or adapter was not properly installed, check it. --- packages/adapter/src/lib/adapter/adapter.ts | 7 ++++--- packages/common/src/lib/common/tools.ts | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/adapter/src/lib/adapter/adapter.ts b/packages/adapter/src/lib/adapter/adapter.ts index 00cb9e1956..10fe32dbfe 100644 --- a/packages/adapter/src/lib/adapter/adapter.ts +++ b/packages/adapter/src/lib/adapter/adapter.ts @@ -11884,7 +11884,7 @@ export class AdapterClass extends EventEmitter { // give it a chance to handle the error itself instead of restarting it if (typeof this._options.error === 'function') { try { - // if error handler in the adapter returned exactly true, + // if the error handler in the adapter returned exactly true, // we expect the error to be handled and do nothing more const wasHandled = this._options.error(err); if (wasHandled === true) { @@ -12178,8 +12178,9 @@ export class AdapterClass extends EventEmitter { }; this.pluginHandler = new PluginHandler(pluginSettings); - this.pluginHandler.addPlugins(this.ioPack.common.plugins, [this.adapterDir, __dirname]); // first resolve from adapter directory, else from js-controller - + if (this.ioPack?.common) { + this.pluginHandler.addPlugins(this.ioPack.common.plugins, [this.adapterDir, __dirname]); // first resolve from adapter directory, else from js-controller + } // finally init _initDBs(); } diff --git a/packages/common/src/lib/common/tools.ts b/packages/common/src/lib/common/tools.ts index e0cd7c4757..43bb8f854c 100644 --- a/packages/common/src/lib/common/tools.ts +++ b/packages/common/src/lib/common/tools.ts @@ -1525,7 +1525,7 @@ export async function sendDiagInfo(obj: Record): Promise { */ export function getAdapterDir(adapter: string): string | null { // snip off 'iobroker.' - if (adapter.toLowerCase().startsWith(appName.toLowerCase() + '.')) { + if (adapter.toLowerCase().startsWith(`${appName.toLowerCase()}.`)) { adapter = adapter.substring(appName.length + 1); } // snip off instance id From 6a06d6c01e694cb40ee21b3b96f4bacf388855fb Mon Sep 17 00:00:00 2001 From: foxriver76 Date: Mon, 18 Sep 2023 11:17:59 +0200 Subject: [PATCH 2/2] do not crash hard if plugins could not be added --- packages/adapter/src/lib/adapter/adapter.ts | 4 +++- packages/common/src/lib/common/tools.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/adapter/src/lib/adapter/adapter.ts b/packages/adapter/src/lib/adapter/adapter.ts index 814665af33..4a0f3e5432 100644 --- a/packages/adapter/src/lib/adapter/adapter.ts +++ b/packages/adapter/src/lib/adapter/adapter.ts @@ -12178,8 +12178,10 @@ export class AdapterClass extends EventEmitter { }; this.pluginHandler = new PluginHandler(pluginSettings); - if (this.ioPack?.common) { + try { this.pluginHandler.addPlugins(this.ioPack.common.plugins, [this.adapterDir, __dirname]); // first resolve from adapter directory, else from js-controller + } catch (e) { + this._logger.error(`Could not add plugins: ${e.message}`); } // finally init _initDBs(); diff --git a/packages/common/src/lib/common/tools.ts b/packages/common/src/lib/common/tools.ts index 43bb8f854c..f35656e958 100644 --- a/packages/common/src/lib/common/tools.ts +++ b/packages/common/src/lib/common/tools.ts @@ -1525,7 +1525,7 @@ export async function sendDiagInfo(obj: Record): Promise { */ export function getAdapterDir(adapter: string): string | null { // snip off 'iobroker.' - if (adapter.toLowerCase().startsWith(`${appName.toLowerCase()}.`)) { + if (adapter.toLowerCase().startsWith(`${appNameLowerCase}.`)) { adapter = adapter.substring(appName.length + 1); } // snip off instance id