zigbee-herdsman
Version:
An open source Zigbee gateway solution with node.js.
309 lines • 11.9 kB
TypeScript
import type { BuffaloZcl } from "../buffaloZcl";
import type { Command, StructuredSelector } from "./tstype";
export type FoundationCommandName = "read" | "readRsp" | "write" | "writeUndiv" | "writeRsp" | "writeNoRsp" | "configReport" | "configReportRsp" | "readReportConfig" | "readReportConfigRsp" | "report" | "defaultRsp" | "discover" | "discoverRsp" | "readStructured" | "writeStructured" | "writeStructuredRsp" | "discoverCommands" | "discoverCommandsRsp" | "discoverCommandsGen" | "discoverCommandsGenRsp" | "discoverExt" | "discoverExtRsp";
export interface FoundationDefinition<T extends Record<string, any> | Record<string, any>[] = Record<string, any> | Record<string, any>[]> extends Pick<Command, "ID" | "name" | "response"> {
parse: (buffalo: BuffaloZcl) => T;
write: (buffalo: BuffaloZcl, payload: T) => void;
}
export declare const Foundation: {
/** Read Attributes */
read: {
name: string;
ID: number;
response: number;
parse(buffalo: BuffaloZcl): {
attrId: number;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Read Attributes Response */
readRsp: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
attrId: number;
status: number;
dataType?: number;
attrData?: unknown;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Write Attributes */
write: {
name: string;
ID: number;
response: number;
parse(buffalo: BuffaloZcl): {
attrId: number;
dataType: number;
attrData: unknown;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Write Attributes Undivided */
writeUndiv: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
attrId: number;
dataType: number;
attrData: unknown;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Write Attributes Response */
writeRsp: {
name: string;
ID: number;
/**
* Note that write attribute status records are not included for successfully written attributes, to save bandwidth.
* In the case of successful writing of all attributes, only a single write attribute status record SHALL be included in the command,
* with the status field set to SUCCESS and the attribute identifier field omitted.
*/
parse(buffalo: BuffaloZcl): {
status: number;
attrId?: number;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Write Attributes No Response */
writeNoRsp: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
attrId: number;
dataType: number;
attrData: unknown;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Configure Reporting */
configReport: {
name: string;
ID: number;
response: number;
parse(buffalo: BuffaloZcl): {
direction: number;
attrId: number;
dataType?: number;
/**
* - If this value is set to 0x0000, then there is no minimum limit,
* unless one is imposed by the specification of the cluster using this reporting mechanism or by the application.
*/
minRepIntval?: number;
/**
* - If this value is set to 0xffff, then the device SHALL not issue reports for the specified attribute,
* and the configuration information for that attribute need not be maintained.
* - If this value is set to 0x0000, and the minimum reporting interval field does not equal 0xffff
* there SHALL be no periodic reporting, but change based reporting SHALL still be operational.
* - If this value is set to 0x0000 and the Minimum Reporting Interval Field equals 0xffff,
* then the device SHALL revert to its default reporting configuration.
* The reportable change field, if present, SHALL be set to zero.
*/
maxRepIntval?: number;
/**
* - If the Maximum Reporting Interval Field is set to 0xffff (terminate reporting configuration),
* or the Maximum Reporting Interval Field is set to 0x0000 and the Minimum Reporting Interval Field equals 0xffff,
* indicating a (default reporting configuration) then if this field is present,
* it SHALL be set to zero upon transmission and ignored upon reception.
*/
repChange?: number;
/**
* - If this value is set to 0x0000, reports of the attribute are not subject to timeout.
*/
timeout?: number;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Configure Reporting Response */
configReportRsp: {
name: string;
ID: number;
/**
* Note that attribute status records are not included for successfully configured attributes, to save bandwidth.
* In the case of successful configuration of all attributes, only a single attribute status record SHALL be included in the command,
* with the status field set to SUCCESS and the direction and attribute identifier fields omitted.
*/
parse(buffalo: BuffaloZcl): {
status: number;
direction?: number;
attrId?: number;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Read Reporting Configuration */
readReportConfig: {
name: string;
ID: number;
response: number;
parse(buffalo: BuffaloZcl): {
direction: number;
attrId: number;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Read Reporting Configuration Response */
readReportConfigRsp: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
status: number;
direction: number;
attrId: number;
dataType?: number;
minRepIntval?: number;
maxRepIntval?: number;
repChange?: number;
timeout?: number;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Report attributes */
report: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
attrId: number;
dataType: number;
attrData: unknown;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Default Response */
defaultRsp: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
cmdId: number;
statusCode: number;
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Discover Attributes */
discover: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
startAttrId: number;
maxAttrIds: number;
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Discover Attributes Response */
discoverRsp: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
discComplete: number;
attrInfos: {
attrId: number;
dataType: number;
}[];
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Read Attributes Structured */
readStructured: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
attrId: number;
selector: StructuredSelector;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Write Attributes Structured */
writeStructured: {
name: string;
ID: number;
response: number;
parse(buffalo: BuffaloZcl): {
attrId: number;
selector: StructuredSelector;
dataType: number;
elementData: unknown;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Write Attributes Structured response */
writeStructuredRsp: {
name: string;
ID: number;
/**
* Note that write attribute status records are not included for successfully written attributes, to save bandwidth.
* In the case of successful writing of all attributes, only a single write attribute status record SHALL be included in the command,
* with the status field set to SUCCESS and the attribute identifier and selector fields omitted.
*/
parse(buffalo: BuffaloZcl): {
status: number;
attrId?: number;
selector?: StructuredSelector;
}[];
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Discover Commands Received */
discoverCommands: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
startCmdId: number;
maxCmdIds: number;
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Discover Commands Received Response */
discoverCommandsRsp: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
discComplete: number;
commandIds: number[];
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Discover Commands Generated */
discoverCommandsGen: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
startCmdId: number;
maxCmdIds: number;
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Discover Commands Generated Response */
discoverCommandsGenRsp: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
discComplete: number;
commandIds: number[];
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Discover Attributes Extended */
discoverExt: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
startAttrId: number;
maxAttrIds: number;
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
/** Discover Attributes Extended Response */
discoverExtRsp: {
name: string;
ID: number;
parse(buffalo: BuffaloZcl): {
discComplete: number;
attrInfos: {
attrId: number;
dataType: number;
access: number;
}[];
};
write(buffalo: BuffaloZcl, payload: Record<string, any> | Record<string, any>[]): void;
};
};
//# sourceMappingURL=foundation.d.ts.map