zigbee-herdsman-zigate
Version:
An open source ZigBee gateway solution with node.js.
54 lines (46 loc) • 1.27 kB
text/typescript
import DataType from './definition/dataType';
import BuffaloZclDataType from './definition/buffaloZclDataType';
import {TsType as BuffaloTsType} from '../buffalo';
interface Attribute {
ID: number;
name: string;
type: DataType;
manufacturerCode?: number;
}
interface Parameter {
name: string;
type: DataType | BuffaloZclDataType;
}
interface Command {
ID: number;
name: string;
parameters: Parameter[];
response?: number;
}
interface Cluster {
ID: number;
name: string;
attributes: {[s: string]: Attribute};
commands: {
[s: string]: Command;
};
commandsResponse: {
[s: string]: Command;
};
getAttribute: (key: number | string) => Attribute;
hasAttribute: (key: number | string) => boolean;
getCommand: (key: number | string) => Command;
getCommandResponse: (key: number | string) => Command;
}
interface BuffaloZclOptions extends BuffaloTsType.Options {
dataType?: string;
attrId?: number;
}
interface ZclArray {
elementType: DataType | keyof typeof DataType;
elements: BuffaloTsType.Value[];
}
type DataTypeValueType = 'ANALOG' | 'DISCRETE';
export {
Cluster, Attribute, Command, Parameter, DataTypeValueType, BuffaloZclOptions, ZclArray,
};