From 2b1643bb193c6edefc85d3d91ca32d67e801aea4 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 b2ac62abac..b9d1e4d834 100644 --- a/packages/mos-gateway/src/mosHandler.ts +++ b/packages/mos-gateway/src/mosHandler.ts @@ -81,9 +81,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( @@ -119,9 +119,6 @@ export class MosHandler { } } */ - if (!coreHandler) { - throw Error('coreHandler is undefined!') - } if (!coreHandler.core) { throw Error('coreHandler.core is undefined!') @@ -133,15 +130,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 @@ -209,10 +205,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 594ed23e95a699fb6fe37f2d7219ffc2d48c5309 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 b9d1e4d834..8055afd342 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()