hilink-ts
Version:
智能家居hilink扩展h5应用工具开发
172 lines (171 loc) • 3.61 kB
TypeScript
import { HuaweiTime, HuaweiTimestamp } from "./time";
export interface IDevInfo {
/**
* 设备类型
*/
devType: string;
/**
* 固件版本(Firmware Version)
*/
fwv: string;
/**
* HiLink协议版本
*/
hiv: string;
/**
* 硬件版本(Hardware Version)
*/
hwv: string;
/**
* MAC地址,格式为“XX:XX:XX:XX:XX:XX”,统一为大写
*/
mac: string;
/**
* 制造商ID
*/
manu: string;
/**
* 设备型号
*/
model: string;
/**
* 产品ID
*/
prodId: string;
/**
* 协议类型。取值范围如下:
1: Wi-Fi。
2: Z-Wave。
3: ZigBee。
4: BLE。
5: PLC。
*/
protType: string;
/**
* 设置设备信息
*/
setupType: string;
/**
* 设备的序列号,用于唯一标识该设备,可以根据MAC地址或者IMEI号等信息来设置。SN只用于对初次发现的设备进行唯一标识,一旦注册从云端分配到devId后,便通过devId来访问该设备
*/
sn: string;
/**
* 软件版本
*/
swv: string;
udid: string;
}
export interface IDevService<S, D> {
sid: S;
st: string;
reportId: string;
data?: D;
ts?: HuaweiTime;
}
export type Bool = "true" | "false";
export interface IDevResult<S, D> {
/**
* 设备控制状态 。取值说明如下:
0:空闲。
1:控制中。
2:升级中。
*/
controlStatus: number;
/**
* 设备ID
*/
devId: string;
devInfo: IDevInfo;
/**
* 设备名称
*/
devName: string;
/**
* 设备标签
*/
devTags: {
sharable: Bool;
personal: Bool;
groupStatus: Bool;
};
deviceAliasNames: [];
/**
* 区分设备的ID
*/
deviceId: string;
deviceaddstatus: number;
/**
* 设备所处Gateway的ID
*/
gatewayId: string;
/**
* 分享该设备权限设备管理员的homeID
*/
homeId: string;
/**
* 房间名称
*/
homeName: string;
installationStatus: number;
isDeleted: boolean;
/**
* 是否是本地化管理的设备
*/
isLocalDevice: boolean;
isTitleOrNot: boolean;
/**
* 节点类型,取值范围如下:
ENDPOINT:通过网关接入的设备。
GATEWAY:网关。
GROUP:设备组。
*/
nodeType: string;
/**
* 设备的操作权限,取值范围包括:EXECUTE、WRITE,、READ
*/
operations: ("READ" | "EXECUTE" | "WRITE")[];
/**
* 产品ID,该取值与devInfo中的prodId保持一致
*/
prodId: string;
redPointFlag: number;
/**
* 设备注册时间(毫秒级时间戳)
*/
registryTime: HuaweiTimestamp;
/**
* 是否是自己的设备homeName
* role: "owner";
*/
role: string;
roomAliasNames: string[];
/**
* 房间ID
*/
roomId: number;
/**
* 房间名称
*/
roomName: string;
/**
* 设备的服务能力信息
*/
services: IDevService<S, D>[];
/**
* 设备状态。取值说明如下:
offline:设备离线。
online:设备在线。
inbox:未注册设备。
unConfigure: 海外未配置的路由
*/
status: string;
supportShare: boolean;
errcode?: number;
}
export interface ICacheDevResult<S, D> extends IDevResult<S, D> {
/**
* 房间类型 设备家庭类型
*/
homeType: string;
from: string;
}