UNPKG

tsvesync

Version:

A TypeScript library for interacting with VeSync smart home devices

106 lines (105 loc) 2.69 kB
/** * VeSync Bulb Base Class */ import { VeSyncBaseDevice } from './vesyncBaseDevice'; import { VeSync } from './vesync'; interface RgbValues { red: number; green: number; blue: number; } interface BulbConfig { [key: string]: { module: string; features: string[]; colorModel: string; }; } export declare const bulbConfig: BulbConfig; /** * VeSync Bulb Base Class */ export declare abstract class VeSyncBulb extends VeSyncBaseDevice { protected brightness: number; protected colorTemp: number; protected colorValue: number; protected colorHue: number; protected colorSaturation: number; protected colorMode: string; protected features: string[]; protected rgbValues: RgbValues; constructor(details: Record<string, any>, manager: VeSync); hasFeature(feature: string): boolean; getColorModel(): string; getBrightness(): number; /** * Get bulb details */ getDetails(): Promise<Boolean>; /** * Update bulb details */ update(): Promise<Boolean>; /** * Turn bulb on */ turnOn(): Promise<boolean>; /** * Turn bulb off */ turnOff(): Promise<boolean>; /** * Set bulb brightness */ setBrightness(brightness: number): Promise<boolean>; /** * Get bulb brightness */ /** * Get color temperature in Kelvin */ getColorTempKelvin(): number; /** * Get color temperature in percent */ getColorTempPercent(): number; /** * Get color hue */ getColorHue(): number; /** * Get color saturation */ getColorSaturation(): number; /** * Get color value */ getColorValue(): number; /** * Get RGB values */ getRGBValues(): { red: number; green: number; blue: number; }; /** * Set color temperature wrapper to maintain compatibility with consumers */ setColorTemperature(colorTemp: number): Promise<boolean>; /** * Set color via hue/saturation/value when supported */ setColor(hue: number, saturation: number, value?: number): Promise<boolean>; /** * Process standard bypass (v1) detail responses shared by multiple bulbs */ protected processStandardBypassDetails(response: any, statusCode: number): boolean; /** * Set color temperature - Abstract method to be implemented by subclasses */ abstract setColorTemp(colorTemp: number): Promise<boolean>; protected static clamp(value: number, min: number, max: number): number; protected static hsvToRgb(h: number, s: number, v: number): RgbValues; } export {};