import { AsyncMqttClient } from 'async-mqtt'; import { DeferredMessage, PromiseBasedQueue } from './promise-queue'; import { ConsoleLike, DeviceData, HomeIndex } from './types'; export declare const ROOT_ID = "GEN#17#13#1"; export declare enum REQUEST_TYPE { STATUS = 0, ACTION = 1, SUBSCRIBE = 3, LOGIN = 5, PING = 7, READ_PARAMS = 8, GET_DATETIME = 9, ANNOUNCE = 13 } export declare enum REQUEST_SUB_TYPE { CREATE_OBJ = 0, UPDATE_OBJ = 1, DELETE_OBJ = 2, SET_ACTION_OBJ = 3, GET_TEMPO_OBJ = 4, SUBSCRIBE_RT = 5, UNSUBSCRIBE_RT = 6, GET_CONF_PARAM_GROUP = 23, NONE = -1 } export declare enum ACTION_TYPE { SET = 0, CLIMA_MODE = 1, CLIMA_SET_POINT = 2, SWITCH_SEASON = 4, SWITCH_CLIMA_MODE = 13, UMI_SETPOINT = 19, SWITCH_UMI_MODE = 23, SET_BLIND_POSITION = 52 } export interface MqttIncomingMessage { req_type: REQUEST_TYPE; seq_id: number; req_result: number; req_sub_type: number; agent_id?: number; agent_type: number; sessiontoken?: string; uid?: string; param_type?: number; obj_id?: string; out_data?: any[]; params_data?: Param[]; message?: string; } export declare enum ThermoSeason { SUMMER = "0", WINTER = "1" } export declare enum ClimaMode { NONE = "0", AUTO = "1", MANUAL = "2", SEMI_AUTO = "3", SEMI_MAN = "4", OFF_AUTO = "5", OFF_MANUAL = "6" } export declare enum ClimaOnOff { OFF_THERMO = 0, ON_THERMO = 1, OFF_HUMI = 2, ON_HUMI = 3, OFF = 4, ON = 5 } export declare enum ObjectStatus { NONE = -1, OFF = 0, ON = 1, IDLE = 2, ON_DEHUMIDIFY = 4, UP = 7, DOWN = 8, OPEN = 9, CLOSE = 10, ON_COOLING = 11 } export interface MqttMessage { req_type: REQUEST_TYPE; seq_id: number; req_sub_type: number; agent_id?: number; agent_type?: number; user_name?: string; password?: string; sessiontoken?: string; uid?: string; param_type?: number; obj_id?: string; obj_type?: number; detail_level?: number; act_params?: number[]; act_type?: number; } interface Param { param_name: string; param_value: string; } export interface ClientConfig { host?: string; port?: number; username?: string; password?: string; } export interface HUBClientConfig extends ClientConfig { hub_username?: string; hub_password?: string; clientId?: string; } export interface ComelitDevice { modelID: string; model?: string; description: string; ip: string; macAddress: string; hwID: string; appID: string; appVersion: string; systemID: string; } export declare const DEFAULT_SEND_DELAY = 500; export declare class ComelitClient extends PromiseBasedQueue { private readonly props; private homeIndex; private username; private password; private txTopic; private rxTopic; private clientId; private readonly onUpdate; private readonly logger; constructor(onUpdate?: (objId: string, device: DeviceData) => void, log?: ConsoleLike); private static evalResponse; consume(response: MqttIncomingMessage): boolean; findInQueue(message: MqttIncomingMessage): DeferredMessage; isLogged(): boolean; scan(): Promise; getMACAddress(config: HUBClientConfig): Promise; init(config: HUBClientConfig): Promise; subscribeTopic(topic: string, handler: (topic: string, message: any) => void): Promise; shutdown(): Promise; login(): Promise; readParameters(): Promise; subscribeObject(id: string): Promise; ping(): Promise; device(objId?: string, detailLevel?: number): Promise; zones(objId: string): Promise; fetchHomeIndex(): Promise; toggleDeviceStatus(id: string, status: number): Promise; setTemperature(id: string, temperature: number): Promise; switchThermostatMode(id: string, mode: ClimaMode): Promise; switchThermostatSeason(id: string, mode: ThermoSeason): Promise; setHumidity(id: string, humidity: number): Promise; switchHumidifierMode(id: string, mode: ClimaMode): Promise; toggleHumidifierStatus(id: string, mode: ClimaOnOff): Promise; toggleThermostatStatus(id: string, mode: ClimaOnOff): Promise; setBlindPosition(id: string, position: number): Promise; sendAction(id: string, type: ACTION_TYPE, value: any): Promise; mapHome(home: DeviceData[]): HomeIndex; private getOrCreateClientId; private retrieveAgentId; private publish; private handleIncomingMessage; } export {}; //# sourceMappingURL=comelit-client.d.ts.map