zigbee-herdsman
Version:
An open source ZigBee gateway solution with node.js.
270 lines • 11.1 kB
JavaScript
"use strict";
/* eslint max-len: 0 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Foundation = void 0;
const enums_1 = require("./enums");
const status_1 = require("./status");
exports.Foundation = {
/** Read Attributes */
read: {
ID: 0x00,
parseStrategy: 'repetitive',
parameters: [{ name: 'attrId', type: enums_1.DataType.UINT16 }],
response: 0x01, // readRsp
},
/** Read Attributes Response */
readRsp: {
ID: 0x01,
parseStrategy: 'repetitive',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'status', type: enums_1.DataType.UINT8 },
{ name: 'dataType', type: enums_1.DataType.UINT8, conditions: [{ type: enums_1.ParameterCondition.STATUS_EQUAL, value: status_1.Status.SUCCESS }] },
{ name: 'attrData', type: enums_1.BuffaloZclDataType.USE_DATA_TYPE, conditions: [{ type: enums_1.ParameterCondition.STATUS_EQUAL, value: status_1.Status.SUCCESS }] },
],
},
/** Write Attributes */
write: {
ID: 0x02,
parseStrategy: 'repetitive',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'dataType', type: enums_1.DataType.UINT8 },
{ name: 'attrData', type: enums_1.BuffaloZclDataType.USE_DATA_TYPE },
],
response: 0x04, // writeRsp
},
/** Write Attributes Undivided */
writeUndiv: {
ID: 0x03,
parseStrategy: 'repetitive',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'dataType', type: enums_1.DataType.UINT8 },
{ name: 'attrData', type: enums_1.BuffaloZclDataType.USE_DATA_TYPE },
],
},
/** Write Attributes Response */
writeRsp: {
ID: 0x04,
parseStrategy: 'repetitive',
parameters: [
{ name: 'status', type: enums_1.DataType.UINT8 },
{ name: 'attrId', type: enums_1.DataType.UINT16, conditions: [{ type: enums_1.ParameterCondition.STATUS_NOT_EQUAL, value: status_1.Status.SUCCESS }] },
],
},
/** Write Attributes No Response */
writeNoRsp: {
ID: 0x05,
parseStrategy: 'repetitive',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'dataType', type: enums_1.DataType.UINT8 },
{ name: 'attrData', type: enums_1.BuffaloZclDataType.USE_DATA_TYPE },
],
},
/** Configure Reporting */
configReport: {
ID: 0x06,
parseStrategy: 'repetitive',
parameters: [
{ name: 'direction', type: enums_1.DataType.UINT8 },
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'dataType', type: enums_1.DataType.UINT8, conditions: [{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.CLIENT_TO_SERVER }] },
{
name: 'minRepIntval',
type: enums_1.DataType.UINT16,
conditions: [{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.CLIENT_TO_SERVER }],
},
{
name: 'maxRepIntval',
type: enums_1.DataType.UINT16,
conditions: [{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.CLIENT_TO_SERVER }],
},
{
name: 'repChange',
type: enums_1.BuffaloZclDataType.USE_DATA_TYPE,
conditions: [
{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.CLIENT_TO_SERVER },
{ type: enums_1.ParameterCondition.DATA_TYPE_CLASS_EQUAL, value: enums_1.DataTypeClass.ANALOG },
],
},
{ name: 'timeout', type: enums_1.DataType.UINT16, conditions: [{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.SERVER_TO_CLIENT }] },
],
response: 0x07, // configReportRsp
},
/** Configure Reporting Response */
configReportRsp: {
ID: 0x07,
parseStrategy: 'repetitive',
parameters: [
{ name: 'status', type: enums_1.DataType.UINT8 },
// minimumRemainingBufferBytes: if direction is present, attrId is also present
// https://github.com/Koenkk/zigbee-herdsman/pull/115
{ name: 'direction', type: enums_1.DataType.UINT8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 3 }] },
{ name: 'attrId', type: enums_1.DataType.UINT16, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 2 }] },
],
},
/** Read Reporting Configuration */
readReportConfig: {
ID: 0x08,
parseStrategy: 'repetitive',
parameters: [
{ name: 'direction', type: enums_1.DataType.UINT8 },
{ name: 'attrId', type: enums_1.DataType.UINT16 },
],
},
/** Read Reporting Configuration Response */
readReportConfigRsp: {
ID: 0x09,
parseStrategy: 'repetitive',
parameters: [
{ name: 'direction', type: enums_1.DataType.UINT8 },
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'dataType', type: enums_1.DataType.UINT8, conditions: [{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.CLIENT_TO_SERVER }] },
{
name: 'minRepIntval',
type: enums_1.DataType.UINT16,
conditions: [{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.CLIENT_TO_SERVER }],
},
{
name: 'maxRepIntval',
type: enums_1.DataType.UINT16,
conditions: [{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.CLIENT_TO_SERVER }],
},
{
name: 'repChange',
type: enums_1.BuffaloZclDataType.USE_DATA_TYPE,
conditions: [
{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.CLIENT_TO_SERVER },
{ type: enums_1.ParameterCondition.DATA_TYPE_CLASS_EQUAL, value: enums_1.DataTypeClass.ANALOG },
],
},
{ name: 'timeout', type: enums_1.DataType.UINT16, conditions: [{ type: enums_1.ParameterCondition.DIRECTION_EQUAL, value: enums_1.Direction.SERVER_TO_CLIENT }] },
],
},
/** Report attributes */
report: {
ID: 0x0a,
parseStrategy: 'repetitive',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'dataType', type: enums_1.DataType.UINT8 },
{ name: 'attrData', type: enums_1.BuffaloZclDataType.USE_DATA_TYPE },
],
},
/** Default Response */
defaultRsp: {
ID: 0x0b,
parseStrategy: 'flat',
parameters: [
{ name: 'cmdId', type: enums_1.DataType.UINT8 },
{ name: 'statusCode', type: enums_1.DataType.UINT8 },
],
},
/** Discover Attributes */
discover: {
ID: 0x0c,
parseStrategy: 'flat',
parameters: [
{ name: 'startAttrId', type: enums_1.DataType.UINT16 },
{ name: 'maxAttrIds', type: enums_1.DataType.UINT8 },
],
},
/** Discover Attributes Response */
discoverRsp: {
ID: 0x0d,
parseStrategy: 'oneof',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'dataType', type: enums_1.DataType.UINT8 },
],
},
/** Read Attributes Structured */
readStructured: {
ID: 0x0e,
parseStrategy: 'repetitive',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'selector', type: enums_1.BuffaloZclDataType.STRUCTURED_SELECTOR },
],
},
/** Write Attributes Structured */
writeStructured: {
ID: 0x0f,
parseStrategy: 'repetitive',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'selector', type: enums_1.BuffaloZclDataType.STRUCTURED_SELECTOR },
{ name: 'dataType', type: enums_1.DataType.UINT8 },
{ name: 'elementData', type: enums_1.BuffaloZclDataType.USE_DATA_TYPE },
],
response: 0x10, // writeStructuredRsp
},
/** Write Attributes Structured response */
writeStructuredRsp: {
ID: 0x10,
parseStrategy: 'repetitive',
// contains only one SUCCESS record for all written attributes if all written successfully
parameters: [
{ name: 'status', type: enums_1.DataType.UINT8 },
{ name: 'attrId', type: enums_1.DataType.UINT16, conditions: [{ type: enums_1.ParameterCondition.STATUS_NOT_EQUAL, value: status_1.Status.SUCCESS }] },
// always one zero-octet if failed attribute not of type array or structure, otherwise can also be zero if no info on which element caused failure
{
name: 'selector',
type: enums_1.BuffaloZclDataType.STRUCTURED_SELECTOR,
conditions: [{ type: enums_1.ParameterCondition.STATUS_NOT_EQUAL, value: status_1.Status.SUCCESS }],
},
],
},
/** Discover Commands Received */
discoverCommands: {
ID: 0x11,
parseStrategy: 'flat',
parameters: [
{ name: 'startCmdId', type: enums_1.DataType.UINT8 },
{ name: 'maxCmdIds', type: enums_1.DataType.UINT8 },
],
},
/** Discover Commands Received Response */
discoverCommandsRsp: {
ID: 0x12,
parseStrategy: 'oneof',
parameters: [{ name: 'cmdId', type: enums_1.DataType.UINT8 }],
},
/** Discover Commands Generated */
discoverCommandsGen: {
ID: 0x13,
parseStrategy: 'flat',
parameters: [
{ name: 'startCmdId', type: enums_1.DataType.UINT8 },
{ name: 'maxCmdIds', type: enums_1.DataType.UINT8 },
],
},
/** Discover Commands Generated Response */
discoverCommandsGenRsp: {
ID: 0x14,
parseStrategy: 'oneof',
parameters: [{ name: 'cmdId', type: enums_1.DataType.UINT8 }],
},
/** Discover Attributes Extended */
discoverExt: {
ID: 0x15,
parseStrategy: 'flat',
parameters: [
{ name: 'startAttrId', type: enums_1.DataType.UINT16 },
{ name: 'maxAttrIds', type: enums_1.DataType.UINT8 },
],
},
/** Discover Attributes Extended Response */
discoverExtRsp: {
ID: 0x16,
parseStrategy: 'oneof',
parameters: [
{ name: 'attrId', type: enums_1.DataType.UINT16 },
{ name: 'dataType', type: enums_1.DataType.UINT8 },
{ name: 'access', type: enums_1.DataType.UINT8 },
],
},
};
//# sourceMappingURL=foundation.js.map