UNPKG

zigbee-herdsman

Version:

An open source ZigBee gateway solution with node.js.

1,209 lines (1,208 loc) 239 kB
import {BuffaloZclDataType, DataType, ParameterCondition} from "./enums"; import {ManufacturerCode} from "./manufacturerCode"; import {Status} from "./status"; import type {ClusterDefinition, ClusterName} from "./tstype"; export const Clusters: Readonly<Record<ClusterName, Readonly<ClusterDefinition>>> = { genBasic: { ID: 0, attributes: { zclVersion: {ID: 0, type: DataType.UINT8}, appVersion: {ID: 1, type: DataType.UINT8}, stackVersion: {ID: 2, type: DataType.UINT8}, hwVersion: {ID: 3, type: DataType.UINT8}, manufacturerName: {ID: 4, type: DataType.CHAR_STR}, modelId: {ID: 5, type: DataType.CHAR_STR}, dateCode: {ID: 6, type: DataType.CHAR_STR}, powerSource: {ID: 7, type: DataType.ENUM8}, appProfileVersion: {ID: 8, type: DataType.ENUM8}, genericDeviceType: {ID: 9, type: DataType.ENUM8}, productCode: {ID: 10, type: DataType.OCTET_STR}, productUrl: {ID: 11, type: DataType.CHAR_STR}, manufacturerVersionDetails: {ID: 12, type: DataType.CHAR_STR}, serialNumber: {ID: 13, type: DataType.CHAR_STR}, productLabel: {ID: 14, type: DataType.CHAR_STR}, locationDesc: {ID: 16, type: DataType.CHAR_STR}, physicalEnv: {ID: 17, type: DataType.ENUM8}, deviceEnabled: {ID: 18, type: DataType.BOOLEAN}, alarmMask: {ID: 19, type: DataType.BITMAP8}, disableLocalConfig: {ID: 20, type: DataType.BITMAP8}, swBuildId: {ID: 0x4000, type: DataType.CHAR_STR}, schneiderMeterRadioPower: {ID: 0xe200, type: DataType.INT8, manufacturerCode: ManufacturerCode.SCHNEIDER_ELECTRIC}, }, commands: { resetFactDefault: { ID: 0, parameters: [], }, tuyaSetup: { ID: 0xf0, parameters: [], }, }, commandsResponse: {}, }, genPowerCfg: { ID: 1, attributes: { mainsVoltage: {ID: 0, type: DataType.UINT16}, mainsFrequency: {ID: 1, type: DataType.UINT8}, mainsAlarmMask: {ID: 16, type: DataType.BITMAP8}, mainsVoltMinThres: {ID: 17, type: DataType.UINT16}, mainsVoltMaxThres: {ID: 18, type: DataType.UINT16}, mainsVoltageDwellTripPoint: {ID: 19, type: DataType.UINT16}, batteryVoltage: {ID: 32, type: DataType.UINT8}, batteryPercentageRemaining: {ID: 33, type: DataType.UINT8}, batteryManufacturer: {ID: 48, type: DataType.CHAR_STR}, batterySize: {ID: 49, type: DataType.ENUM8}, batteryAHrRating: {ID: 50, type: DataType.UINT16}, batteryQuantity: {ID: 51, type: DataType.UINT8}, batteryRatedVoltage: {ID: 52, type: DataType.UINT8}, batteryAlarmMask: {ID: 53, type: DataType.BITMAP8}, batteryVoltMinThres: {ID: 54, type: DataType.UINT8}, batteryVoltThres1: {ID: 55, type: DataType.UINT8}, batteryVoltThres2: {ID: 56, type: DataType.UINT8}, batteryVoltThres3: {ID: 57, type: DataType.UINT8}, batteryPercentMinThres: {ID: 58, type: DataType.UINT8}, batteryPercentThres1: {ID: 59, type: DataType.UINT8}, batteryPercentThres2: {ID: 60, type: DataType.UINT8}, batteryPercentThres3: {ID: 61, type: DataType.UINT8}, batteryAlarmState: {ID: 62, type: DataType.BITMAP32}, }, commands: {}, commandsResponse: {}, }, genDeviceTempCfg: { ID: 2, attributes: { currentTemperature: {ID: 0, type: DataType.INT16}, minTempExperienced: {ID: 1, type: DataType.INT16}, maxTempExperienced: {ID: 2, type: DataType.INT16}, overTempTotalDwell: {ID: 3, type: DataType.UINT16}, devTempAlarmMask: {ID: 16, type: DataType.BITMAP8}, lowTempThres: {ID: 17, type: DataType.INT16}, highTempThres: {ID: 18, type: DataType.INT16}, lowTempDwellTripPoint: {ID: 19, type: DataType.UINT24}, highTempDwellTripPoint: {ID: 20, type: DataType.UINT24}, }, commands: {}, commandsResponse: {}, }, genIdentify: { ID: 3, attributes: { identifyTime: {ID: 0, type: DataType.UINT16}, identifyCommissionState: {ID: 1, type: DataType.UNKNOWN}, }, commands: { identify: { ID: 0, parameters: [{name: "identifytime", type: DataType.UINT16}], }, identifyQuery: { ID: 1, parameters: [], }, ezmodeInvoke: { ID: 2, parameters: [{name: "action", type: DataType.UINT8}], }, updateCommissionState: { ID: 3, parameters: [ {name: "action", type: DataType.UINT8}, {name: "commstatemask", type: DataType.UINT8}, ], }, triggerEffect: { ID: 64, parameters: [ {name: "effectid", type: DataType.UINT8}, {name: "effectvariant", type: DataType.UINT8}, ], }, }, commandsResponse: { identifyQueryRsp: { ID: 0, parameters: [{name: "timeout", type: DataType.UINT16}], }, }, }, genGroups: { ID: 4, attributes: { nameSupport: {ID: 0, type: DataType.BITMAP8}, }, commands: { add: { ID: 0, response: 0, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "groupname", type: DataType.CHAR_STR}, ], }, view: { ID: 1, response: 1, parameters: [{name: "groupid", type: DataType.UINT16}], }, getMembership: { ID: 2, response: 2, parameters: [ {name: "groupcount", type: DataType.UINT8}, {name: "grouplist", type: BuffaloZclDataType.LIST_UINT16}, ], }, remove: { ID: 3, response: 3, parameters: [{name: "groupid", type: DataType.UINT16}], }, removeAll: { ID: 4, parameters: [], }, addIfIdentifying: { ID: 5, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "groupname", type: DataType.CHAR_STR}, ], }, miboxerSetZones: { ID: 0xf0, parameters: [{name: "zones", type: BuffaloZclDataType.LIST_MIBOXER_ZONES}], }, }, commandsResponse: { addRsp: { ID: 0, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, ], }, viewRsp: { ID: 1, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, {name: "groupname", type: DataType.CHAR_STR}, ], }, getMembershipRsp: { ID: 2, parameters: [ {name: "capacity", type: DataType.UINT8}, {name: "groupcount", type: DataType.UINT8}, {name: "grouplist", type: BuffaloZclDataType.LIST_UINT16}, ], }, removeRsp: { ID: 3, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, ], }, }, }, genScenes: { ID: 5, attributes: { count: {ID: 0, type: DataType.UINT8}, currentScene: {ID: 1, type: DataType.UINT8}, currentGroup: {ID: 2, type: DataType.UINT16}, sceneValid: {ID: 3, type: DataType.BOOLEAN}, nameSupport: {ID: 4, type: DataType.BITMAP8}, lastCfgBy: {ID: 5, type: DataType.IEEE_ADDR}, }, commands: { add: { ID: 0, response: 0, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, {name: "transtime", type: DataType.UINT16}, {name: "scenename", type: DataType.CHAR_STR}, {name: "extensionfieldsets", type: BuffaloZclDataType.EXTENSION_FIELD_SETS}, ], }, view: { ID: 1, response: 1, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, ], }, remove: { ID: 2, response: 2, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, ], }, removeAll: { ID: 3, response: 3, parameters: [{name: "groupid", type: DataType.UINT16}], }, store: { ID: 4, response: 4, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, ], }, recall: { ID: 5, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, ], }, getSceneMembership: { ID: 6, response: 6, parameters: [{name: "groupid", type: DataType.UINT16}], }, enhancedAdd: { ID: 64, response: 64, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, {name: "transtime", type: DataType.UINT16}, {name: "scenename", type: DataType.CHAR_STR}, {name: "extensionfieldsets", type: BuffaloZclDataType.EXTENSION_FIELD_SETS}, ], }, enhancedView: { ID: 65, response: 65, parameters: [ {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, ], }, copy: { ID: 66, response: 66, parameters: [ {name: "mode", type: DataType.UINT8}, {name: "groupidfrom", type: DataType.UINT16}, {name: "sceneidfrom", type: DataType.UINT8}, {name: "groupidto", type: DataType.UINT16}, {name: "sceneidto", type: DataType.UINT8}, ], }, tradfriArrowSingle: { ID: 7, parameters: [ {name: "value", type: DataType.UINT16}, {name: "value2", type: DataType.UINT16}, ], }, tradfriArrowHold: { ID: 8, parameters: [{name: "value", type: DataType.UINT16}], }, tradfriArrowRelease: { ID: 9, parameters: [{name: "value", type: DataType.UINT16}], }, }, commandsResponse: { addRsp: { ID: 0, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupId", type: DataType.UINT16}, {name: "sceneId", type: DataType.UINT8}, ], }, viewRsp: { ID: 1, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, {name: "transtime", type: DataType.UINT16, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, {name: "scenename", type: DataType.CHAR_STR, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, { name: "extensionfieldsets", type: BuffaloZclDataType.EXTENSION_FIELD_SETS, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}], }, ], }, removeRsp: { ID: 2, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, ], }, removeAllRsp: { ID: 3, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, ], }, storeRsp: { ID: 4, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, ], }, getSceneMembershipRsp: { ID: 6, parameters: [ {name: "status", type: DataType.UINT8}, {name: "capacity", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, {name: "scenecount", type: DataType.UINT8, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, { name: "scenelist", type: BuffaloZclDataType.LIST_UINT8, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}], }, ], }, enhancedAddRsp: { ID: 64, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupId", type: DataType.UINT16}, {name: "sceneId", type: DataType.UINT8}, ], }, enhancedViewRsp: { ID: 65, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupid", type: DataType.UINT16}, {name: "sceneid", type: DataType.UINT8}, {name: "transtime", type: DataType.UINT16, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, {name: "scenename", type: DataType.CHAR_STR, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, { name: "extensionfieldsets", type: BuffaloZclDataType.EXTENSION_FIELD_SETS, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}], }, ], }, copyRsp: { ID: 66, parameters: [ {name: "status", type: DataType.UINT8}, {name: "groupidfrom", type: DataType.UINT16}, {name: "sceneidfrom", type: DataType.UINT8}, ], }, }, }, genOnOff: { ID: 6, attributes: { onOff: {ID: 0, type: DataType.BOOLEAN}, globalSceneCtrl: {ID: 16384, type: DataType.BOOLEAN}, onTime: {ID: 16385, type: DataType.UINT16}, offWaitTime: {ID: 16386, type: DataType.UINT16}, startUpOnOff: {ID: 16387, type: DataType.ENUM8}, tuyaBacklightSwitch: {ID: 0x5000, type: DataType.ENUM8}, tuyaBacklightMode: {ID: 0x8001, type: DataType.ENUM8}, moesStartUpOnOff: {ID: 0x8002, type: DataType.ENUM8}, tuyaOperationMode: {ID: 0x8004, type: DataType.ENUM8}, elkoPreWarningTime: {ID: 0xe000, type: DataType.UINT16, manufacturerCode: ManufacturerCode.ADEO}, elkoOnTimeReload: {ID: 0xe001, type: DataType.UINT32, manufacturerCode: ManufacturerCode.ADEO}, elkoOnTimeReloadOptions: {ID: 0xe002, type: DataType.BITMAP8, manufacturerCode: ManufacturerCode.ADEO}, nodonTransitionTime: {ID: 0x0001, type: DataType.UINT16, manufacturerCode: ManufacturerCode.NODON}, }, commands: { off: { ID: 0, parameters: [], }, on: { ID: 1, parameters: [], }, toggle: { ID: 2, parameters: [], }, offWithEffect: { ID: 64, parameters: [ {name: "effectid", type: DataType.UINT8}, {name: "effectvariant", type: DataType.UINT8}, ], }, onWithRecallGlobalScene: { ID: 65, parameters: [], }, onWithTimedOff: { ID: 66, parameters: [ {name: "ctrlbits", type: DataType.UINT8}, {name: "ontime", type: DataType.UINT16}, {name: "offwaittime", type: DataType.UINT16}, ], }, tuyaAction: { ID: 0xfd, parameters: [ {name: "value", type: DataType.UINT8}, {name: "data", type: BuffaloZclDataType.BUFFER}, ], }, tuyaAction2: { ID: 0xfc, parameters: [{name: "value", type: DataType.UINT8}], }, }, commandsResponse: {}, }, genOnOffSwitchCfg: { ID: 7, attributes: { switchType: {ID: 0, type: DataType.ENUM8}, switchMultiFunction: {ID: 2, type: DataType.UNKNOWN}, switchActions: {ID: 16, type: DataType.ENUM8}, }, commands: {}, commandsResponse: {}, }, genLevelCtrl: { ID: 8, attributes: { currentLevel: {ID: 0, type: DataType.UINT8}, remainingTime: {ID: 1, type: DataType.UINT16}, minLevel: {ID: 2, type: DataType.UINT8}, maxLevel: {ID: 3, type: DataType.UINT8}, options: {ID: 15, type: DataType.BITMAP8}, onOffTransitionTime: {ID: 16, type: DataType.UINT16}, onLevel: {ID: 17, type: DataType.UINT8}, onTransitionTime: {ID: 18, type: DataType.UINT16}, offTransitionTime: {ID: 19, type: DataType.UINT16}, defaultMoveRate: {ID: 20, type: DataType.UINT16}, startUpCurrentLevel: {ID: 16384, type: DataType.UINT8}, elkoStartUpCurrentLevel: {ID: 0x4000, type: DataType.UINT8, manufacturerCode: ManufacturerCode.ADEO}, }, commands: { moveToLevel: { ID: 0, parameters: [ {name: "level", type: DataType.UINT8}, {name: "transtime", type: DataType.UINT16}, ], }, move: { ID: 1, parameters: [ {name: "movemode", type: DataType.UINT8}, {name: "rate", type: DataType.UINT8}, ], }, step: { ID: 2, parameters: [ {name: "stepmode", type: DataType.UINT8}, {name: "stepsize", type: DataType.UINT8}, {name: "transtime", type: DataType.UINT16}, ], }, stop: { ID: 3, parameters: [], }, moveToLevelWithOnOff: { ID: 4, parameters: [ {name: "level", type: DataType.UINT8}, {name: "transtime", type: DataType.UINT16}, ], }, moveWithOnOff: { ID: 5, parameters: [ {name: "movemode", type: DataType.UINT8}, {name: "rate", type: DataType.UINT8}, ], }, stepWithOnOff: { ID: 6, parameters: [ {name: "stepmode", type: DataType.UINT8}, {name: "stepsize", type: DataType.UINT8}, {name: "transtime", type: DataType.UINT16}, ], }, stopWithOnOff: { ID: 7, parameters: [], }, moveToLevelTuya: { ID: 240, parameters: [ {name: "level", type: DataType.UINT16}, {name: "transtime", type: DataType.UINT16}, ], }, }, commandsResponse: {}, }, genAlarms: { ID: 9, attributes: { alarmCount: {ID: 0, type: DataType.UINT16}, }, commands: { reset: { ID: 0, parameters: [ {name: "alarmcode", type: DataType.UINT8}, {name: "clusterid", type: DataType.UINT16}, ], }, resetAll: { ID: 1, parameters: [], }, getAlarm: { ID: 2, parameters: [], }, resetLog: { ID: 3, parameters: [], }, publishEventLog: { ID: 4, parameters: [], }, }, commandsResponse: { alarm: { ID: 0, parameters: [ {name: "alarmcode", type: DataType.UINT8}, {name: "clusterid", type: DataType.UINT16}, ], }, getRsp: { ID: 1, parameters: [ {name: "status", type: DataType.UINT8}, {name: "alarmcode", type: DataType.UINT8}, {name: "clusterid", type: DataType.UINT16}, {name: "timestamp", type: DataType.UINT32}, ], }, getEventLog: { ID: 2, parameters: [], }, }, }, genTime: { ID: 10, attributes: { time: {ID: 0, type: DataType.UTC}, timeStatus: {ID: 1, type: DataType.BITMAP8}, timeZone: {ID: 2, type: DataType.INT32}, dstStart: {ID: 3, type: DataType.UINT32}, dstEnd: {ID: 4, type: DataType.UINT32}, dstShift: {ID: 5, type: DataType.INT32}, standardTime: {ID: 6, type: DataType.UINT32}, localTime: {ID: 7, type: DataType.UINT32}, lastSetTime: {ID: 8, type: DataType.UTC}, validUntilTime: {ID: 9, type: DataType.UTC}, }, commands: {}, commandsResponse: {}, }, genRssiLocation: { ID: 11, attributes: { type: {ID: 0, type: DataType.DATA8}, method: {ID: 1, type: DataType.ENUM8}, age: {ID: 2, type: DataType.UINT16}, qualityMeasure: {ID: 3, type: DataType.UINT8}, numOfDevices: {ID: 4, type: DataType.UINT8}, coordinate1: {ID: 16, type: DataType.INT16}, coordinate2: {ID: 17, type: DataType.INT16}, coordinate3: {ID: 18, type: DataType.INT16}, power: {ID: 19, type: DataType.INT16}, pathLossExponent: {ID: 20, type: DataType.UINT16}, reportingPeriod: {ID: 21, type: DataType.UINT16}, calcPeriod: {ID: 22, type: DataType.UINT16}, numRSSIMeasurements: {ID: 23, type: DataType.UINT16}, }, commands: { setAbsolute: { ID: 0, parameters: [ {name: "coord1", type: DataType.INT16}, {name: "coord2", type: DataType.INT16}, {name: "coord3", type: DataType.INT16}, {name: "power", type: DataType.INT16}, {name: "pathlossexponent", type: DataType.UINT16}, ], }, setDevCfg: { ID: 1, parameters: [ {name: "power", type: DataType.INT16}, {name: "pathlossexponent", type: DataType.UINT16}, {name: "calperiod", type: DataType.UINT16}, {name: "numrssimeasurements", type: DataType.UINT8}, {name: "reportingperiod", type: DataType.UINT16}, ], }, getDevCfg: { ID: 2, parameters: [{name: "targetaddr", type: DataType.IEEE_ADDR}], }, getData: { ID: 3, parameters: [ {name: "getdatainfo", type: DataType.UINT8}, {name: "numrsp", type: DataType.UINT8}, {name: "targetaddr", type: DataType.IEEE_ADDR}, ], }, }, commandsResponse: { devCfgRsp: { ID: 0, parameters: [ {name: "status", type: DataType.UINT8}, {name: "power", type: DataType.INT16}, {name: "pathlossexp", type: DataType.UINT16}, {name: "calperiod", type: DataType.UINT16}, {name: "numrssimeasurements", type: DataType.UINT8}, {name: "reportingperiod", type: DataType.UINT16}, ], }, dataRsp: { ID: 1, parameters: [ {name: "status", type: DataType.UINT8}, {name: "locationtype", type: DataType.UINT8}, {name: "coord1", type: DataType.INT16}, {name: "coord2", type: DataType.INT16}, {name: "coord3", type: DataType.INT16}, {name: "power", type: DataType.INT16}, {name: "pathlossexp", type: DataType.UINT16}, {name: "locationmethod", type: DataType.UINT8}, {name: "qualitymeasure", type: DataType.UINT8}, {name: "locationage", type: DataType.UINT16}, ], }, dataNotif: { ID: 2, parameters: [ {name: "locationtype", type: DataType.UINT8}, {name: "coord1", type: DataType.INT16}, {name: "coord2", type: DataType.INT16}, {name: "coord3", type: DataType.INT16}, {name: "power", type: DataType.INT16}, {name: "pathlossexp", type: DataType.UINT16}, {name: "locationmethod", type: DataType.UINT8}, {name: "qualitymeasure", type: DataType.UINT8}, {name: "locationage", type: DataType.UINT16}, ], }, compactDataNotif: { ID: 3, parameters: [ {name: "locationtype", type: DataType.UINT8}, {name: "coord1", type: DataType.INT16}, {name: "coord2", type: DataType.INT16}, {name: "coord3", type: DataType.INT16}, {name: "qualitymeasure", type: DataType.UINT8}, {name: "locationage", type: DataType.UINT16}, ], }, rssiPing: { ID: 4, parameters: [{name: "locationtype", type: DataType.UINT8}], }, }, }, genAnalogInput: { ID: 12, attributes: { description: {ID: 28, type: DataType.CHAR_STR}, maxPresentValue: {ID: 65, type: DataType.SINGLE_PREC}, minPresentValue: {ID: 69, type: DataType.SINGLE_PREC}, outOfService: {ID: 81, type: DataType.BOOLEAN}, presentValue: {ID: 85, type: DataType.SINGLE_PREC}, reliability: {ID: 103, type: DataType.ENUM8}, resolution: {ID: 106, type: DataType.SINGLE_PREC}, statusFlags: {ID: 111, type: DataType.BITMAP8}, engineeringUnits: {ID: 117, type: DataType.ENUM16}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genAnalogOutput: { ID: 13, attributes: { description: {ID: 28, type: DataType.CHAR_STR}, maxPresentValue: {ID: 65, type: DataType.SINGLE_PREC}, minPresentValue: {ID: 69, type: DataType.SINGLE_PREC}, outOfService: {ID: 81, type: DataType.BOOLEAN}, presentValue: {ID: 85, type: DataType.SINGLE_PREC}, priorityArray: {ID: 87, type: DataType.ARRAY}, reliability: {ID: 103, type: DataType.ENUM8}, relinquishDefault: {ID: 104, type: DataType.SINGLE_PREC}, resolution: {ID: 106, type: DataType.SINGLE_PREC}, statusFlags: {ID: 111, type: DataType.BITMAP8}, engineeringUnits: {ID: 117, type: DataType.ENUM16}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genAnalogValue: { ID: 14, attributes: { description: {ID: 28, type: DataType.CHAR_STR}, outOfService: {ID: 81, type: DataType.BOOLEAN}, presentValue: {ID: 85, type: DataType.SINGLE_PREC}, priorityArray: {ID: 87, type: DataType.ARRAY}, reliability: {ID: 103, type: DataType.ENUM8}, relinquishDefault: {ID: 104, type: DataType.SINGLE_PREC}, statusFlags: {ID: 111, type: DataType.BITMAP8}, engineeringUnits: {ID: 117, type: DataType.ENUM16}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genBinaryInput: { ID: 15, attributes: { activeText: {ID: 4, type: DataType.CHAR_STR}, description: {ID: 28, type: DataType.CHAR_STR}, inactiveText: {ID: 46, type: DataType.CHAR_STR}, outOfService: {ID: 81, type: DataType.BOOLEAN}, polarity: {ID: 84, type: DataType.ENUM8}, presentValue: {ID: 85, type: DataType.BOOLEAN}, reliability: {ID: 103, type: DataType.ENUM8}, statusFlags: {ID: 111, type: DataType.BITMAP8}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genBinaryOutput: { ID: 16, attributes: { activeText: {ID: 4, type: DataType.CHAR_STR}, description: {ID: 28, type: DataType.CHAR_STR}, inactiveText: {ID: 46, type: DataType.CHAR_STR}, minimumOffTime: {ID: 66, type: DataType.UINT32}, minimumOnTime: {ID: 67, type: DataType.UINT32}, outOfService: {ID: 81, type: DataType.BOOLEAN}, polarity: {ID: 84, type: DataType.ENUM8}, presentValue: {ID: 85, type: DataType.BOOLEAN}, priorityArray: {ID: 87, type: DataType.ARRAY}, reliability: {ID: 103, type: DataType.ENUM8}, relinquishDefault: {ID: 104, type: DataType.BOOLEAN}, statusFlags: {ID: 111, type: DataType.BITMAP8}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genBinaryValue: { ID: 17, attributes: { activeText: {ID: 4, type: DataType.CHAR_STR}, description: {ID: 28, type: DataType.CHAR_STR}, inactiveText: {ID: 46, type: DataType.CHAR_STR}, minimumOffTime: {ID: 66, type: DataType.UINT32}, minimumOnTime: {ID: 67, type: DataType.UINT32}, outOfService: {ID: 81, type: DataType.BOOLEAN}, presentValue: {ID: 85, type: DataType.BOOLEAN}, priorityArray: {ID: 87, type: DataType.ARRAY}, reliability: {ID: 103, type: DataType.ENUM8}, relinquishDefault: {ID: 104, type: DataType.BOOLEAN}, statusFlags: {ID: 111, type: DataType.BITMAP8}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genMultistateInput: { ID: 18, attributes: { stateText: {ID: 14, type: DataType.ARRAY}, description: {ID: 28, type: DataType.CHAR_STR}, numberOfStates: {ID: 74, type: DataType.UINT16}, outOfService: {ID: 81, type: DataType.BOOLEAN}, presentValue: {ID: 85, type: DataType.UINT16}, reliability: {ID: 103, type: DataType.ENUM8}, statusFlags: {ID: 111, type: DataType.BITMAP8}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genMultistateOutput: { ID: 19, attributes: { stateText: {ID: 14, type: DataType.ARRAY}, description: {ID: 28, type: DataType.CHAR_STR}, numberOfStates: {ID: 74, type: DataType.UINT16}, outOfService: {ID: 81, type: DataType.BOOLEAN}, presentValue: {ID: 85, type: DataType.UINT16}, priorityArray: {ID: 87, type: DataType.ARRAY}, reliability: {ID: 103, type: DataType.ENUM8}, relinquishDefault: {ID: 104, type: DataType.UINT16}, statusFlags: {ID: 111, type: DataType.BITMAP8}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genMultistateValue: { ID: 20, attributes: { stateText: {ID: 14, type: DataType.ARRAY}, description: {ID: 28, type: DataType.CHAR_STR}, numberOfStates: {ID: 74, type: DataType.UINT16}, outOfService: {ID: 81, type: DataType.BOOLEAN}, presentValue: {ID: 85, type: DataType.UINT16}, priorityArray: {ID: 87, type: DataType.ARRAY}, reliability: {ID: 103, type: DataType.ENUM8}, relinquishDefault: {ID: 104, type: DataType.UINT16}, statusFlags: {ID: 111, type: DataType.BITMAP8}, applicationType: {ID: 256, type: DataType.UINT32}, }, commands: {}, commandsResponse: {}, }, genCommissioning: { ID: 21, attributes: { shortress: {ID: 0, type: DataType.UINT16}, extendedPANId: {ID: 1, type: DataType.IEEE_ADDR}, panId: {ID: 2, type: DataType.UINT16}, channelmask: {ID: 3, type: DataType.BITMAP32}, protocolVersion: {ID: 4, type: DataType.UINT8}, stackProfile: {ID: 5, type: DataType.UINT8}, startupControl: {ID: 6, type: DataType.ENUM8}, trustCenterress: {ID: 16, type: DataType.IEEE_ADDR}, trustCenterMasterKey: {ID: 17, type: DataType.SEC_KEY}, networkKey: {ID: 18, type: DataType.SEC_KEY}, useInsecureJoin: {ID: 19, type: DataType.BOOLEAN}, preconfiguredLinkKey: {ID: 20, type: DataType.SEC_KEY}, networkKeySeqNum: {ID: 21, type: DataType.UINT8}, networkKeyType: {ID: 22, type: DataType.ENUM8}, networkManagerress: {ID: 23, type: DataType.UINT16}, scanAttempts: {ID: 32, type: DataType.UINT8}, timeBetweenScans: {ID: 33, type: DataType.UINT16}, rejoinInterval: {ID: 34, type: DataType.UINT16}, maxRejoinInterval: {ID: 35, type: DataType.UINT16}, indirectPollRate: {ID: 48, type: DataType.UINT16}, parentRetryThreshold: {ID: 49, type: DataType.UINT8}, concentratorFlag: {ID: 64, type: DataType.BOOLEAN}, concentratorRus: {ID: 65, type: DataType.UINT8}, concentratorDiscoveryTime: {ID: 66, type: DataType.UINT8}, }, commands: { restartDevice: { ID: 0, parameters: [ {name: "options", type: DataType.UINT8}, {name: "delay", type: DataType.UINT8}, {name: "jitter", type: DataType.UINT8}, ], }, saveStartupParams: { ID: 1, parameters: [ {name: "options", type: DataType.UINT8}, {name: "index", type: DataType.UINT8}, ], }, restoreStartupParams: { ID: 2, parameters: [ {name: "options", type: DataType.UINT8}, {name: "index", type: DataType.UINT8}, ], }, resetStartupParams: { ID: 3, parameters: [ {name: "options", type: DataType.UINT8}, {name: "index", type: DataType.UINT8}, ], }, }, commandsResponse: { restartDeviceRsp: { ID: 0, parameters: [{name: "status", type: DataType.UINT8}], }, saveStartupParamsRsp: { ID: 1, parameters: [{name: "status", type: DataType.UINT8}], }, restoreStartupParamsRsp: { ID: 2, parameters: [{name: "status", type: DataType.UINT8}], }, resetStartupParamsRsp: { ID: 3, parameters: [{name: "status", type: DataType.UINT8}], }, }, }, genOta: { ID: 25, attributes: { upgradeServerId: {ID: 0, type: DataType.IEEE_ADDR}, fileOffset: {ID: 1, type: DataType.UINT32}, currentFileVersion: {ID: 2, type: DataType.UINT32}, currentZigbeeStackVersion: {ID: 3, type: DataType.UINT16}, downloadedFileVersion: {ID: 4, type: DataType.UINT32}, downloadedZigbeeStackVersion: {ID: 5, type: DataType.UINT16}, imageUpgradeStatus: {ID: 6, type: DataType.ENUM8}, manufacturerId: {ID: 7, type: DataType.UINT16}, imageTypeId: {ID: 8, type: DataType.UINT16}, minimumBlockReqDelay: {ID: 9, type: DataType.UINT16}, imageStamp: {ID: 10, type: DataType.UINT32}, }, commands: { queryNextImageRequest: { ID: 1, response: 2, parameters: [ {name: "fieldControl", type: DataType.UINT8}, {name: "manufacturerCode", type: DataType.UINT16}, {name: "imageType", type: DataType.UINT16}, {name: "fileVersion", type: DataType.UINT32}, ], }, imageBlockRequest: { ID: 3, response: 5, parameters: [ {name: "fieldControl", type: DataType.UINT8}, {name: "manufacturerCode", type: DataType.UINT16}, {name: "imageType", type: DataType.UINT16}, {name: "fileVersion", type: DataType.UINT32}, {name: "fileOffset", type: DataType.UINT32}, {name: "maximumDataSize", type: DataType.UINT8}, ], }, imagePageRequest: { ID: 4, response: 5, parameters: [ {name: "fieldControl", type: DataType.UINT8}, {name: "manufacturerCode", type: DataType.UINT16}, {name: "imageType", type: DataType.UINT16}, {name: "fileVersion", type: DataType.UINT32}, {name: "fileOffset", type: DataType.UINT32}, {name: "maximumDataSize", type: DataType.UINT8}, {name: "pageSize", type: DataType.UINT16}, {name: "responseSpacing", type: DataType.UINT16}, ], }, upgradeEndRequest: { ID: 6, response: 7, parameters: [ {name: "status", type: DataType.UINT8}, {name: "manufacturerCode", type: DataType.UINT16}, {name: "imageType", type: DataType.UINT16}, {name: "fileVersion", type: DataType.UINT32}, ], }, }, commandsResponse: { imageNotify: { ID: 0, parameters: [ {name: "payloadType", type: DataType.UINT8}, {name: "queryJitter", type: DataType.UINT8}, ], }, queryNextImageResponse: { ID: 2, parameters: [ {name: "status", type: DataType.UINT8}, {name: "manufacturerCode", type: DataType.UINT16, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, {name: "imageType", type: DataType.UINT16, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, {name: "fileVersion", type: DataType.UINT32, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, {name: "imageSize", type: DataType.UINT32, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]}, ], }, imageBlockResponse: { ID: 5, parameters: [ {name: "status", type: DataType.UINT8}, {name: "manufacturerCode", type: DataType.UINT16}, {name: "imageType", type: DataType.UINT16}, {name: "fileVersion", type: DataType.UINT32}, {name: "fileOffset", type: DataType.UINT32}, {name: "dataSize", type: DataType.UINT8}, {name: "data", type: BuffaloZclDataType.BUFFER}, ], }, upgradeEndResponse: { ID: 7, parameters: [ {name: "manufacturerCode", type: DataType.UINT16}, {name: "imageType", type: DataType.UINT16}, {name: "fileVersion", type: DataType.UINT32}, {name: "currentTime", type: DataType.UINT32}, {name: "upgradeTime", type: DataType.UINT32}, ], }, }, }, genPollCtrl: { ID: 32, attributes: { checkinInterval: {ID: 0, type: DataType.UINT32}, longPollInterval: {ID: 1, type: DataType.UINT32}, shortPollInterval: {ID: 2, type: DataType.UINT16}, fastPollTimeout: {ID: 3, type: DataType.UINT16}, checkinIntervalMin: {ID: 4, type: DataType.UINT32}, longPollIntervalMin: {ID: 5, type: DataType.UINT32}, fastPollTimeoutMax: {ID: 6, type: DataType.UINT16}, }, commands: { checkinRsp: { ID: 0, parameters: [ {name: "startFastPolling", type: DataType.BOOLEAN}, {name: "fastPollTimeout", type: DataType.UINT16}, ], }, fastPollStop: { ID: 1, parameters: [], }, setLongPollInterval: { ID: 2, parameters: [{name: "newLongPollInterval", type: DataType.UINT32}], }, setShortPollInterval: { ID: 3, parameters: [{name: "newShortPollInterval", type: DataType.UINT16}], }, }, commandsResponse: { checkin: { ID: 0, parameters: [], }, }, }, greenPower: { ID: 33, attributes: {}, commands: { notification: { ID: 0, parameters: [ {name: "options", type: DataType.BITMAP16}, { name: "srcID", type: DataType.UINT32, conditions: [{type: ParameterCondition.BITFIELD_ENUM, param: "options", offset: 0, size: 3, value: 0b000}], }, { name: "gpdIEEEAddr", type: DataType.IEEE_ADDR, conditions: [{type: ParameterCondition.BITFIELD_ENUM, param: "options", offset: 0, size: 3, value: 0b010}], }, { name: "gpdEndpoint", type: DataType.UINT8, conditions: [{type: ParameterCondition.BITFIELD_ENUM, param: "options", offset: 0, size: 3, value: 0b010}], }, {name: "frameCounter", type: DataType.UINT32}, {name: "commandID", type: DataType.UINT8}, {name: "payloadSize", type: DataType.UINT8}, { name: "commandFrame", type: BuffaloZclDataType.GPD_FRAME, // not parsing when FULLENCR (requires decryption first - then re-parsing) conditions: [{type: ParameterCondition.BITMASK_SET, param: "options", mask: 0xc0, reversed: true}], }, {name: "gppNwkAddr", type: DataType.UINT16, conditions: [{type: ParameterCondition.BITMASK_SET, param: "options", mask: 0x4000}]}, /** Bits: 0..5 RSSI 6..7 Link quality */ { name: "gppGpdLink", type: DataType.BITMAP8, conditions: [{type: ParameterCondition.BITMASK_SET, param: "options", mask: 0x4000}], }, ], }, commissioningNotification: { ID: 4, parameters: [ {name: "options", type: DataType.BITMAP16}, { name: "srcID", type: DataType.UINT32, conditions: [{type: ParameterCondition.BITFIELD_ENUM, param: "options", offset: 0, size: 3, value: 0b000}], }, { name: "gpdIEEEAddr", type: DataType.IEEE_ADDR, conditions: [{type: ParameterCondition.BITFIELD_ENUM, param: "options", offset: 0, size: 3, value: 0b010}], }, { name: "gpdEndpoint", type: DataType.UINT8, conditions: [{type: ParameterCondition.BITFIELD_ENUM, param: "options", offset: 0, size: 3, value: 0b010}], }, {name: "frameCounter", type: DataType.UINT32}, {name: "commandID", type: DataType.UINT8}, {name: "payloadSize", type: DataType.UINT8}, { name: "commandFrame", type: BuffaloZclDataType.GPD_FRAME, conditions: [ // not parsing when FULLENCR and "security failed" bit is set (requires decryption first - then re-parsing) {type: ParameterCondition.BITMASK_SET, param: "options", mask: 0x30, reversed: true}, {type: ParameterCondition.BITMASK_SET, param: "options", mask: 0x200, reversed: true}, ], }, {name: "gppNwkAddr", type: DataType.UINT16, conditions: [{type: ParameterCondition.BITMASK_SET, param: "options", mask: 0x800}]}, /** Bits: 0..5 RSSI 6..7 Link quality */ {name: "gppGpdLink", type: DataType.BITMAP8, conditions: [{type: ParameterCondition.BITMASK_SET, param: "options", mask: 0x800}]}, {name: "mic", type: DataType.UINT32, conditions: [{type: ParameterCondition.BITMASK_SET, param: "options", mask: 0x200}]}, ], }, }, commandsResponse: { response: { ID: 6, parameters: [ {name: "options", type: DataType.UINT8}, {name: "tempMaster", type: Da