UNPKG

matterbridge-daikin-ac

Version:
61 lines 2.35 kB
import { MatterbridgeDynamicPlatform } from 'matterbridge'; import { GIT_BRANCH, GIT_COMMIT } from './gitInfo.js'; import { DaikinMatterDevice } from './DaikinMatterDevice.js'; export class DaikinAcPlatform extends MatterbridgeDynamicPlatform { debugEnabled; isPluginConfigured = false; isConfigValid = false; daikinIPs = []; devices = []; constructor(matterbridge, log, config) { super(matterbridge, log, config); this.log.info('Initializing Daikin AC platform'); this.log.info(`Code build from branch '${GIT_BRANCH}', commit '${GIT_COMMIT}'`); this.debugEnabled = config.debug; if (config.daikinIPs) this.daikinIPs = config.daikinIPs; this.isConfigValid = true; } async onStart(reason) { if (!this.isConfigValid) { throw new Error('Plugin not configured yet, configure first, then restart.'); } this.log.info(`Starting Daikin AC dynamic platform v${this.version}: ` + reason); await this.createDevices(); await this.ready; await this.clearSelect(); } async onConfigure() { await super.onConfigure(); this.log.info(`Running onConfigure`); await this.restoreState(); this.isPluginConfigured = true; } async createDevices() { for (const daikinIP of this.daikinIPs) { const parts = daikinIP.split(','); const ip = parts[0]; let options = {}; if (parts.length > 1 && parts[1] === 'useGetToPost') { options = { useGetToPost: true }; } this.log.info(`Creating Daikin AC device at IP: ${ip} with options: ${JSON.stringify(options)}`); const device = new DaikinMatterDevice(this, ip, options); await device.connect(); await device.createEndpoint(); this.devices.push(device); device.registerWithPlatform(); } } async restoreState() { this.log.info('Restoring state for Daikin AC platform'); for (const device of this.devices) { await device.restoreState(); } } async onShutdown(reason) { await super.onShutdown(reason); this.log.info('Shutting down Daikin AC platform: ' + reason); } } //# sourceMappingURL=platform.js.map