UNPKG

@homebridge-plugins/homebridge-air

Version:

The AirNow plugin allows you to monitor the current AirQuality for your Zip Code from HomeKit and Siri.

48 lines 1.96 kB
/* Copyright(C) 2021-2024, donavanbecker (https://github.com/donavanbecker). All rights reserved. * * server.ts: @homebridge-plugins/homebridge-air. */ import fs from 'node:fs'; import { HomebridgePluginUiServer } from '@homebridge/plugin-ui-utils'; import { PLUGIN_NAME } from '../settings.js'; class PluginUiServer extends HomebridgePluginUiServer { constructor() { super(); /* A native method getCachedAccessories() was introduced in config-ui-x v4.37.0 The following is for users who have a lower version of config-ui-x */ this.onRequest('getCachedAccessories', () => { try { const plugin = PLUGIN_NAME ?? '@homebridge-plugins/homebridge-air'; const devicesToReturn = []; // The path and file of the cached accessories const accFile = `${this.homebridgeStoragePath}/accessories/cachedAccessories`; // Check the file exists if (fs.existsSync(accFile)) { // read the cached accessories file const cachedAccessories = JSON.parse(fs.readFileSync(accFile, 'utf8')); cachedAccessories.forEach((accessory) => { // Check the accessory is from this plugin if (accessory.plugin === plugin) { // Add the cached accessory to the array devicesToReturn.push(accessory.accessory); } }); } // Return the array return devicesToReturn; } catch { // Just return an empty accessory list in case of any errors return []; } }); this.ready(); } } function startPluginUiServer() { return new PluginUiServer(); } startPluginUiServer(); //# sourceMappingURL=server.js.map