zigbee-herdsman-converters
Version:
Collection of device converters to be used with zigbee-herdsman
269 lines • 10.4 kB
TypeScript
import { Fz, ModernExtend, Range, Zh, DefinitionOta, Access, KeyValue, Configure } from './types';
export declare const timeLookup: {
MAX: number;
'4_HOURS': number;
'1_HOUR': number;
'30_MINUTES': number;
'5_MINUTES': number;
'2_MINUTES': number;
'1_MINUTE': number;
'10_SECONDS': number;
'1_SECOND': number;
MIN: number;
};
type ReportingConfigTime = number | keyof typeof timeLookup;
type ReportingConfigAttribute = string | number | {
ID: number;
type: number;
};
type ReportingConfig = {
min: ReportingConfigTime;
max: ReportingConfigTime;
change: number | [number, number];
attribute: ReportingConfigAttribute;
};
export type ReportingConfigWithoutAttribute = Omit<ReportingConfig, 'attribute'>;
export declare function setupAttributes(entity: Zh.Device | Zh.Endpoint, coordinatorEndpoint: Zh.Endpoint, cluster: string | number, config: ReportingConfig[], configureReporting?: boolean, read?: boolean): Promise<void>;
export declare function setupConfigureForReporting(cluster: string | number, attribute: ReportingConfigAttribute, config: ReportingConfigWithoutAttribute, access: Access, endpointNames?: string[]): Configure;
export declare function setupConfigureForBinding(cluster: string | number, clusterType: 'input' | 'output', endpointNames?: string[]): Configure;
export declare function forceDeviceType(args: {
type: 'EndDevice' | 'Router';
}): ModernExtend;
export declare function forcePowerSource(args: {
powerSource: 'Mains (single phase)' | 'Battery';
}): ModernExtend;
export interface LinkQualityArgs {
reporting?: boolean;
attribute?: string | {
ID: number;
type: number;
};
reportingConfig?: ReportingConfigWithoutAttribute;
}
export declare function linkQuality(args?: LinkQualityArgs): ModernExtend;
export interface BatteryArgs {
voltageToPercentage?: string | {
min: number;
max: number;
};
dontDividePercentage?: boolean;
percentage?: boolean;
voltage?: boolean;
lowStatus?: boolean;
percentageReportingConfig?: ReportingConfigWithoutAttribute;
percentageReporting?: boolean;
voltageReportingConfig?: ReportingConfigWithoutAttribute;
voltageReporting?: boolean;
}
export declare function battery(args?: BatteryArgs): ModernExtend;
export declare function deviceTemperature(args?: Partial<NumericArgs>): ModernExtend;
export declare function identify(args?: {
isSleepy: boolean;
}): ModernExtend;
export interface OnOffArgs {
powerOnBehavior?: boolean;
ota?: DefinitionOta;
skipDuplicateTransaction?: boolean;
endpointNames?: string[];
configureReporting?: boolean;
}
export declare function onOff(args?: OnOffArgs): ModernExtend;
export interface CommandsOnOffArgs {
commands?: ('on' | 'off' | 'toggle')[];
bind?: boolean;
endpointNames?: string[];
legacyAction?: boolean;
}
export declare function commandsOnOff(args?: CommandsOnOffArgs): ModernExtend;
export declare function customTimeResponse(start: '1970_UTC' | '2000_LOCAL'): ModernExtend;
export declare function illuminance(args?: Partial<NumericArgs>): ModernExtend;
export declare function temperature(args?: Partial<NumericArgs>): ModernExtend;
export declare function pressure(args?: Partial<NumericArgs>): ModernExtend;
export declare function flow(args?: Partial<NumericArgs>): ModernExtend;
export declare function humidity(args?: Partial<NumericArgs>): ModernExtend;
export declare function soilMoisture(args?: Partial<NumericArgs>): ModernExtend;
export declare function occupancy(args?: Partial<BinaryArgs>): ModernExtend;
export declare function co2(args?: Partial<NumericArgs>): ModernExtend;
export declare function pm25(args?: Partial<NumericArgs>): ModernExtend;
export interface LightArgs {
effect?: boolean;
powerOnBehavior?: boolean;
colorTemp?: {
startup?: boolean;
range: Range;
};
color?: boolean | {
modes?: ('xy' | 'hs')[];
applyRedFix?: boolean;
enhancedHue?: boolean;
};
turnsOffAtBrightness1?: boolean;
configureReporting?: boolean;
endpointNames?: string[];
ota?: DefinitionOta;
levelConfig?: {
disabledFeatures?: string[];
};
}
export declare function light(args?: LightArgs): ModernExtend;
export interface CommandsLevelCtrl {
commands?: ('brightness_move_to_level' | 'brightness_move_up' | 'brightness_move_down' | 'brightness_step_up' | 'brightness_step_down' | 'brightness_stop')[];
bind?: boolean;
endpointNames?: string[];
legacyAction?: boolean;
}
export declare function commandsLevelCtrl(args?: CommandsLevelCtrl): ModernExtend;
export type ColorCtrlCommand = 'color_temperature_move_stop' | 'color_temperature_move_up' | 'color_temperature_move_down' | 'color_temperature_step_up' | 'color_temperature_step_down' | 'enhanced_move_to_hue_and_saturation' | 'color_hue_step_up' | 'color_hue_step_down' | 'color_saturation_step_up' | 'color_saturation_step_down' | 'color_loop_set' | 'color_temperature_move' | 'color_move' | 'hue_move' | 'hue_stop' | 'move_to_saturation' | 'move_to_hue';
export interface CommandsColorCtrl {
commands?: ColorCtrlCommand[];
bind?: boolean;
endpointNames?: string[];
}
export declare function commandsColorCtrl(args?: CommandsColorCtrl): ModernExtend;
export interface LockArgs {
pinCodeCount: number;
}
export declare function lock(args?: LockArgs): ModernExtend;
export interface WindowCoveringArgs {
controls: ('lift' | 'tilt')[];
coverInverted?: boolean;
stateSource?: 'lift' | 'tilt';
configureReporting?: boolean;
}
export declare function windowCovering(args: WindowCoveringArgs): ModernExtend;
export interface CommandsWindowCoveringArgs {
commands?: ('open' | 'close' | 'stop')[];
bind?: boolean;
endpointNames?: string[];
legacyAction: boolean;
}
export declare function commandsWindowCovering(args?: CommandsWindowCoveringArgs): ModernExtend;
export type iasZoneType = 'occupancy' | 'contact' | 'smoke' | 'water_leak' | 'carbon_monoxide' | 'sos' | 'vibration' | 'alarm' | 'gas' | 'generic';
export type iasZoneAttribute = 'alarm_1' | 'alarm_2' | 'tamper' | 'battery_low' | 'supervision_reports' | 'restore_reports' | 'ac_status' | 'test' | 'battery_defect';
export interface IasArgs {
zoneType: iasZoneType;
zoneAttributes: iasZoneAttribute[];
alarmTimeout?: boolean;
}
export declare function iasZoneAlarm(args: IasArgs): ModernExtend;
export interface IasWarningArgs {
reversePayload?: boolean;
}
export declare function iasWarning(args?: IasWarningArgs): ModernExtend;
type MultiplierDivisor = {
multiplier?: number;
divisor?: number;
};
export interface ElectricityMeterArgs {
cluster?: 'both' | 'metering' | 'electrical';
current?: false | MultiplierDivisor;
power?: false | MultiplierDivisor;
voltage?: false | MultiplierDivisor;
energy?: false | MultiplierDivisor;
configureReporting?: boolean;
}
export declare function electricityMeter(args?: ElectricityMeterArgs): ModernExtend;
export declare function ota(definition?: DefinitionOta): ModernExtend;
export interface EnumLookupArgs {
name: string;
lookup: KeyValue;
cluster: string | number;
attribute: string | {
ID: number;
type: number;
};
description: string;
zigbeeCommandOptions?: {
manufacturerCode?: number;
disableDefaultResponse?: boolean;
};
access?: 'STATE' | 'STATE_GET' | 'ALL';
endpointName?: string;
reporting?: ReportingConfigWithoutAttribute;
entityCategory?: 'config' | 'diagnostic';
}
export declare function enumLookup(args: EnumLookupArgs): ModernExtend;
export type ScaleFunction = (value: number, type: 'from' | 'to') => number;
export interface NumericArgs {
name: string;
cluster: string | number;
attribute: string | {
ID: number;
type: number;
};
description: string;
zigbeeCommandOptions?: {
manufacturerCode?: number;
disableDefaultResponse?: boolean;
};
access?: 'STATE' | 'STATE_GET' | 'ALL';
unit?: string;
endpointNames?: string[];
reporting?: ReportingConfigWithoutAttribute;
valueMin?: number;
valueMax?: number;
valueStep?: number;
scale?: number | ScaleFunction;
label?: string;
entityCategory?: 'config' | 'diagnostic';
precision?: number;
}
export declare function numeric(args: NumericArgs): ModernExtend;
export interface BinaryArgs {
name: string;
valueOn: [string | boolean, unknown];
valueOff: [string | boolean, unknown];
cluster: string | number;
attribute: string | {
ID: number;
type: number;
};
description: string;
zigbeeCommandOptions?: {
manufacturerCode: number;
};
endpointName?: string;
reporting?: ReportingConfig;
access?: 'STATE' | 'STATE_GET' | 'ALL';
entityCategory?: 'config' | 'diagnostic';
}
export declare function binary(args: BinaryArgs): ModernExtend;
export type Parse = (msg: Fz.Message, attributeKey: string | number) => unknown;
export interface ActionEnumLookupArgs {
actionLookup: KeyValue;
cluster: string | number;
attribute: string | {
ID: number;
type: number;
};
endpointNames?: string[];
buttonLookup?: KeyValue;
extraActions?: string[];
commands?: string[];
parse?: Parse;
}
export declare function actionEnumLookup(args: ActionEnumLookupArgs): ModernExtend;
export interface QuirkAddEndpointClusterArgs {
endpointID: number;
inputClusters?: string[] | number[];
outputClusters?: string[] | number[];
}
export declare function quirkAddEndpointCluster(args: QuirkAddEndpointClusterArgs): ModernExtend;
export declare function quirkCheckinInterval(timeout: number | keyof typeof timeLookup): ModernExtend;
export declare function reconfigureReportingsOnDeviceAnnounce(): ModernExtend;
export declare function deviceEndpoints(args: {
endpoints: {
[n: string]: number;
};
multiEndpointSkip?: string[];
}): ModernExtend;
export declare function ignoreClusterReport(args: {
cluster: string | number;
}): ModernExtend;
export declare function bindCluster(args: {
cluster: string | number;
clusterType: 'input' | 'output';
endpointNames?: string[];
}): ModernExtend;
export {};
//# sourceMappingURL=modernExtend.d.ts.map