node-red-contrib-ewelink-cube
Version:
Node-RED integration with eWeLink Cube
142 lines (141 loc) • 3.9 kB
TypeScript
/// <reference types="node" />
import EventSource from 'eventsource';
import IDebugLog from "../ts/interface/IDebugLog";
import { IThirdpartyDevice } from "../ts/interface/IThirdpartyDevice";
import IHttpConfig from "../ts/interface/IHttpConfig";
import IResponse from "../ts/interface/IResponse";
import ISseEvent from '../ts/interface/ISseEvent';
export default abstract class baseClass {
private ip;
private at;
private debug;
interval: NodeJS.Timer | null;
timeout: NodeJS.Timeout | null;
time: number;
event: EventSource | null;
constructor({ ip, at, debug }: {
ip: string;
at?: string;
debug?: boolean;
});
setIp(ip: string): void;
getIp(): string;
setAT(at: string): void;
getAt(): string;
/**
* 获取网关访问凭证
*/
getBridgeAT({ timeout, interval }: {
timeout?: number;
interval?: number;
}): Promise<unknown>;
private getBridgeATHandler;
/**
* 修改网关设置
*/
updateBridgeConfig(volume: number): Promise<IResponse>;
/**
* 获取网关信息
*/
getBridgeInfo(): Promise<IResponse>;
/**
* 重启网关
*/
rebootBridge(): Promise<IResponse>;
/**
* 扬声器控制
*/
controlSpeaker(params: {
type: 'play_sound' | 'play_beep';
sound?: {
name: string;
volume: number;
countdown: number;
};
beep?: {
name: string;
volume: number;
};
}): Promise<IResponse>;
/**
* 搜索子设备
*/
discoverySubDevices(params: {
enable: boolean;
type: string;
}): Promise<IResponse>;
/**
* 手动添加子设备 (目前仅支持添加RTSP摄像头和ESP32摄像头)
*/
manualAddSubDevice(params: {
name: string;
display_category: 'camera';
capabilities: [];
protocol: 'RTSP' | 'ESP32-CAM';
manufacturer: string;
model: string;
firmware_version: string;
}): Promise<IResponse>;
/**
* 获取设备列表
*/
getDeviceList(): Promise<IResponse>;
/**
* 更新指定设备信息或状态
*/
updateDeviceState(serial_number: string, updateParams?: {
name?: string;
tags?: any;
state?: any;
capabilities?:any[];
configuration?: any;
}): Promise<IResponse>;
/**
* 删除子设备
*/
deleteDevice(serial_number: string): Promise<IResponse>;
/**
* 同步新设备列表
*/
syncDevices({ devices, version }: {
devices: IThirdpartyDevice[];
version?: string;
}): Promise<IResponse>;
/**
* 设备状态更新上报
*/
uploadDeviceState({ serial_number, third_serial_number, params, version }: {
serial_number: string;
third_serial_number: string;
params: any;
version?: string;
}): Promise<IResponse>;
/**
* 设备上下线状态上报
*/
updateDeviceOnline({ serial_number, third_serial_number, params, version }: {
serial_number: string;
third_serial_number: string;
params: any;
version?: string;
}): Promise<IResponse>;
/**
* 获取调试日志接口
*/
getDebugLog({ serial_number, ...params }: IDebugLog): Promise<IResponse>;
protected httpRequest(httpConfig: IHttpConfig): Promise<IResponse>;
/**
* 初始化 sse 连接
*/
initSSE(): Promise<{
error: number;
msg: string;
data: {};
} | undefined>;
mountSseFunc(handler: ISseEvent): {
error: number;
msg: string;
data: {};
} | undefined;
unmountSseFunc(): void;
}