zigbee-herdsman
Version:
An open source ZigBee gateway solution with node.js.
2,143 lines (2,128 loc) • 58.7 kB
text/typescript
/* v8 ignore start */
import {
Bool,
EmberAesMmoHashContext,
EmberApsFrame,
EmberBindingTableEntry,
EmberCertificate283k1Data,
EmberCertificateData,
EmberCounterType,
EmberCurrentSecurityState,
EmberDeviceUpdate,
EmberEUI64,
EmberEventUnits,
EmberGpAddress,
EmberGpKeyType,
EmberGpSecurityLevel,
EmberIncomingMessageType,
EmberInitialSecurityState,
EmberJoinDecision,
EmberKeyData,
EmberKeyStatus,
EmberKeyStruct,
EmberKeyType,
EmberLibraryStatus,
EmberMacPassthroughType,
EmberMessageDigest,
EmberMultiAddress,
EmberMulticastTableEntry,
EmberNeighborTableEntry,
EmberNeighbors,
EmberNetworkInitStruct /* Structs */,
EmberNetworkParameters,
EmberNetworkStatus,
EmberNodeDescriptor /* Named Types */,
EmberNodeId,
EmberNodeType,
EmberOutgoingMessageType,
EmberPanId,
EmberPrivateKeyData,
EmberPublicKey283k1Data,
EmberPublicKeyData,
EmberRouteTableEntry,
EmberRoutingTable,
EmberSecurityManagerContext,
EmberSecurityManagerNetworkKeyInfo,
EmberSignature283k1Data,
EmberSignatureData,
EmberSimpleDescriptor,
EmberSmacData,
EmberStackError,
EmberStatus,
EmberTokTypeStackZllData,
EmberTokTypeStackZllSecurity,
EmberZigbeeNetwork,
EmberZllAddressAssignment,
EmberZllDeviceInfoRecord,
EmberZllInitialSecurityState,
EmberZllNetwork,
EzspConfigId,
EzspDecisionId,
EzspExtendedValueId,
EzspMfgTokenId,
EzspNetworkScanType,
EzspPolicyId,
EzspStatus,
EzspValueId,
EzspZllNetworkOperation,
LVBytes,
SLStatus,
SecureEzspRandomNumber,
SecureEzspSecurityLevel,
SecureEzspSecurityType,
WordList,
fixed_list /* Basic Types */,
int8s,
uint8_t,
uint16_t,
uint32_t,
} from "./types";
export interface ParamsDesc {
// biome-ignore lint/suspicious/noExplicitAny: API
[s: string]: any;
}
export interface EZSPFrameDesc {
ID: number;
request?: ParamsDesc;
response?: ParamsDesc;
minV?: number;
maxV?: number;
}
export const FRAMES: {[key: string]: EZSPFrameDesc} = {
// Configuration Frames
version: {
ID: 0x0000,
request: {
desiredProtocolVersion: uint8_t,
},
response: {
protocolVersion: uint8_t,
stackType: uint8_t,
stackVersion: uint16_t,
},
},
getConfigurationValue: {
ID: 0x0052, // 82
request: {
configId: EzspConfigId,
},
response: {
status: EzspStatus,
value: uint16_t,
},
},
setConfigurationValue: {
ID: 0x0053, // 83
request: {
configId: EzspConfigId,
value: uint16_t,
},
response: {
status: EzspStatus,
},
},
addEndpoint: {
ID: 0x0002,
request: {
endpoint: uint8_t,
profileId: uint16_t,
deviceId: uint16_t,
appFlags: uint8_t,
inputClusterCount: uint8_t,
outputClusterCount: uint8_t,
inputClusterList: WordList,
outputClusterList: WordList,
},
response: {
status: EzspStatus,
},
},
setPolicy: {
ID: 0x0055, //85
request: {
policyId: EzspPolicyId,
decisionId: EzspDecisionId,
},
response: {
status: EzspStatus,
},
},
getPolicy: {
ID: 0x0056, //86
request: {
policyId: EzspPolicyId,
},
response: {
status: EzspStatus,
decisionId: EzspDecisionId,
},
},
sendPanIdUpdate: {
ID: 0x0057, //87
request: {
newPan: EmberPanId,
},
response: {
status: Bool,
},
},
getValue: {
ID: 0x00aa, // 170
request: {
valueId: EzspValueId,
},
response: {
status: EzspStatus,
value: LVBytes,
},
},
getExtendedValue: {
ID: 0x0003,
request: {
valueId: EzspExtendedValueId,
characteristics: uint32_t,
},
response: {
status: EzspStatus,
value: LVBytes,
},
},
setValue: {
ID: 0x00ab, // 171
request: {
valueId: EzspValueId,
value: LVBytes,
},
response: {
status: EzspStatus,
},
},
// Utilities Frames
nop: {
ID: 0x0005,
request: undefined,
response: undefined,
},
echo: {
ID: 0x0081, // 129
request: {
data: LVBytes,
},
response: {
echo: LVBytes,
},
},
invalidCommand: {
ID: 0x0058, // 88
request: undefined,
response: {
reason: EzspStatus,
},
},
callback: {
ID: 0x0006,
request: undefined,
response: undefined,
},
noCallbacks: {
ID: 0x0007,
request: undefined,
response: undefined,
},
setToken: {
ID: 0x0009,
request: {
tokenId: uint8_t,
tokenData: fixed_list(8, uint8_t),
},
response: {
status: EmberStatus,
},
},
getToken: {
ID: 0x000a, // 10
request: {
tokenId: uint8_t,
},
response: {
status: EmberStatus,
tokenData: fixed_list(8, uint8_t),
},
},
getMfgToken: {
ID: 0x000b, // 11
request: {
tokenId: EzspMfgTokenId,
},
response: {
status: EmberStatus,
tokenData: LVBytes,
},
},
setMfgToken: {
ID: 0x000c, // 12
request: {
tokenId: EzspMfgTokenId,
tokenData: LVBytes,
},
response: {
status: EmberStatus,
},
},
stackTokenChangedHandler: {
ID: 0x000d, // 13
request: undefined,
response: {
tokenAddress: uint16_t,
},
},
getRandomNumber: {
ID: 0x0049, // 73
request: undefined,
response: {
status: EmberStatus,
value: uint16_t,
},
},
setTimer: {
ID: 0x000e, // 14
request: {
timerId: uint8_t,
time: uint16_t,
units: EmberEventUnits,
repeat: Bool,
},
response: {
status: EmberStatus,
},
},
getTimer: {
ID: 0x004e, // 78
request: {
timerId: uint8_t,
},
response: {
time: uint16_t,
units: EmberEventUnits,
repeat: Bool,
},
},
timerHandler: {
ID: 0x000f, // 15
request: undefined,
response: {
timerId: uint8_t,
},
},
debugWrite: {
ID: 0x0012, // 18
request: {
binaryMessage: Bool,
message: LVBytes,
},
response: {
status: EmberStatus,
},
},
readAndClearCounters: {
ID: 0x0065, // 101
request: undefined,
response: {
values: fixed_list(EmberCounterType.COUNTER_TYPE_COUNT, uint16_t),
},
},
readCounters: {
ID: 0x00f1, // 241
request: undefined,
response: {
values: fixed_list(EmberCounterType.COUNTER_TYPE_COUNT, uint16_t),
},
},
counterRolloverHandler: {
ID: 0x00f2, // 242
request: undefined,
response: {
type: EmberCounterType,
},
},
delayTest: {
ID: 0x009d, // 157
request: {
delay: uint16_t,
},
response: undefined,
},
getLibraryStatus: {
ID: 0x0001,
request: {
libraryId: uint8_t,
},
response: {
status: EmberLibraryStatus,
},
},
getXncpInfo: {
ID: 0x0013, // 19
request: undefined,
response: {
status: EmberStatus,
manufacturerId: uint16_t,
versionNumber: uint16_t,
},
},
customFrame: {
ID: 0x0047, // 71
request: {
payload: LVBytes,
},
response: {
status: EmberStatus,
reply: LVBytes,
},
},
customFrameHandler: {
ID: 0x0054, // 84
request: undefined,
response: {
payload: LVBytes,
},
},
getEui64: {
ID: 0x0026, // 38
request: undefined,
response: {
eui64: EmberEUI64,
},
},
getNodeId: {
ID: 0x0027, // 39
request: undefined,
response: {
nodeId: EmberNodeId,
},
},
// Networking Frames
setManufacturerCode: {
ID: 0x0015, // 21
request: {
code: uint16_t,
},
response: undefined,
},
setPowerDescriptor: {
ID: 0x0016, // 22
request: {
descriptor: uint16_t,
},
response: undefined,
},
networkInit: {
ID: 0x0017, // 23
request: undefined,
response: {
status: EmberStatus,
},
},
networkInitExtended: {
ID: 112,
request: {
networkInitStruct: EmberNetworkInitStruct,
},
response: {
status: EmberStatus,
},
},
networkState: {
ID: 0x0018, // 24
request: undefined,
response: {
status: EmberNetworkStatus,
},
},
stackStatusHandler: {
ID: 0x0019, // 25
request: undefined,
response: {
status: EmberStatus,
},
},
startScan: {
ID: 0x001a, // 26
request: {
scanType: EzspNetworkScanType,
channelMask: uint32_t,
duration: uint8_t,
},
response: {
status: EmberStatus,
},
},
energyScanResultHandler: {
ID: 0x0048, // 72
request: undefined,
response: {
channel: uint8_t,
maxRssiValue: int8s,
},
},
networkFoundHandler: {
ID: 0x001b, // 27
request: undefined,
response: {
networkFound: EmberZigbeeNetwork,
lastHopLqi: uint8_t,
lastHopRssi: int8s,
},
},
scanCompleteHandler: {
ID: 0x001c, // 28
request: undefined,
response: {
channel: uint8_t,
status: EmberStatus,
},
},
unusedPanIdFoundHandler: {
ID: 0x00d2,
request: undefined,
response: {
panId: EmberPanId,
channel: uint8_t,
},
},
findUnusedPanId: {
ID: 0x00d3,
request: {
channelMask: uint32_t,
duration: uint8_t,
},
response: {
status: EmberStatus,
},
},
stopScan: {
ID: 0x001d, // 29
request: undefined,
response: {
status: EmberStatus,
},
},
formNetwork: {
ID: 0x001e, // 30
request: {
parameters: EmberNetworkParameters,
},
response: {
status: EmberStatus,
},
},
joinNetwork: {
ID: 0x001f, // 31
request: {
nodeType: EmberNodeType,
parameters: EmberNetworkParameters,
},
response: {
status: EmberStatus,
},
},
// joinNetworkDirectly: {
// ID: 0x003B,
// request: {
// localNodeType: EmberNodeType,
// beacon: EmberBeaconData,
// radioTxPower: int8s,
// clearBeaconsAfterNetworkUp: Bool
// },
// response: {
// status: EmberStatus
// },
// },
leaveNetwork: {
ID: 0x0020, // 32
request: undefined,
response: {
status: EmberStatus,
},
},
findAndRejoinNetwork: {
ID: 0x0021, // 33
request: {
haveCurrentNetworkKey: Bool,
channelMask: uint32_t,
},
response: {
status: EmberStatus,
},
},
permitJoining: {
ID: 0x0022, // 34
request: {
duration: uint8_t,
},
response: {
status: EmberStatus,
},
},
childJoinHandler: {
ID: 0x0023, // 35
request: undefined,
response: {
index: uint8_t,
joining: Bool,
childId: EmberNodeId,
childEui64: EmberEUI64,
childType: EmberNodeType,
},
},
energyScanRequest: {
ID: 0x009c, // 156
request: {
target: EmberNodeId,
scanChannels: uint32_t,
scanDuration: uint8_t,
scanCount: uint16_t,
},
response: {
status: EmberStatus,
},
},
getNetworkParameters: {
ID: 0x0028, // 40
request: undefined,
response: {
status: EmberStatus,
nodeType: EmberNodeType,
parameters: EmberNetworkParameters,
},
},
getRadioParameters: {
ID: 0x00fd,
request: {
childCount: uint8_t,
},
response: {
status: EmberStatus,
nodeType: EmberNodeType,
parameters: EmberNetworkParameters,
},
},
getParentChildParameters: {
ID: 0x0029, // 41
request: undefined,
response: {
childCount: uint8_t,
parentEui64: EmberEUI64,
parentNodeId: EmberNodeId,
},
},
getChildData: {
ID: 0x004a, // 74
request: {
index: uint8_t,
},
response: {
status: EmberStatus,
nodeId: EmberNodeId,
eui64: EmberEUI64,
nodeType: EmberNodeType,
},
},
getNeighbor: {
ID: 0x0079, // 121
request: {
index: uint8_t,
},
response: {
status: EmberStatus,
value: EmberNeighborTableEntry,
},
},
neighborCount: {
ID: 0x007a, // 122
request: undefined,
response: {
value: uint8_t,
},
},
getRouteTableEntry: {
ID: 0x007b, // 123
request: {
index: uint8_t,
},
response: {
status: EmberStatus,
value: EmberRouteTableEntry,
},
},
setRadioPower: {
ID: 0x0099, // 153
request: {
power: int8s,
},
response: {
status: EmberStatus,
},
},
setRadioChannel: {
ID: 0x009a, // 154
request: {
channel: uint8_t,
},
response: {
status: EmberStatus,
},
},
setConcentrator: {
ID: 0x0010, // 16
request: {
on: Bool,
concentratorType: uint16_t,
minTime: uint16_t,
maxTime: uint16_t,
routeErrorThreshold: uint8_t,
deliveryFailureThreshold: uint8_t,
maxHops: uint8_t,
},
response: {
status: EmberStatus,
},
},
// Binding Frames
clearBindingTable: {
ID: 0x002a, // 42
request: undefined,
response: {
status: EmberStatus,
},
},
setBinding: {
ID: 0x002b, // 43
request: {
index: uint8_t,
value: EmberBindingTableEntry,
},
response: {
status: EmberStatus,
},
},
getBinding: {
ID: 0x002c, // 44
request: {
index: uint8_t,
},
response: {
status: EmberStatus,
value: EmberBindingTableEntry,
},
},
deleteBinding: {
ID: 0x002d, // 45
request: {
index: uint8_t,
},
response: {
status: EmberStatus,
},
},
bindingIsActive: {
ID: 0x002e, // 46
request: {
index: uint8_t,
},
response: {
active: Bool,
},
},
getBindingRemoteNodeId: {
ID: 0x002f, // 47
request: {
index: uint8_t,
},
response: {
nodeId: EmberNodeId,
},
},
setBindingRemoteNodeId: {
ID: 0x0030, // 48
request: {
index: uint8_t,
nodeId: EmberNodeId,
},
response: undefined,
},
remoteSetBindingHandler: {
ID: 0x0031, // 49
request: undefined,
response: {
entry: EmberBindingTableEntry,
index: uint8_t,
policyDecision: EmberStatus,
},
},
remoteDeleteBindingHandler: {
ID: 0x0032, // 50
request: undefined,
response: {
index: uint8_t,
policyDecision: EmberStatus,
},
},
// Messaging Frames
maximumPayloadLength: {
ID: 0x0033, // 51
request: undefined,
response: {
apsLength: uint8_t,
},
},
sendUnicast: {
ID: 0x0034, // 52
request: {
type: EmberOutgoingMessageType,
indexOrDestination: EmberNodeId,
apsFrame: EmberApsFrame,
messageTag: uint8_t,
message: LVBytes,
},
response: {
status: EmberStatus,
sequence: uint8_t,
},
},
sendBroadcast: {
ID: 0x0036, // 54
request: {
destination: EmberNodeId,
apsFrame: EmberApsFrame,
radius: uint8_t,
messageTag: uint8_t,
message: LVBytes,
},
response: {
status: EmberStatus,
sequence: uint8_t,
},
},
proxyBroadcast: {
ID: 0x0037, // 55
request: {
source: EmberNodeId,
destination: EmberNodeId,
nwkSequence: uint8_t,
apsFrame: EmberApsFrame,
radius: uint8_t,
messageTag: uint8_t,
message: LVBytes,
},
response: {
status: EmberStatus,
apsSequence: uint8_t,
},
},
sendMulticast: {
ID: 0x0038, // 56
request: {
apsFrame: EmberApsFrame,
hops: uint8_t,
nonmemberRadius: uint8_t,
messageTag: uint8_t,
message: LVBytes,
},
response: {
status: EmberStatus,
sequence: uint8_t,
},
},
sendMulticastWithAlias: {
ID: 0x003a,
request: {
apsFrame: EmberApsFrame,
hops: uint8_t,
nonmemberRadius: uint8_t,
alias: uint16_t,
nwkSequence: uint8_t,
messageTag: uint8_t,
message: LVBytes,
},
response: {
status: EmberStatus,
sequence: uint8_t,
},
},
sendReply: {
ID: 0x0039, // 57
request: {
sender: EmberNodeId,
apsFrame: EmberApsFrame,
message: LVBytes,
},
response: {
status: EmberStatus,
},
},
messageSentHandler: {
ID: 0x003f, // 63
request: undefined,
response: {
type: EmberOutgoingMessageType,
indexOrDestination: uint16_t,
apsFrame: EmberApsFrame,
messageTag: uint8_t,
status: EmberStatus,
message: LVBytes,
},
},
sendManyToOneRouteRequest: {
ID: 0x0041, // 65
request: {
concentratorType: uint16_t,
radius: uint8_t,
},
response: {
status: EmberStatus,
},
},
pollForData: {
ID: 0x0042, // 66
request: {
interval: uint16_t,
units: EmberEventUnits,
failureLimit: uint8_t,
},
response: {
status: EmberStatus,
},
},
pollCompleteHandler: {
ID: 0x0043, // 67
request: undefined,
response: {
status: EmberStatus,
},
},
pollHandler: {
ID: 0x0044, // 68
request: undefined,
response: {
childId: EmberNodeId,
},
},
incomingSenderEui64Handler: {
ID: 0x0062, // 98
request: undefined,
response: {
senderEui64: EmberEUI64,
},
},
incomingMessageHandler: {
ID: 0x0045, // 69
request: undefined,
response: {
type: EmberIncomingMessageType,
apsFrame: EmberApsFrame,
lastHopLqi: uint8_t,
lastHopRssi: int8s,
sender: EmberNodeId,
bindingIndex: uint8_t,
addressIndex: uint8_t,
message: LVBytes,
},
},
incomingRouteRecordHandler: {
ID: 0x0059, // 89
request: undefined,
response: {
source: EmberNodeId,
longId: EmberEUI64,
lastHopLqi: uint8_t,
lastHopRssi: int8s,
relay: LVBytes,
},
},
incomingManyToOneRouteRequestHandler: {
ID: 0x007d, // 125
request: undefined,
response: {
source: EmberNodeId,
longId: EmberEUI64,
cost: uint8_t,
},
},
incomingRouteErrorHandler: {
ID: 0x0080, // 128
request: undefined,
response: {
status: EmberStatus,
target: EmberNodeId,
},
},
unicastCurrentNetworkKey: {
ID: 0x0050,
request: {
targetShort: EmberNodeId,
targetLong: EmberEUI64,
parentShortId: EmberNodeId,
},
response: {
status: EmberStatus,
},
},
addressTableEntryIsActive: {
ID: 0x005b, // 91
request: {
addressTableIndex: uint8_t,
},
response: {
active: Bool,
},
},
setAddressTableRemoteEui64: {
ID: 0x005c, // 92
request: {
addressTableIndex: uint8_t,
eui64: EmberEUI64,
},
response: {
status: EmberStatus,
},
},
setAddressTableRemoteNodeId: {
ID: 0x005d, // 93
request: {
addressTableIndex: uint8_t,
id: EmberNodeId,
},
response: undefined,
},
getAddressTableRemoteEui64: {
ID: 0x005e, // 94
request: {
addressTableIndex: uint8_t,
},
response: {
eui64: EmberEUI64,
},
},
getAddressTableRemoteNodeId: {
ID: 0x005f, // 95
request: {
addressTableIndex: uint8_t,
},
response: {
nodeId: EmberNodeId,
},
},
setExtendedTimeout: {
ID: 0x007e, // 126
request: {
remoteEui64: EmberEUI64,
extendedTimeout: Bool,
},
response: undefined,
},
getExtendedTimeout: {
ID: 0x007f, // 127,
request: {
remoteEui64: EmberEUI64,
},
response: {
extendedTimeout: Bool,
},
},
replaceAddressTableEntry: {
ID: 0x0082, // 130
request: {
addressTableIndex: uint8_t,
newEui64: EmberEUI64,
newId: EmberNodeId,
newExtendedTimeout: Bool,
},
response: {
status: EmberStatus,
oldEui64: EmberEUI64,
oldId: EmberNodeId,
oldExtendedTimeout: Bool,
},
},
lookupNodeIdByEui64: {
ID: 0x0060, // 96
request: {
eui64: EmberEUI64,
},
response: {
nodeId: EmberNodeId,
},
},
lookupEui64ByNodeId: {
ID: 0x0061, // 97
request: {
nodeId: EmberNodeId,
},
response: {
status: EmberStatus,
eui64: EmberEUI64,
},
},
getMulticastTableEntry: {
ID: 0x0063, // 99
request: {
index: uint8_t,
},
response: {
value: EmberMulticastTableEntry,
},
},
setMulticastTableEntry: {
ID: 0x0064, // 100
request: {
index: uint8_t,
value: EmberMulticastTableEntry,
},
response: {
status: EmberStatus,
},
},
idConflictHandler: {
ID: 0x007c, // 124
request: undefined,
response: {
id: EmberNodeId,
},
},
writeNodeData: {
ID: 0x00fe,
request: {
erase: Bool,
},
response: {
status: EmberStatus,
},
},
sendRawMessage: {
ID: 0x0096, // 150
request: {
message: LVBytes,
},
response: {
status: EmberStatus,
},
},
sendRawMessageExtended: {
ID: 0x0051,
request: {
message: LVBytes,
priority: uint8_t,
useCca: Bool,
},
response: {
status: EmberStatus,
},
},
macPassthroughMessageHandler: {
ID: 0x0097, // 151
request: undefined,
response: {
messageType: EmberMacPassthroughType,
lastHopLqi: uint8_t,
lastHopRssi: int8s,
message: LVBytes,
},
},
macFilterMatchMessageHandler: {
ID: 0x0046, // 70
request: undefined,
response: {
filterIndexMatch: uint8_t,
legacyPassthroughType: EmberMacPassthroughType,
lastHopLqi: uint8_t,
lastHopRssi: int8s,
message: LVBytes,
},
},
rawTransmitCompleteHandler: {
ID: 0x0098, // 152
request: undefined,
response: {
status: EmberStatus,
},
},
// Security Frames
setInitialSecurityState: {
ID: 0x0068, // 104
request: {
state: EmberInitialSecurityState,
},
response: {
success: EmberStatus,
},
},
getCurrentSecurityState: {
ID: 0x0069, // 105
request: undefined,
response: {
status: EmberStatus,
state: EmberCurrentSecurityState,
},
},
getKey: {
ID: 0x006a, // 106
request: {
keyType: EmberKeyType,
},
response: {
status: EmberStatus,
keyStruct: EmberKeyStruct,
},
},
exportKey: {
ID: 0x0114,
request: {
context: EmberSecurityManagerContext,
},
response: {
keyData: EmberKeyData,
status: SLStatus,
},
},
getNetworkKeyInfo: {
ID: 0x0116,
request: undefined,
response: {
status: SLStatus,
networkKeyInfo: EmberSecurityManagerNetworkKeyInfo,
},
},
switchNetworkKeyHandler: {
ID: 0x006e, // 110
request: undefined,
response: {
sequenceNumber: uint8_t,
},
},
getKeyTableEntry: {
ID: 0x0071, // 113
request: {
index: uint8_t,
},
response: {
status: EmberStatus,
keyStruct: EmberKeyStruct,
},
},
setKeyTableEntry: {
ID: 0x0072, // 114
request: {
index: uint8_t,
address: EmberEUI64,
linkKey: Bool,
keyData: EmberKeyData,
},
response: {
status: EmberStatus,
},
},
findKeyTableEntry: {
ID: 0x0075, // 117
request: {
address: EmberEUI64,
linkKey: Bool,
},
response: {
index: uint8_t,
},
},
addOrUpdateKeyTableEntry: {
ID: 0x0066, // 102
request: {
address: EmberEUI64,
linkKey: Bool,
keyData: EmberKeyData,
},
response: {
status: EmberStatus,
},
},
sendTrustCenterLinkKey: {
ID: 0x0067,
request: {
destinationNodeId: EmberNodeId,
destinationEui64: EmberEUI64,
},
response: {
status: EmberStatus,
},
},
eraseKeyTableEntry: {
ID: 0x0076, // 118
request: {
index: uint8_t,
},
response: {
status: EmberStatus,
},
},
clearKeyTable: {
ID: 0x00b1, // 177
request: undefined,
response: {
status: EmberStatus,
},
},
requestLinkKey: {
ID: 0x0014, // 20
request: {
partner: EmberEUI64,
},
response: {
status: EmberStatus,
},
},
updateTcLinkKey: {
ID: 0x006c,
request: {
maxAttempts: uint8_t,
},
response: {
status: EmberStatus,
},
},
zigbeeKeyEstablishmentHandler: {
ID: 0x009b, // 155
request: undefined,
response: {
partner: EmberEUI64,
status: EmberKeyStatus,
},
},
addTransientLinkKey: {
ID: 0x00af, // 175
request: {
partner: EmberEUI64,
transientKey: EmberKeyData,
},
response: {
status: EmberStatus,
},
},
importTransientKey: {
ID: 0x0111,
request: {
partner: EmberEUI64,
transientKey: EmberKeyData,
flags: uint8_t,
},
response: {
status: EmberStatus,
},
},
clearTransientLinkKeys: {
ID: 0x006b, // 107
request: undefined,
response: undefined,
},
// getTransientLinkKey: {
// ID: 0x00CE,
// request: {
// eui: EmberEUI64
// },
// response: {
// status: EmberStatus,
// transientKeyData: EmberTransientKeyData
// },
// },
// Secure EZSP Frames
setSecurityKey: {
ID: 0x00ca, // 202
request: {
key: EmberKeyData,
securityType: SecureEzspSecurityType,
},
response: {
status: EzspStatus,
},
},
setSecurityParameters: {
ID: 0x00cb, // 203
request: {
securityLevel: SecureEzspSecurityLevel,
hostRandomNumber: SecureEzspRandomNumber,
},
response: {
status: EzspStatus,
returnNcpRandomNumber: SecureEzspRandomNumber,
},
},
resetToFactoryDefaults: {
ID: 0x00cc, // 204
request: undefined,
response: {
status: EzspStatus,
},
},
getSecurityKeyStatus: {
ID: 0x00cd, // 205
request: undefined,
response: {
status: EzspStatus,
returnSecurityType: SecureEzspSecurityType,
},
},
// Trust Center Frames
trustCenterJoinHandler: {
ID: 0x0024, // 36
request: undefined,
response: {
newNodeId: EmberNodeId,
newNodeEui64: EmberEUI64,
status: EmberDeviceUpdate,
policyDecision: EmberJoinDecision,
parentOfNewNodeId: EmberNodeId,
},
},
broadcastNextNetworkKey: {
ID: 0x0073, // 115
request: {
key: EmberKeyData,
},
response: {
status: EmberStatus,
},
},
broadcastNetworkKeySwitch: {
ID: 0x0074, // 116
request: undefined,
response: {
status: EmberStatus,
},
},
becomeTrustCenter: {
ID: 0x0077, // 119
request: {
newNetworkKey: EmberKeyData,
},
response: {
status: EmberStatus,
},
},
aesMmoHash: {
ID: 0x006f, // 111
request: {
context: EmberAesMmoHashContext,
finalize: Bool,
data: LVBytes,
},
response: {
status: EmberStatus,
returnContext: EmberAesMmoHashContext,
},
},
removeDevice: {
ID: 0x00a8, // 168
request: {
destShort: EmberNodeId,
destLong: EmberEUI64,
targetLong: EmberEUI64,
},
response: {
status: EmberStatus,
},
},
unicastNwkKeyUpdate: {
ID: 0x00a9, // 169
request: {
destShort: EmberNodeId,
destLong: EmberEUI64,
key: EmberKeyData,
},
response: {
status: EmberStatus,
},
},
// Certificate Based Key Exchange (CBKE) Frames
generateCbkeKeys: {
ID: 0x00a4, // 164
request: undefined,
response: {
status: EmberStatus,
},
},
generateCbkeKeysHandler: {
ID: 0x009e, // 158
request: undefined,
response: {
status: EmberStatus,
ephemeralPublicKey: EmberPublicKeyData,
},
},
calculateSmacs: {
ID: 0x009f, // 159
request: {
amInitiator: Bool,
partnerCertificate: EmberCertificateData,
partnerEphemeralPublicKey: EmberPublicKeyData,
},
response: {
status: EmberStatus,
},
},
calculateSmacsHandler: {
ID: 0x00a0, // 160
request: undefined,
response: {
status: EmberStatus,
initiatorSmac: EmberSmacData,
responderSmac: EmberSmacData,
},
},
generateCbkeKeys283k1: {
ID: 0x00e8, // 232
request: undefined,
response: {
status: EmberStatus,
},
},
generateCbkeKeysHandler283k1: {
ID: 0x00e9, // 233
request: undefined,
response: {
status: EmberStatus,
ephemeralPublicKey: EmberPublicKey283k1Data,
},
},
calculateSmacs283k1: {
ID: 0x00ea, // 234
request: {
amInitiator: Bool,
partnerCertificate: EmberCertificate283k1Data,
partnerEphemeralPublicKey: EmberPublicKey283k1Data,
},
response: {
status: EmberStatus,
},
},
calculateSmacsHandler283k1: {
ID: 0x00eb, // 235
request: undefined,
response: {
status: EmberStatus,
initiatorSmac: EmberSmacData,
responderSmac: EmberSmacData,
},
},
clearTemporaryDataMaybeStoreLinkKey: {
ID: 0x00a1, // 161
request: {
storeLinkKey: Bool,
},
response: {
status: EmberStatus,
},
},
clearTemporaryDataMaybeStoreLinkKey283k1: {
ID: 0x00ee, // 238
request: {
storeLinkKey: Bool,
},
response: {
status: EmberStatus,
},
},
getCertificate: {
ID: 0x00a5, // 165
request: undefined,
response: {
status: EmberStatus,
localCert: EmberCertificateData,
},
},
getCertificate283k1: {
ID: 0x00ec, // 236
request: undefined,
response: {
status: EmberStatus,
localCert: EmberCertificate283k1Data,
},
},
dsaSign: {
ID: 0x00a6, // 166
request: {
message: LVBytes,
},
response: {
status: EmberStatus,
},
},
dsaSignHandler: {
ID: 0x00a7, // 167
request: undefined,
response: {
status: EmberStatus,
message: LVBytes,
},
},
dsaVerify: {
ID: 0x00a3, // 163
request: {
digest: EmberMessageDigest,
signerCertificate: EmberCertificateData,
receivedSig: EmberSignatureData,
},
response: {
status: EmberStatus,
},
},
dsaVerifyHandler: {
ID: 0x0078, // 120
request: undefined,
response: {
status: EmberStatus,
},
},
dsaVerify283k1: {
ID: 0x00b0, // 176
request: {
digest: EmberMessageDigest,
signerCertificate: EmberCertificate283k1Data,
receivedSig: EmberSignature283k1Data,
},
response: {
status: EmberStatus,
},
},
setPreinstalledCbkeData: {
ID: 0x00a2, // 162
request: {
caPublic: EmberPublicKeyData,
myCert: EmberCertificateData,
myKey: EmberPrivateKeyData,
},
response: {
status: EmberStatus,
},
},
// setPreinstalledCbkeData283k1: {
// ID: 237,
// request: {
// attr: EmberPublicKey283k1Data,
// attr: EmberCertificate283k1Data,
// attr: EmberPrivateKey283k1Data
// },
// response: {
// attr: EmberStatus
// },
// },
// Mfglib Frames
mfglibStart: {
ID: 0x0083, // 131
request: {
rxCallback: Bool,
},
response: {
status: EmberStatus,
},
},
mfglibEnd: {
ID: 0x0084, // 132
request: undefined,
response: {
status: EmberStatus,
},
},
mfglibStartTone: {
ID: 0x0085, // 133
request: undefined,
response: {
status: EmberStatus,
},
},
mfglibStopTone: {
ID: 0x0086, // 134
request: undefined,
response: {
status: EmberStatus,
},
},
mfglibStartStream: {
ID: 0x0087, // 135
request: undefined,
response: {
status: EmberStatus,
},
},
mfglibStopStream: {
ID: 0x0088, // 136
request: undefined,
response: {
status: EmberStatus,
},
},
mfglibSendPacket: {
ID: 0x0089, // 137
request: {
packet: LVBytes,
},
response: {
status: EmberStatus,
},
},
mfglibSetChannel: {
ID: 0x008a, // 138
request: {
channel: uint8_t,
},
response: {
status: EmberStatus,
},
},
mfglibGetChannel: {
ID: 0x008b, // 139
request: undefined,
response: {
channel: uint8_t,
},
},
mfglibSetPower: {
ID: 0x008c, // 140
request: {
txPowerMode: uint16_t,
power: int8s,
},
response: {
status: EmberStatus,
},
},
mfglibGetPower: {
ID: 0x008d, // 141
request: undefined,
response: {
power: int8s,
},
},
mfglibRxHandler: {
ID: 0x008e, // 142
request: undefined,
response: {
linkQuality: uint8_t,
rssi: int8s,
packet: LVBytes,
},
},
// Bootloader Frames
launchStandaloneBootloader: {
ID: 0x008f, // 143
request: {
mode: uint8_t,
},
response: {
status: EmberStatus,
},
},
sendBootloadMessage: {
ID: 0x0090, // 144
request: {
broadcast: Bool,
destEui64: EmberEUI64,
message: LVBytes,
},
response: {
status: EmberStatus,
},
},
getStandaloneBootloaderVersionPlatMicroPhy: {
ID: 0x0091, // 145
request: undefined,
response: {
bootloader_version: uint16_t,
nodePlat: uint8_t,
nodeMicro: uint8_t,
nodePhy: uint8_t,
},
},
incomingBootloadMessageHandler: {
ID: 0x0092, // 146
request: undefined,
response: {
longId: EmberEUI64,
lastHopLqi: uint8_t,
lastHopRssi: int8s,
message: LVBytes,
},
},
bootloadTransmitCompleteHandler: {
ID: 0x0093, // 147
request: undefined,
response: {
status: EmberStatus,
message: LVBytes,
},
},
aesEncrypt: {
ID: 0x0094, // 148
request: {
plaintext: fixed_list(16, uint8_t),
key: fixed_list(16, uint8_t),
},
response: {
ciphertext: fixed_list(16, uint8_t),
},
},
overrideCurrentChannel: {
ID: 0x0095, // 149
request: {
channel: uint8_t,
},
response: {
status: EmberStatus,
},
},
// ZLL Frames
zllNetworkOps: {
ID: 0x00b2, // 178
request: {
networkInfo: EmberZllNetwork,
op: EzspZllNetworkOperation,
radioTxPower: int8s,
},
response: {
status: EmberStatus,
},
},
zllSetInitialSecurityState: {
ID: 0x00b3, // 179
request: {
networkKey: EmberKeyData,
securityState: EmberZllInitialSecurityState,
},
response: {
status: EmberStatus,
},
},
zllStartScan: {
ID: 0x00b4, // 180
request: {
channelMask: uint32_t,
radioPowerForScan: int8s,
nodeType: EmberNodeType,
},
response: {
status: EmberStatus,
},
},
zllSetRxOnWhenIdle: {
ID: 0x00b5, // 181
request: {
durationMs: uint16_t,
},
response: {
status: EmberStatus,
},
},
zllNetworkFoundHandler: {
ID: 0x00b6, // 182
request: undefined,
response: {
networkInfo: EmberZllNetwork,
isDeviceInfoNull: Bool,
deviceInfo: EmberZllDeviceInfoRecord,
lastHopLqi: uint8_t,
lastHopRssi: int8s,
},
},
zllScanCompleteHandler: {
ID: 0x00b7, // 183
request: undefined,
response: {
status: EmberStatus,
},
},
zllAddressAssignmentHandler: {
ID: 0x00b8, // 184
request: undefined,
response: {
addressInfo: EmberZllAddressAssignment,
lastHopLqi: uint8_t,
lastHopRssi: int8s,
},
},
setLogicalAndRadioChannel: {
ID: 0x00b9, // 185
request: {
radioChannel: uint8_t,
},
response: {
status: EmberStatus,
},
},
getLogicalChannel: {
ID: 0x00ba, // 186
request: undefined,
response: {
logicalChannel: uint8_t,
},
},
zllTouchLinkTargetHandler: {
ID: 0x00bb, // 187
request: undefined,
response: {
networkInfo: EmberZllNetwork,
},
},
zllGetTokens: {
ID: 0x00bc, // 188
request: undefined,
response: {
data: EmberTokTypeStackZllData,
security: EmberTokTypeStackZllSecurity,
},
},
zllSetDataToken: {
ID: 0x00bd, // 189
request: {
data: EmberTokTypeStackZllData,
},
response: undefined,
},
zllSetNonZllNetwork: {
ID: 0x00bf, // 191
request: undefined,
response: undefined,
},
isZllNetwork: {
ID: 0x00be, // 190
request: undefined,
response: {
isZllNetwork: Bool,
},
},
// rf4ceSetPairingTableEntry: {
// ID: 208,
// request: {
// attr: uint8_t,
// attr: EmberRf4cePairingTableEntry
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4ceGetPairingTableEntry: {
// ID: 209,
// request: {
// attr: uint8_t
// },
// response: {
// attr: EmberStatus,
// attr: EmberRf4cePairingTableEntry
// },
// },
// rf4ceDeletePairingTableEntry: {
// ID: 210,
// request: {
// attr: uint8_t
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4ceKeyUpdate: {
// ID: 211,
// request: {
// attr: uint8_t,
// attr: EmberKeyData
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4ceSend: {
// ID: 212,
// request: {
// attr: uint8_t,
// attr: uint8_t,
// attr: uint16_t,
// attr: EmberRf4ceTxOption,
// attr: uint8_t,
// attr: LVBytes
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4ceIncomingMessageHandler: {
// ID: 213,
// request: undefined,
// response: {
// attr: uint8_t,
// attr: uint8_t,
// attr: uint16_t,
// attr: EmberRf4ceTxOption,
// attr: LVBytes
// },
// },
// rf4ceMessageSentHandler: {
// ID: 214,
// request: undefined,
// response: {
// attr: EmberStatus,
// attr: uint8_t,
// attr: EmberRf4ceTxOption,
// attr: uint8_t,
// attr: uint16_t,
// attr: uint8_t,
// attr: LVBytes
// },
// },
// rf4ceStart: {
// ID: 215,
// request: {
// attr: EmberRf4ceNodeCapabilities,
// attr: EmberRf4ceVendorInfo,
// attr: int8s
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4ceStop: {
// ID: 216,
// request: undefined,
// response: {
// attr: EmberStatus
// },
// },
// rf4ceDiscovery: {
// ID: 217,
// request: {
// attr: EmberPanId,
// attr: EmberNodeId,
// attr: uint8_t,
// attr: uint16_t,
// attr: LVBytes
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4ceDiscoveryCompleteHandler: {
// ID: 218,
// request: undefined,
// response: {
// attr: EmberStatus
// },
// },
// rf4ceDiscoveryRequestHandler: {
// ID: 219,
// request: undefined,
// response: {
// attr: EmberEUI64,
// attr: uint8_t,
// attr: EmberRf4ceVendorInfo,
// attr: EmberRf4ceApplicationInfo,
// attr: uint8_t,
// attr: uint8_t
// },
// },
// rf4ceDiscoveryResponseHandler: {
// ID: 220,
// request: undefined,
// response: {
// attr: Bool,
// attr: uint8_t,
// attr: EmberPanId,
// attr: EmberEUI64,
// attr: uint8_t,
// attr: EmberRf4ceVendorInfo,
// attr: EmberRf4ceApplicationInfo,
// attr: uint8_t,
// attr: uint8_t
// },
// },
// rf4ceEnableAutoDiscoveryResponse: {
// ID: 221,
// request: {
// attr: uint16_t
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4ceAutoDiscoveryResponseCompleteHandler: {
// ID: 222,
// request: undefined,
// response: {
// attr: EmberStatus,
// attr: EmberEUI64,
// attr: uint8_t,
// attr: EmberRf4ceVendorInfo,
// attr: EmberRf4ceApplicationInfo,
// attr: uint8_t
// },
// },
// rf4cePair: {
// ID: 223,
// request: {
// attr: uint8_t,
// attr: EmberPanId,
// attr: EmberEUI64,
// attr: uint8_t
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4cePairCompleteHandler: {
// ID: 224,
// request: undefined,
// response: {
// attr: EmberStatus,
// attr: uint8_t,
// attr: EmberRf4ceVendorInfo,
// attr: EmberRf4ceApplicationInfo
// },
// },
// rf4cePairRequestHandler: {
// ID: 225,
// request: undefined,
// response: {
// attr: EmberStatus,
// attr: uint8_t,
// attr: EmberEUI64,
// attr: uint8_t,
// attr: EmberRf4ceVendorInfo,
// attr: EmberRf4ceApplicationInfo,
// attr: uint8_t
// },
// },
// rf4ceUnpair: {
// ID: 226,
// request: {
// attr: uint8_t
// },
// response: {
// attr: EmberStatus
// },
// },
// rf4ceUnpairHandler: {
// ID: 227,
// request: undefined,
// response: {
// attr: uint8_t
// },
// },
// rf4ceUnpairCompleteHandler: {
// ID: 228,
// request: undefined,
// response: {
// attr: uint8_t
// },
// },
// rf4ceSetPowerSavingParameters: {
// ID: 229,
// request: {
// attr: uint32_t,
// attr: uint32_t
// },
// response: {
// attr: EmberStatus
// },
//