UNPKG

homebridge-plugin-waveshare-relay

Version:

Homebridge plugin exposing Waveshare Raspberry Pi Relay Board as a series of switches

36 lines 1.32 kB
import { HomebridgePluginUiServer, RequestError } from '@homebridge/plugin-ui-utils'; import { WaveshareRelayApi } from '../services/waveshare-relay-api.js'; class WaveshareRelayPluginUiServer extends HomebridgePluginUiServer { constructor() { // super() MUST be called first super(); // Handle request for the /server-details route this.onRequest('/server-details', this.getServerDetails.bind(this)); // This MUST be called when you are ready to accept requests this.ready(); } async getServerDetails({ urls }) { const results = []; try { // Get relay details from each server for await (const url of urls) { const api = new WaveshareRelayApi(url); const relays = await api.getRelays(console); results.push({ url, relays }); } return results; } catch (e) { console.error(e); throw new RequestError('Failed to get urls', this.getErrorMessage(e)); } } getErrorMessage(error) { if (error instanceof Error) { return error.message; } return String(error); } } export { WaveshareRelayPluginUiServer }; //# sourceMappingURL=waveshare-relay-plugin-ui-server.js.map