homebridge-plugin-waveshare-relay
Version:
Homebridge plugin exposing Waveshare Raspberry Pi Relay Board as a series of switches
74 lines • 2.82 kB
TypeScript
export interface ILogger {
info(message: string, ...parameters: unknown[]): void;
warn(message: string, ...parameters: unknown[]): void;
error(message: string, ...parameters: unknown[]): void;
debug(message: string, ...parameters: unknown[]): void;
}
export interface IPlatformConfig {
name: string;
[key: string]: unknown;
}
type IPlatformAccessoryConstructor = new (displayName: string, uuid: string, category?: ECategories) => IPlatformAccessory;
export interface IPlatformAccessory {
displayName: string;
UUID: string;
context: unknown;
getService: (service: string) => IService;
addService: (service: string) => IService;
}
export interface IAPI {
on(event: 'didFinishLaunching' | 'shutdown', listener: () => void): this;
registerPlatform(platformName: string, constructor: unknown): void;
updatePlatformAccessories(accessories: IPlatformAccessory[]): void;
registerPlatformAccessories(plaformName: string, pluginName: string, accessories: IPlatformAccessory[]): void;
unregisterPlatformAccessories(plaformName: string, pluginName: string, accessories: IPlatformAccessory[]): void;
platformAccessory: IPlatformAccessoryConstructor;
hap: {
Service: IService;
Characteristic: ICharacteristic;
Categories: typeof ECategories;
uuid: {
generate: (id: string) => '';
};
[key: string]: unknown;
};
}
export interface IService {
new (uuid: string, name?: string, subtype?: string): unknown;
getCharacteristic(characteristic: ICharacteristic): ICharacteristic;
setCharacteristic(characteristic: ICharacteristic, value: string): ICharacteristic;
Lightbulb: string;
AccessoryInformation: string;
}
export interface ILightbulb extends IService {
new (name: string, subtype?: string): IService;
}
export interface ICharacteristic {
new (uuid: string): unknown;
onGet(handler: () => Promise<boolean>): ICharacteristic;
onSet(handler: (value: boolean) => Promise<void>): ICharacteristic;
setCharacteristic(characteristic: ICharacteristic, value: string): ICharacteristic;
updateValue(value: unknown): ICharacteristic;
On: ICharacteristic;
Manufacturer: ICharacteristic;
Model: ICharacteristic;
SerialNumber: ICharacteristic;
Name: ICharacteristic;
Formats: Record<string, unknown>;
Units: Record<string, unknown>;
Perms: Record<string, unknown>;
}
export interface IDynamicPlatformPlugin {
configureAccessory(accessory: unknown): void;
}
/**
* Known category values. Category is a hint to iOS clients about what "type" of Accessory this represents, for UI only.
*
* @group Accessory
*/
export declare enum ECategories {
LIGHTBULB = 5,
SWITCH = 8
}
export {};
//# sourceMappingURL=homebridge-types.d.ts.map