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)) })