zigbee-herdsman
Version:
An open source Zigbee gateway solution with node.js.
967 lines (966 loc) • 433 kB
JavaScript
"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 },
{