From d126baa8c8668e93dd58d6a37b9163e9febd8dff Mon Sep 17 00:00:00 2001 From: Jan Starzak Date: Mon, 27 Apr 2026 10:20:32 +0200 Subject: [PATCH 1/2] feat(mos-gateway): move synchronous updateDevices out of init --- packages/mos-gateway/src/mosHandler.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/packages/mos-gateway/src/mosHandler.ts b/packages/mos-gateway/src/mosHandler.ts index c6337a072b2..7964b2886c4 100644 --- a/packages/mos-gateway/src/mosHandler.ts +++ b/packages/mos-gateway/src/mosHandler.ts @@ -80,9 +80,9 @@ export class MosHandler { private _logger: Winston.Logger private _disposed = false private _settings?: MosGatewayConfig - private _coreHandler: CoreHandler | undefined + private _coreHandler!: CoreHandler private _observers: Array> = [] - private _triggerupdateDevicesTimeout: any = null + private _triggerUpdateDevicesTimeout: any = null private mosTypes: MosTypes public static async create( @@ -118,9 +118,6 @@ export class MosHandler { } } */ - if (!coreHandler) { - throw Error('coreHandler is undefined!') - } if (!coreHandler.core) { throw Error('coreHandler.core is undefined!') @@ -132,15 +129,14 @@ export class MosHandler { this.mosTypes = getMosTypes(this.strict) - await this._updateDevices() - - if (!this._coreHandler) throw Error('_coreHandler is undefined!') - this._coreHandler.onConnected(() => { + coreHandler.onConnected(() => { // This is called whenever a connection to Core has been (re-)established this.setupObservers() this.sendStatusOfAllMosDevices() }) this.setupObservers() + + this.triggerUpdateDevices() } async dispose(): Promise { this._disposed = true @@ -208,10 +204,13 @@ export class MosHandler { this._logger.debug('test log debug') } } - if (this._triggerupdateDevicesTimeout) { - clearTimeout(this._triggerupdateDevicesTimeout) + this.triggerUpdateDevices() + } + private triggerUpdateDevices() { + if (this._triggerUpdateDevicesTimeout) { + clearTimeout(this._triggerUpdateDevicesTimeout) } - this._triggerupdateDevicesTimeout = setTimeout(() => { + this._triggerUpdateDevicesTimeout = setTimeout(() => { this._updateDevices().catch((e) => { this._logger.error(stringifyError(e)) }) From 474e827736b31a669e064d1f2525f9df07e9d6c2 Mon Sep 17 00:00:00 2001 From: Jan Starzak Date: Mon, 1 Jun 2026 18:26:02 +0200 Subject: [PATCH 2/2] fix: ensure _initMosConnections() is run before setupObservers() during MosHandler.init() --- packages/mos-gateway/src/mosHandler.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/mos-gateway/src/mosHandler.ts b/packages/mos-gateway/src/mosHandler.ts index b9d1e4d8345..8055afd3421 100644 --- a/packages/mos-gateway/src/mosHandler.ts +++ b/packages/mos-gateway/src/mosHandler.ts @@ -130,6 +130,8 @@ export class MosHandler { this.mosTypes = getMosTypes(this.strict) + await this._initMosConnection() + coreHandler.onConnected(() => { // This is called whenever a connection to Core has been (re-)established this.setupObservers()