inventoresed
Version:
Z-Wave driver written entirely in JavaScript/TypeScript
61 lines (52 loc) • 1.43 kB
text/typescript
import {
CommandClasses,
CommandClassInfo,
NodeProtocolInfoAndDeviceClass,
NodeType,
} from "@zwave-js/core";
export type PartialCCCapabilities =
| ({
ccId: CommandClasses;
} & Partial<CommandClassInfo>)
| CommandClasses;
export interface MockNodeCapabilities extends NodeProtocolInfoAndDeviceClass {
firmwareVersion: string;
manufacturerId: number;
productType: number;
productId: number;
/** How long it takes to send a command to or from the node */
txDelay: number;
}
export interface MockEndpointCapabilities {
genericDeviceClass: number;
specificDeviceClass: number;
}
export function getDefaultMockNodeCapabilities(): MockNodeCapabilities {
return {
firmwareVersion: "1.0",
manufacturerId: 0xffff,
productType: 0xffff,
productId: 0xfffe,
isListening: true,
isFrequentListening: false,
isRouting: true,
supportedDataRates: [9600, 40000, 100000],
protocolVersion: 3,
optionalFunctionality: true,
nodeType: NodeType["End Node"],
supportsSecurity: false,
supportsBeaming: true,
basicDeviceClass: 0x04, // Routing End Node
genericDeviceClass: 0x06, // Appliance
specificDeviceClass: 0x01, // General Appliance
txDelay: 10,
};
}
export function getDefaultMockEndpointCapabilities(
nodeCaps: MockNodeCapabilities,
): MockEndpointCapabilities {
return {
genericDeviceClass: nodeCaps.genericDeviceClass,
specificDeviceClass: nodeCaps.specificDeviceClass,
};
}