homebridge-plugin-waveshare-relay
Version:
Homebridge plugin exposing Waveshare Raspberry Pi Relay Board as a series of switches
36 lines • 1.32 kB
JavaScript
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