@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
JavaScript
/* 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