UNPKG

homebridge-mhi-wfrac

Version:

A homebridge plugin for Mitshubishi WF-RAC aircos (using the Smart M-Air app)

113 lines (112 loc) 3.37 kB
import { Logging } from 'homebridge'; export declare class DeviceStatus { static outdoorTempList: number[]; static indoorTempList: number[]; static OPERATION_MODES: { 0: 'auto'; 1: 'cool'; 2: 'heat'; 3: 'fan'; 4: 'dry'; }; static AIRFLOW: { 0: 'auto'; 1: 'lowest'; 2: 'low'; 3: 'high'; 4: 'highest'; }; static HORIZONTAL_POSITIONS: { 0: 'auto'; 1: 'left-left'; 2: 'left-center'; 3: 'center-center'; 4: 'center-right'; 5: 'right-right'; 6: 'left-right'; 7: 'right-left'; }; static VERTICAL_POSITIONS: { 0: 'auto'; 1: 'highest'; 2: 'middle'; 3: 'normal'; 4: 'lowest'; }; airFlow: number; coolHotJudge: boolean; electric: number; entrust: boolean; errorCode: string; indoorTemp: number | null; isAutoHeating: boolean; isSelfCleanOperation: boolean; isSelfCleanReset: boolean; isVacantProperty: number; modelNo: number; operation: boolean; operationMode: number | null; outdoorTemp: number | null; presetTemp: number | null; windDirectionLR: number; windDirectionUD: number; constructor(); static fromBase64(base64: string): DeviceStatus; private static crc16ccitt; toBase64(): string; commandToByte(): number[]; static receiveToBytes(status: DeviceStatus): number[]; } type RequestContents = Record<string, unknown>; interface DeviceResponse { command: string; apiVer: string; operatorId: string; deviceId: string; timestamp: number; result: number; contents: any; } interface DeviceInfoContents { airconId: string; macAddress: string; apMode: number; } export declare class DeviceClient { private static readonly MIN_REQUEST_GAP_MS; private readonly ipAddress; private readonly port; private readonly operatorId; private readonly deviceId; private airconId; private readonly log; private readonly ignoreConnectionErrors; status: DeviceStatus; private commandQueue; isCommandInProgress: boolean; private nextRequestAfter; private useHttps; private readonly httpsAgent; constructor(ipAddress: string, port: number, operatorId: string, deviceId: string, airconId: string, log: Logging, ignoreConnectionErrors?: boolean); isConnectionError(error: Error): boolean; private enqueue; getDeviceStatus(): Promise<DeviceStatus>; getDeviceInfo(): Promise<DeviceInfoContents>; getAirconId(): string; updateAccountInfo(timezone: string): Promise<number>; deleteAccountInfo(): Promise<number>; setAirflow(airFlow: number): Promise<DeviceStatus>; setOperationMode(operationMode: number): Promise<DeviceStatus>; setOperation(operation: boolean): Promise<DeviceStatus>; setPresetTemp(presetTemp: number): Promise<DeviceStatus>; setAwayMode(awayMode: boolean): Promise<DeviceStatus>; setDeviceStatus(status: DeviceStatus): Promise<DeviceStatus>; private sleep; private waitForNextRequestSlot; private sendRequest; private getBaseUrl; private getAxiosConfig; private detectProtocol; call(command: string, contents?: RequestContents | null, retries?: number): Promise<DeviceResponse>; } export {};