Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import fs from 'node:fs' import { HomebridgePluginUiServer } from '@homebridge/plugin-ui-utils' 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 = 'homebridge-switchbot' 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: any[] = JSON.parse(fs.readFileSync(accFile, 'utf8')) cachedAccessories.forEach((accessory: any) => { // Check the accessory is from this plugin if (accessory.plugin === plugin) { // Add the cached accessory to the array devicesToReturn.push(accessory.accessory as never) } }) } // Return the array return devicesToReturn } catch { // Just return an empty accessory list in case of any errors return [] } }) this.ready() } } function startPluginUiServer(): PluginUiServer { return new PluginUiServer() } startPluginUiServer() |