UNPKG

zigbee-herdsman

Version:

An open source Zigbee gateway solution with node.js.

967 lines (966 loc) 433 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Clusters = void 0; const enums_1 = require("./enums"); const manufacturerCode_1 = require("./manufacturerCode"); const status_1 = require("./status"); exports.Clusters = { genBasic: { name: "genBasic", ID: 0x0000, attributes: { zclVersion: { name: "zclVersion", ID: 0x0000, type: enums_1.DataType.UINT8, required: true, max: 0xff, default: 8 }, appVersion: { name: "appVersion", ID: 0x0001, type: enums_1.DataType.UINT8, max: 0xff, default: 0 }, stackVersion: { name: "stackVersion", ID: 0x0002, type: enums_1.DataType.UINT8, max: 0xff, default: 0 }, hwVersion: { name: "hwVersion", ID: 0x0003, type: enums_1.DataType.UINT8, max: 0xff, default: 0 }, manufacturerName: { name: "manufacturerName", ID: 0x0004, type: enums_1.DataType.CHAR_STR, default: "", maxLen: 32 }, modelId: { name: "modelId", ID: 0x0005, type: enums_1.DataType.CHAR_STR, default: "", maxLen: 32 }, dateCode: { name: "dateCode", ID: 0x0006, type: enums_1.DataType.CHAR_STR, default: "", maxLen: 16 }, powerSource: { name: "powerSource", ID: 0x0007, type: enums_1.DataType.ENUM8, required: true, default: 0xff }, genericDeviceClass: { name: "genericDeviceClass", ID: 0x0008, type: enums_1.DataType.ENUM8, default: 0xff }, genericDeviceType: { name: "genericDeviceType", ID: 0x0009, type: enums_1.DataType.ENUM8, default: 0xff }, productCode: { name: "productCode", ID: 0x000a, type: enums_1.DataType.OCTET_STR, default: "" }, productUrl: { name: "productUrl", ID: 0x000b, type: enums_1.DataType.CHAR_STR, default: "" }, manufacturerVersionDetails: { name: "manufacturerVersionDetails", ID: 0x000c, type: enums_1.DataType.CHAR_STR, default: "" }, serialNumber: { name: "serialNumber", ID: 0x000d, type: enums_1.DataType.CHAR_STR, default: "" }, productLabel: { name: "productLabel", ID: 0x000e, type: enums_1.DataType.CHAR_STR, default: "" }, locationDesc: { name: "locationDesc", ID: 0x0010, type: enums_1.DataType.CHAR_STR, write: true, default: "", maxLen: 16 }, physicalEnv: { name: "physicalEnv", ID: 0x0011, type: enums_1.DataType.ENUM8, write: true, default: 0 }, deviceEnabled: { name: "deviceEnabled", ID: 0x0012, type: enums_1.DataType.BOOLEAN, write: true, default: 1 }, alarmMask: { name: "alarmMask", ID: 0x0013, type: enums_1.DataType.BITMAP8, write: true, default: 0 }, disableLocalConfig: { name: "disableLocalConfig", ID: 0x0014, type: enums_1.DataType.BITMAP8, write: true, default: 0 }, swBuildId: { name: "swBuildId", ID: 0x4000, type: enums_1.DataType.CHAR_STR, default: "", maxLen: 16 }, }, commands: { resetFactDefault: { name: "resetFactDefault", ID: 0x00, parameters: [] }, }, commandsResponse: {}, }, genPowerCfg: { name: "genPowerCfg", ID: 0x0001, attributes: { mainsVoltage: { name: "mainsVoltage", ID: 0x0000, type: enums_1.DataType.UINT16, max: 0xffff }, mainsFrequency: { name: "mainsFrequency", ID: 0x0001, type: enums_1.DataType.UINT8, max: 0xff }, mainsAlarmMask: { name: "mainsAlarmMask", ID: 0x0010, type: enums_1.DataType.BITMAP8, write: true, default: 0 }, mainsVoltMinThres: { name: "mainsVoltMinThres", ID: 0x0011, type: enums_1.DataType.UINT16, write: true, max: 0xffff, default: 0 }, mainsVoltMaxThres: { name: "mainsVoltMaxThres", ID: 0x0012, type: enums_1.DataType.UINT16, write: true, max: 0xffff, default: 0xffff }, mainsVoltageDwellTripPoint: { name: "mainsVoltageDwellTripPoint", ID: 0x0013, type: enums_1.DataType.UINT16, write: true, max: 0xffff, default: 0 }, batteryVoltage: { name: "batteryVoltage", ID: 0x0020, type: enums_1.DataType.UINT8, max: 0xff }, batteryPercentageRemaining: { name: "batteryPercentageRemaining", ID: 0x0021, type: enums_1.DataType.UINT8, report: true, max: 0xff, default: 0 }, batteryManufacturer: { name: "batteryManufacturer", ID: 0x0030, type: enums_1.DataType.CHAR_STR, write: true, default: "", maxLen: 16 }, batterySize: { name: "batterySize", ID: 0x0031, type: enums_1.DataType.ENUM8, write: true, default: 0xff }, batteryAHrRating: { name: "batteryAHrRating", ID: 0x0032, type: enums_1.DataType.UINT16, write: true, max: 0xffff }, batteryQuantity: { name: "batteryQuantity", ID: 0x0033, type: enums_1.DataType.UINT8, write: true, max: 0xff }, batteryRatedVoltage: { name: "batteryRatedVoltage", ID: 0x0034, type: enums_1.DataType.UINT8, write: true, max: 0xff }, batteryAlarmMask: { name: "batteryAlarmMask", ID: 0x0035, type: enums_1.DataType.BITMAP8, write: true, default: 0 }, batteryVoltMinThres: { name: "batteryVoltMinThres", ID: 0x0036, type: enums_1.DataType.UINT8, write: true, max: 0xff, default: 0 }, batteryVoltThres1: { name: "batteryVoltThres1", ID: 0x0037, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0 }, batteryVoltThres2: { name: "batteryVoltThres2", ID: 0x0038, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0 }, batteryVoltThres3: { name: "batteryVoltThres3", ID: 0x0039, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0 }, batteryPercentMinThres: { name: "batteryPercentMinThres", ID: 0x003a, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, batteryPercentThres1: { name: "batteryPercentThres1", ID: 0x003b, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, batteryPercentThres2: { name: "batteryPercentThres2", ID: 0x003c, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, batteryPercentThres3: { name: "batteryPercentThres3", ID: 0x003d, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, batteryAlarmState: { name: "batteryAlarmState", ID: 0x003e, type: enums_1.DataType.BITMAP32, report: true, default: 0 }, battery2Voltage: { name: "battery2Voltage", ID: 0x0040, type: enums_1.DataType.UINT8, max: 0xff }, battery2PercentageRemaining: { name: "battery2PercentageRemaining", ID: 0x0041, type: enums_1.DataType.UINT8, report: true, max: 0xff, default: 0 }, battery2Manufacturer: { name: "battery2Manufacturer", ID: 0x0050, type: enums_1.DataType.CHAR_STR, write: true, default: "", maxLen: 16 }, battery2Size: { name: "battery2Size", ID: 0x0051, type: enums_1.DataType.ENUM8, write: true, default: 0xff }, battery2AHrRating: { name: "battery2AHrRating", ID: 0x0052, type: enums_1.DataType.UINT16, write: true, max: 0xffff }, battery2Quantity: { name: "battery2Quantity", ID: 0x0053, type: enums_1.DataType.UINT8, write: true, max: 0xff }, battery2RatedVoltage: { name: "battery2RatedVoltage", ID: 0x0054, type: enums_1.DataType.UINT8, write: true, max: 0xff }, battery2AlarmMask: { name: "battery2AlarmMask", ID: 0x0055, type: enums_1.DataType.BITMAP8, write: true, default: 0 }, battery2VoltageMinThreshold: { name: "battery2VoltageMinThreshold", ID: 0x0056, type: enums_1.DataType.UINT8, write: true, max: 0xff, default: 0 }, battery2VoltageThreshold1: { name: "battery2VoltageThreshold1", ID: 0x0057, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery2VoltageThreshold2: { name: "battery2VoltageThreshold2", ID: 0x0058, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery2VoltageThreshold3: { name: "battery2VoltageThreshold3", ID: 0x0059, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery2PercentageMinThreshold: { name: "battery2PercentageMinThreshold", ID: 0x005a, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery2PercentageThreshold1: { name: "battery2PercentageThreshold1", ID: 0x005b, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery2PercentageThreshold2: { name: "battery2PercentageThreshold2", ID: 0x005c, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery2PercentageThreshold3: { name: "battery2PercentageThreshold3", ID: 0x005d, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery2AlarmState: { name: "battery2AlarmState", ID: 0x005e, type: enums_1.DataType.BITMAP32, report: true, default: 0 }, battery3Voltage: { name: "battery3Voltage", ID: 0x0060, type: enums_1.DataType.UINT8, max: 0xff }, battery3PercentageRemaining: { name: "battery3PercentageRemaining", ID: 0x0061, type: enums_1.DataType.UINT8, report: true, max: 0xff, default: 0 }, battery3Manufacturer: { name: "battery3Manufacturer", ID: 0x0070, type: enums_1.DataType.CHAR_STR, write: true, default: "", maxLen: 16 }, battery3Size: { name: "battery3Size", ID: 0x0071, type: enums_1.DataType.ENUM8, write: true, default: 0xff }, battery3AHrRating: { name: "battery3AHrRating", ID: 0x0072, type: enums_1.DataType.UINT16, write: true, max: 0xffff }, battery3Quantity: { name: "battery3Quantity", ID: 0x0073, type: enums_1.DataType.UINT8, write: true, max: 0xff }, battery3RatedVoltage: { name: "battery3RatedVoltage", ID: 0x0074, type: enums_1.DataType.UINT8, write: true, max: 0xff }, battery3AlarmMask: { name: "battery3AlarmMask", ID: 0x0075, type: enums_1.DataType.BITMAP8, write: true, default: 0 }, battery3VoltageMinThreshold: { name: "battery3VoltageMinThreshold", ID: 0x0076, type: enums_1.DataType.UINT8, write: true, max: 0xff, default: 0 }, battery3VoltageThreshold1: { name: "battery3VoltageThreshold1", ID: 0x0077, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery3VoltageThreshold2: { name: "battery3VoltageThreshold2", ID: 0x0078, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery3VoltageThreshold3: { name: "battery3VoltageThreshold3", ID: 0x0079, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery3PercentageMinThreshold: { name: "battery3PercentageMinThreshold", ID: 0x007a, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery3PercentageThreshold1: { name: "battery3PercentageThreshold1", ID: 0x007b, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery3PercentageThreshold2: { name: "battery3PercentageThreshold2", ID: 0x007c, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery3PercentageThreshold3: { name: "battery3PercentageThreshold3", ID: 0x007d, type: enums_1.DataType.UINT8, write: true, writeOptional: true, max: 0xff, default: 0, }, battery3AlarmState: { name: "battery3AlarmState", ID: 0x007e, type: enums_1.DataType.BITMAP32, report: true, default: 0 }, }, commands: {}, commandsResponse: {}, }, genDeviceTempCfg: { name: "genDeviceTempCfg", ID: 0x0002, attributes: { currentTemperature: { name: "currentTemperature", ID: 0x0000, type: enums_1.DataType.INT16, required: true, min: -200, max: 200 }, minTempExperienced: { name: "minTempExperienced", ID: 0x0001, type: enums_1.DataType.INT16, min: -200, max: 200 }, maxTempExperienced: { name: "maxTempExperienced", ID: 0x0002, type: enums_1.DataType.INT16, min: -200, max: 200 }, overTempTotalDwell: { name: "overTempTotalDwell", ID: 0x0003, type: enums_1.DataType.UINT16, max: 0xffff, default: 0 }, devTempAlarmMask: { name: "devTempAlarmMask", ID: 0x0010, type: enums_1.DataType.BITMAP8, write: true, default: 0 }, lowTempThres: { name: "lowTempThres", ID: 0x0011, type: enums_1.DataType.INT16, write: true, min: -200, max: 200 }, highTempThres: { name: "highTempThres", ID: 0x0012, type: enums_1.DataType.INT16, write: true, min: -200, max: 200 }, lowTempDwellTripPoint: { name: "lowTempDwellTripPoint", ID: 0x0013, type: enums_1.DataType.UINT24, write: true, max: 0xffffff }, highTempDwellTripPoint: { name: "highTempDwellTripPoint", ID: 0x0014, type: enums_1.DataType.UINT24, write: true, max: 0xffffff }, }, commands: {}, commandsResponse: {}, }, genIdentify: { name: "genIdentify", ID: 0x0003, attributes: { identifyTime: { name: "identifyTime", ID: 0x0000, type: enums_1.DataType.UINT16, write: true, required: true, max: 0xffff, default: 0 }, }, commands: { identify: { name: "identify", ID: 0x00, parameters: [{ name: "identifytime", type: enums_1.DataType.UINT16 }], required: true }, identifyQuery: { name: "identifyQuery", ID: 0x01, parameters: [], required: true }, triggerEffect: { name: "triggerEffect", ID: 0x40, parameters: [ { name: "effectid", type: enums_1.DataType.ENUM8 }, { name: "effectvariant", type: enums_1.DataType.ENUM8 }, ], }, }, commandsResponse: { identifyQueryRsp: { name: "identifyQueryRsp", ID: 0x00, parameters: [{ name: "timeout", type: enums_1.DataType.UINT16, max: 0xffff }], required: true, }, }, }, /** Note: an end device being "sleepy" makes everything optional, even if marked mandatory */ genGroups: { name: "genGroups", ID: 0x0004, attributes: { nameSupport: { name: "nameSupport", ID: 0x0000, type: enums_1.DataType.BITMAP8, required: true, default: 0 }, }, commands: { add: { name: "add", ID: 0x00, response: 0x00, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "groupname", type: enums_1.DataType.CHAR_STR }, ], required: true, }, view: { name: "view", ID: 0x01, response: 0x01, parameters: [{ name: "groupid", type: enums_1.DataType.UINT16 }], required: true }, getMembership: { name: "getMembership", ID: 0x02, response: 0x02, parameters: [ { name: "groupcount", type: enums_1.DataType.UINT8 }, { name: "grouplist", type: enums_1.BuffaloZclDataType.LIST_UINT16 }, ], required: true, }, remove: { name: "remove", ID: 0x03, response: 0x03, parameters: [{ name: "groupid", type: enums_1.DataType.UINT16 }], required: true }, removeAll: { name: "removeAll", ID: 0x04, parameters: [], required: true }, addIfIdentifying: { name: "addIfIdentifying", ID: 0x05, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "groupname", type: enums_1.DataType.CHAR_STR }, ], required: true, }, }, commandsResponse: { addRsp: { name: "addRsp", ID: 0x00, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupid", type: enums_1.DataType.UINT16 }, ], required: true, }, viewRsp: { name: "viewRsp", ID: 0x01, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "groupname", type: enums_1.DataType.CHAR_STR }, ], required: true, }, getMembershipRsp: { name: "getMembershipRsp", ID: 0x02, parameters: [ { name: "capacity", type: enums_1.DataType.UINT8 }, { name: "groupcount", type: enums_1.DataType.UINT8 }, { name: "grouplist", type: enums_1.BuffaloZclDataType.LIST_UINT16 }, ], required: true, }, removeRsp: { name: "removeRsp", ID: 0x03, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupid", type: enums_1.DataType.UINT16 }, ], required: true, }, }, }, /** Note: an end device being "sleepy" makes everything optional, even if marked mandatory */ genScenes: { name: "genScenes", ID: 0x0005, attributes: { count: { name: "count", ID: 0x0000, type: enums_1.DataType.UINT8, required: true, max: 0xff, default: 0 }, currentScene: { name: "currentScene", ID: 0x0001, type: enums_1.DataType.UINT8, required: true, max: 0xff, default: 0 }, currentGroup: { name: "currentGroup", ID: 0x0002, type: enums_1.DataType.UINT16, required: true, max: 0xfff7, default: 0 }, sceneValid: { name: "sceneValid", ID: 0x0003, type: enums_1.DataType.BOOLEAN, required: true, default: 0 }, nameSupport: { name: "nameSupport", ID: 0x0004, type: enums_1.DataType.BITMAP8, required: true, default: 0 }, lastCfgBy: { name: "lastCfgBy", ID: 0x0005, type: enums_1.DataType.IEEE_ADDR, special: [["UnknownOrNotConfigured", "ffffffffffffffff"]] }, }, commands: { add: { name: "add", ID: 0x00, response: 0x00, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, { name: "transtime", type: enums_1.DataType.UINT16 }, { name: "scenename", type: enums_1.DataType.CHAR_STR }, { name: "extensionfieldsets", type: enums_1.BuffaloZclDataType.EXTENSION_FIELD_SETS }, ], required: true, }, view: { name: "view", ID: 0x01, response: 0x01, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, ], required: true, }, remove: { name: "remove", ID: 0x02, response: 0x02, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, ], required: true, }, removeAll: { name: "removeAll", ID: 0x03, response: 0x03, parameters: [{ name: "groupid", type: enums_1.DataType.UINT16 }], required: true }, store: { name: "store", ID: 0x04, response: 0x04, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, ], required: true, }, recall: { name: "recall", ID: 0x05, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, { name: "transitionTime", type: enums_1.DataType.UINT16, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 2 }], }, ], required: true, }, getSceneMembership: { name: "getSceneMembership", ID: 0x06, response: 0x06, parameters: [{ name: "groupid", type: enums_1.DataType.UINT16 }], required: true, }, enhancedAdd: { name: "enhancedAdd", ID: 0x40, response: 0x40, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, { name: "transtime", type: enums_1.DataType.UINT16 }, { name: "scenename", type: enums_1.DataType.CHAR_STR }, { name: "extensionfieldsets", type: enums_1.BuffaloZclDataType.EXTENSION_FIELD_SETS }, ], }, enhancedView: { name: "enhancedView", ID: 0x41, response: 0x41, parameters: [ { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, ], }, copy: { name: "copy", ID: 0x42, response: 0x42, parameters: [ { name: "mode", type: enums_1.DataType.BITMAP8 }, { name: "groupidfrom", type: enums_1.DataType.UINT16 }, { name: "sceneidfrom", type: enums_1.DataType.UINT8 }, { name: "groupidto", type: enums_1.DataType.UINT16 }, { name: "sceneidto", type: enums_1.DataType.UINT8 }, ], }, }, commandsResponse: { addRsp: { name: "addRsp", ID: 0x00, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupId", type: enums_1.DataType.UINT16 }, { name: "sceneId", type: enums_1.DataType.UINT8 }, ], required: true, }, viewRsp: { name: "viewRsp", ID: 0x01, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, { name: "transtime", type: enums_1.DataType.UINT16, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, { name: "scenename", type: enums_1.DataType.CHAR_STR, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, { name: "extensionfieldsets", type: enums_1.BuffaloZclDataType.EXTENSION_FIELD_SETS, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, ], required: true, }, removeRsp: { name: "removeRsp", ID: 0x02, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, ], required: true, }, removeAllRsp: { name: "removeAllRsp", ID: 0x03, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupid", type: enums_1.DataType.UINT16 }, ], required: true, }, storeRsp: { name: "storeRsp", ID: 0x04, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, ], required: true, }, getSceneMembershipRsp: { name: "getSceneMembershipRsp", ID: 0x06, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "capacity", type: enums_1.DataType.UINT8, min: 0, max: 0xff, special: [ ["NoFurtherScenesMayBeAdded", "00"], ["AtLeastOneFurtherSceneMayBeAdded", "fe"], ["Unknown", "ff"], ], }, { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "scenecount", type: enums_1.DataType.UINT8, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, { name: "scenelist", type: enums_1.BuffaloZclDataType.LIST_UINT8, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, ], required: true, }, enhancedAddRsp: { name: "enhancedAddRsp", ID: 0x40, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupId", type: enums_1.DataType.UINT16 }, { name: "sceneId", type: enums_1.DataType.UINT8 }, ], }, enhancedViewRsp: { name: "enhancedViewRsp", ID: 0x41, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupid", type: enums_1.DataType.UINT16 }, { name: "sceneid", type: enums_1.DataType.UINT8 }, { name: "transtime", type: enums_1.DataType.UINT16, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, { name: "scenename", type: enums_1.DataType.CHAR_STR, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, { name: "extensionfieldsets", type: enums_1.BuffaloZclDataType.EXTENSION_FIELD_SETS, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, ], }, copyRsp: { name: "copyRsp", ID: 0x42, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "groupidfrom", type: enums_1.DataType.UINT16 }, { name: "sceneidfrom", type: enums_1.DataType.UINT8 }, ], }, }, }, genOnOff: { name: "genOnOff", ID: 0x0006, attributes: { onOff: { name: "onOff", ID: 0x0000, type: enums_1.DataType.BOOLEAN, report: true, scene: true, required: true, default: 0 }, globalSceneCtrl: { name: "globalSceneCtrl", ID: 0x4000, type: enums_1.DataType.BOOLEAN, default: 1 }, onTime: { name: "onTime", ID: 0x4001, type: enums_1.DataType.UINT16, write: true, max: 0xffff, default: 0 }, offWaitTime: { name: "offWaitTime", ID: 0x4002, type: enums_1.DataType.UINT16, write: true, max: 0xffff, default: 0 }, startUpOnOff: { name: "startUpOnOff", ID: 0x4003, type: enums_1.DataType.ENUM8, write: true, max: 0xff, special: [["SetToPreviousValue", "ff"]] }, }, commands: { off: { name: "off", ID: 0x00, parameters: [], required: true }, on: { name: "on", ID: 0x01, parameters: [], required: true }, toggle: { name: "toggle", ID: 0x02, parameters: [], required: true }, offWithEffect: { name: "offWithEffect", ID: 0x40, parameters: [ { name: "effectid", type: enums_1.DataType.ENUM8 }, { name: "effectvariant", type: enums_1.DataType.UINT8 }, ], }, onWithRecallGlobalScene: { name: "onWithRecallGlobalScene", ID: 0x41, parameters: [] }, onWithTimedOff: { name: "onWithTimedOff", ID: 0x42, parameters: [ { name: "ctrlbits", type: enums_1.DataType.UINT8 }, { name: "ontime", type: enums_1.DataType.UINT16 }, { name: "offwaittime", type: enums_1.DataType.UINT16 }, ], }, }, commandsResponse: {}, }, genOnOffSwitchCfg: { name: "genOnOffSwitchCfg", ID: 0x0007, attributes: { switchType: { name: "switchType", ID: 0x0000, type: enums_1.DataType.ENUM8, required: true, min: 0x00, max: 0x02 }, switchActions: { name: "switchActions", ID: 0x0010, type: enums_1.DataType.ENUM8, required: true, write: true, min: 0, max: 2 }, }, commands: {}, commandsResponse: {}, }, genLevelCtrl: { name: "genLevelCtrl", ID: 0x0008, attributes: { currentLevel: { name: "currentLevel", ID: 0x0000, type: enums_1.DataType.UINT8, report: true, scene: true, required: true, default: 0xff, // for genLevelCtrlForLighting: // min: 1, // max: 0xfe, }, remainingTime: { name: "remainingTime", ID: 0x0001, type: enums_1.DataType.UINT16, max: 0xffff, default: 0 }, minLevel: { name: "minLevel", ID: 0x0002, type: enums_1.DataType.UINT8, default: 0 }, maxLevel: { name: "maxLevel", ID: 0x0003, type: enums_1.DataType.UINT8, max: 0xff, default: 0xff }, currentFrequency: { name: "currentFrequency", ID: 0x0004, type: enums_1.DataType.UINT16, report: true, default: 0 }, minFrequency: { name: "minFrequency", ID: 0x0005, type: enums_1.DataType.UINT16, default: 0 }, maxFrequency: { name: "maxFrequency", ID: 0x0006, type: enums_1.DataType.UINT16, max: 0xffff, default: 0 }, options: { name: "options", ID: 0x000f, type: enums_1.DataType.BITMAP8, write: true, default: 0 }, onOffTransitionTime: { name: "onOffTransitionTime", ID: 0x0010, type: enums_1.DataType.UINT16, write: true, max: 0xffff, default: 0 }, onLevel: { name: "onLevel", ID: 0x0011, type: enums_1.DataType.UINT8, write: true, default: 0xff }, onTransitionTime: { name: "onTransitionTime", ID: 0x0012, type: enums_1.DataType.UINT16, write: true, max: 0xfffe, default: 0xffff }, offTransitionTime: { name: "offTransitionTime", ID: 0x0013, type: enums_1.DataType.UINT16, write: true, max: 0xfffe, default: 0xffff }, defaultMoveRate: { name: "defaultMoveRate", ID: 0x0014, type: enums_1.DataType.UINT8, write: true, max: 0xfe }, startUpCurrentLevel: { name: "startUpCurrentLevel", ID: 0x4000, type: enums_1.DataType.UINT8, write: true, max: 0xff, special: [ ["MinimumDeviceValuePermitted", "00"], ["SetToPreviousValue", "ff"], ], }, }, commands: { moveToLevel: { name: "moveToLevel", ID: 0x00, parameters: [ { name: "level", type: enums_1.DataType.UINT8 }, { name: "transtime", type: enums_1.DataType.UINT16 }, // XXX: behind bytes condition due to likely missing fields with many devices { name: "optionsMask", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }] }, { name: "optionsOverride", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }], }, ], required: true, }, move: { name: "move", ID: 0x01, parameters: [ { name: "movemode", type: enums_1.DataType.ENUM8 }, { name: "rate", type: enums_1.DataType.UINT8 }, // XXX: behind bytes condition due to likely missing fields with many devices { name: "optionsMask", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }] }, { name: "optionsOverride", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }], }, ], required: true, }, step: { name: "step", ID: 0x02, parameters: [ { name: "stepmode", type: enums_1.DataType.ENUM8 }, { name: "stepsize", type: enums_1.DataType.UINT8 }, { name: "transtime", type: enums_1.DataType.UINT16 }, // XXX: behind bytes condition due to likely missing fields with many devices { name: "optionsMask", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }] }, { name: "optionsOverride", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }], }, ], required: true, }, stop: { name: "stop", ID: 0x03, parameters: [ // XXX: behind bytes condition due to likely missing fields with many devices { name: "optionsMask", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }] }, { name: "optionsOverride", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }], }, ], required: true, }, moveToLevelWithOnOff: { name: "moveToLevelWithOnOff", ID: 0x04, parameters: [ { name: "level", type: enums_1.DataType.UINT8 }, { name: "transtime", type: enums_1.DataType.UINT16 }, // XXX: behind bytes condition due to likely missing fields with many devices { name: "optionsMask", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }] }, { name: "optionsOverride", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }], }, ], required: true, }, moveWithOnOff: { name: "moveWithOnOff", ID: 0x05, parameters: [ { name: "movemode", type: enums_1.DataType.ENUM8 }, { name: "rate", type: enums_1.DataType.UINT8 }, // XXX: behind bytes condition due to likely missing fields with many devices { name: "optionsMask", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }] }, { name: "optionsOverride", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }], }, ], required: true, }, stepWithOnOff: { name: "stepWithOnOff", ID: 0x06, parameters: [ { name: "stepmode", type: enums_1.DataType.ENUM8 }, { name: "stepsize", type: enums_1.DataType.UINT8 }, { name: "transtime", type: enums_1.DataType.UINT16 }, // XXX: behind bytes condition due to likely missing fields with many devices { name: "optionsMask", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }] }, { name: "optionsOverride", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }], }, ], required: true, }, stopWithOnOff: { name: "stopWithOnOff", ID: 0x07, parameters: [ // XXX: behind bytes condition due to likely missing fields with many devices { name: "optionsMask", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }] }, { name: "optionsOverride", type: enums_1.DataType.BITMAP8, conditions: [{ type: enums_1.ParameterCondition.MINIMUM_REMAINING_BUFFER_BYTES, value: 1 }], }, ], required: true, }, // only `required: true` if `currentFrequency` attribute supported moveToClosestFrequency: { name: "moveToClosestFrequency", ID: 0x08, parameters: [{ name: "frequency", type: enums_1.DataType.UINT16 }] }, }, commandsResponse: {}, }, genAlarms: { name: "genAlarms", ID: 0x0009, attributes: { alarmCount: { name: "alarmCount", ID: 0x0000, type: enums_1.DataType.UINT16, max: 0xffff, default: 0 }, }, commands: { reset: { name: "reset", ID: 0x00, parameters: [ { name: "alarmcode", type: enums_1.DataType.ENUM8 }, { name: "clusterid", type: enums_1.DataType.CLUSTER_ID }, ], required: true, }, resetAll: { name: "resetAll", ID: 0x01, parameters: [], required: true }, getAlarm: { name: "getAlarm", ID: 0x02, parameters: [] }, resetLog: { name: "resetLog", ID: 0x03, parameters: [] }, }, commandsResponse: { alarm: { name: "alarm", ID: 0x00, parameters: [ { name: "alarmcode", type: enums_1.DataType.ENUM8 }, { name: "clusterid", type: enums_1.DataType.CLUSTER_ID }, ], required: true, }, getRsp: { name: "getRsp", ID: 0x01, parameters: [ { name: "status", type: enums_1.DataType.ENUM8 }, { name: "alarmcode", type: enums_1.DataType.ENUM8, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, { name: "clusterid", type: enums_1.DataType.CLUSTER_ID, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, { name: "timestamp", type: enums_1.DataType.UINT32, conditions: [{ type: enums_1.ParameterCondition.FIELD_EQUAL, field: "status", value: status_1.Status.SUCCESS }], }, ], }, }, }, genTime: { name: "genTime", ID: 0x000a, attributes: { time: { name: "time", ID: 0x0000, type: enums_1.DataType.UTC, write: true, required: true, max: 0xfffffffe, default: 0xffffffff }, timeStatus: { name: "timeStatus", ID: 0x0001, type: enums_1.DataType.BITMAP8, write: true, required: true, default: 0 }, timeZone: { name: "timeZone", ID: 0x0002, type: enums_1.DataType.INT32, write: true, min: -86400, max: 86400, default: 0 }, dstStart: { name: "dstStart", ID: 0x0003, type: enums_1.DataType.UINT32, write: true, max: 0xfffffffe, default: 0xffffffff }, dstEnd: { name: "dstEnd", ID: 0x0004, type: enums_1.DataType.UINT32, write: true, max: 0xfffffffe, default: 0xffffffff }, dstShift: { name: "dstShift", ID: 0x0005, type: enums_1.DataType.INT32, write: true, min: -86400, max: 86400, default: 0 }, standardTime: { name: "standardTime", ID: 0x0006, type: enums_1.DataType.UINT32, max: 0xfffffffe, default: 0xffffffff }, localTime: { name: "localTime", ID: 0x0007, type: enums_1.DataType.UINT32, max: 0xfffffffe, default: 0xffffffff }, lastSetTime: { name: "lastSetTime", ID: 0x0008, type: enums_1.DataType.UTC, default: 0xffffffff }, validUntilTime: { name: "validUntilTime", ID: 0x0009, type: enums_1.DataType.UTC, write: true, default: 0xffffffff }, }, commands: {}, commandsResponse: {}, }, genRssiLocation: { name: "genRssiLocation", ID: 0x000b, attributes: { /** [2: coordinator system, 1: 2-D, 1: absolute] */ type: { name: "type", ID: 0x0000, type: enums_1.DataType.DATA8, required: true, write: true }, method: { name: "method", ID: 0x0001, type: enums_1.DataType.ENUM8, required: true, write: true }, age: { name: "age", ID: 0x0002, type: enums_1.DataType.UINT16, max: 0xffff }, qualityMeasure: { name: "qualityMeasure", ID: 0x0003, type: enums_1.DataType.UINT8, max: 100 }, numOfDevices: { name: "numOfDevices", ID: 0x0004, type: enums_1.DataType.UINT8, max: 0xff }, coordinate1: { name: "coordinate1", ID: 0x0010, type: enums_1.DataType.INT16, required: true, write: true, min: -0x8000, max: 0x7fff }, coordinate2: { name: "coordinate2", ID: 0x0011, type: enums_1.DataType.INT16, required: true, write: true, min: -0x8000, max: 0x7fff }, coordinate3: { name: "coordinate3", ID: 0x0012, type: enums_1.DataType.INT16, write: true, min: -0x8000, max: 0x7fff }, power: { name: "power", ID: 0x0013, type: enums_1.DataType.INT16, required: true, write: true, min: -0x8000, max: 0x7fff }, pathLossExponent: { name: "pathLossExponent", ID: 0x0014, type: enums_1.DataType.UINT16, required: true, write: true }, reportingPeriod: { name: "reportingPeriod", ID: 0x0015, type: enums_1.DataType.UINT16, write: true, max: 0xffff }, calcPeriod: { name: "calcPeriod", ID: 0x0016, type: enums_1.DataType.UINT16, write: true, max: 0xffff }, numRSSIMeasurements: { name: "numRSSIMeasurements", ID: 0x0017, type: enums_1.DataType.UINT8, required: true, write: true, min: 0x01, max: 0xff }, }, commands: { setAbsolute: { name: "setAbsolute", ID: 0x00, parameters: [ { name: "coordinate1", type: enums_1.DataType.INT16 }, { name: "coordinate2", type: enums_1.DataType.INT16 }, { name: "coordinate3", type: enums_1.DataType.INT16 }, { name: "power", type: enums_1.DataType.INT16 }, { name: "pathLossExponent", type: enums_1.DataType.UINT16 }, ], required: true, }, setDeviceConfig: { name: "setDeviceConfig", ID: 0x01, parameters: [ { name: "power", type: enums_1.DataType.INT16 }, { name: "pathLossExponent", type: enums_1.DataType.UINT16 }, { name: "calcPeriod", type: enums_1.DataType.UINT16 }, { name: "numRssiMeasurements", type: enums_1.DataType.UINT8 }, { name: "reportingPeriod", type: enums_1.DataType.UINT16 }, ], required: true, }, getDeviceConfig: { name: "getDeviceConfig", ID: 0x02, parameters: [{ name: "targetAddr", type: enums_1.DataType.IEEE_ADDR }], required: true }, getLocationData: { name: "getLocationData", ID: 0x03, parameters: [ /** [3: reserved, 1: compactResponse, 1: broadcastResponse, 1: broadcastIndicator, 1: recalculate, 1: absoluteOnly] */ { name: "info", type: enums_1.DataType.BITMAP8 }, { name: "numResponses", type: enums_1.DataType.UINT8 }, {