homebridge-mhi-wfrac
Version:
A homebridge plugin for Mitshubishi WF-RAC aircos (using the Smart M-Air app)
113 lines (112 loc) • 3.12 kB
TypeScript
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[];
}
interface DeviceStatusRequest {
airconId: string;
airconStat: string;
}
interface DeviceStatusResponse {
command: string;
apiVer: string;
operatorId: string;
deviceId: string;
timestamp: number;
result: number;
contents: {
airconId: string;
airconStat: string;
logStat: number;
updatedBy: string;
expires: number;
ledStat: number;
autoHeating: number;
highTemp: string;
lowTemp: string;
firmType: string;
wireless: {
firmVer: string;
};
mcu: {
firmVer: string;
};
timezone: string;
remoteList: string[];
numOfAccount: number;
};
}
export declare class DeviceClient {
private readonly ipAddress;
private readonly port;
private readonly operatorId;
private readonly deviceId;
private readonly log;
private readonly ignoreConnectionErrors;
status: DeviceStatus;
constructor(ipAddress: string, port: number, operatorId: string, deviceId: string, log: Logging, ignoreConnectionErrors?: boolean);
private isConnectionError;
getDeviceStatus(): Promise<DeviceStatus>;
setAirflow(airFlow: number): DeviceStatus;
setOperationMode(operationMode: number): DeviceStatus;
setOperation(operation: boolean): DeviceStatus;
setPresetTemp(presetTemp: number): DeviceStatus;
setAwayMode(awayMode: boolean): DeviceStatus;
setDeviceStatus(status: DeviceStatus): Promise<DeviceStatus>;
call(command: string, contents?: DeviceStatusRequest | null): Promise<DeviceStatusResponse>;
}
export {};