tsvesync
Version:
A TypeScript library for interacting with VeSync smart home devices
117 lines (116 loc) • 3.12 kB
TypeScript
/**
* VeSync Fan Classes
*/
import { VeSyncBaseDevice } from './vesyncBaseDevice';
import { VeSync } from './vesync';
interface FanConfig {
[key: string]: {
module: 'VeSyncAirBypass' | 'VeSyncHumidifier' | 'VeSyncWarmHumidifier' | 'VeSyncTowerFan' | 'VeSyncAirBaseV2' | 'VeSyncSuperior6000S' | 'VeSyncHumid1000S' | 'VeSyncHumid200S' | 'VeSyncAir131';
features: string[];
levels?: number[];
};
}
export declare const fanConfig: FanConfig;
/**
* Base class for VeSync Fans
*/
export declare abstract class VeSyncFan extends VeSyncBaseDevice {
protected details: {
mode?: string;
speed?: number;
filter_life?: number;
screen_status?: 'on' | 'off';
child_lock?: boolean;
air_quality?: string;
humidity?: number;
mist_level?: number;
warm_level?: number;
warm_enabled?: boolean;
[key: string]: any;
};
protected mode_dict: Record<string, any>;
protected speed_dict: Record<string, any>;
protected _timer: number | {
duration: number;
action: string;
} | null;
protected config: {
module: 'VeSyncAirBypass' | 'VeSyncHumidifier' | 'VeSyncWarmHumidifier' | 'VeSyncTowerFan' | 'VeSyncAirBaseV2' | 'VeSyncSuperior6000S' | 'VeSyncHumid1000S' | 'VeSyncHumid200S' | 'VeSyncAir131';
features: string[];
levels?: number[];
};
constructor(details: Record<string, any>, manager: VeSync);
/**
* Check if feature is supported
*/
hasFeature(feature: string): boolean;
/**
* Check if feature is supported in current mode
*/
isFeatureSupportedInCurrentMode(feature: string): boolean;
/**
* Get maximum fan speed level
*/
getMaxFanSpeed(): number;
/**
* Get current mode
*/
get mode(): string;
/**
* Get current speed
*/
get speed(): number;
/**
* Get filter life percentage
*/
get filterLife(): number;
/**
* Get screen status
*/
get screenStatus(): 'on' | 'off';
/**
* Get child lock status
*/
get childLock(): boolean;
/**
* Get air quality (if supported)
*/
get airQuality(): string;
/**
* Get humidity level (if supported)
*/
get humidity(): number;
/**
* Get mist level (if supported)
*/
get mistLevel(): number;
/**
* Get warm level (if supported)
*/
get warmLevel(): number;
/**
* Get timer status
*/
get timer(): number | {
duration: number;
action: string;
} | null;
set timer(value: number | {
duration: number;
action: string;
} | null);
/**
* Return formatted device info to stdout
*/
display(): void;
/**
* Return JSON details for fan
*/
displayJSON(): string;
abstract getDetails(): Promise<Boolean>;
abstract turnOn(): Promise<boolean>;
abstract turnOff(): Promise<boolean>;
abstract changeFanSpeed(speed: number): Promise<boolean>;
abstract setMode(mode: string): Promise<boolean>;
}
export {};