UNPKG

@ljames8/hormann-hcp-client

Version:

Hormann Communication Protocol v1 garage door serial client

58 lines (57 loc) 2.26 kB
import { EventEmitter } from "events"; import { Debugger } from "debug"; import { HCPClient, SerialHCPClient, SerialOptions, STATUS_RESPONSE_BYTE0_BITFIELD } from "./serialHCPClient"; import { PacketFilterParams } from "./parser"; export { MockHCPClient } from "./mockHCPClient"; export { HCPClient, SerialHCPClient, SerialOptions, PacketFilterParams }; export declare enum CurrentDoorState { OPEN = 0, CLOSED = 1, OPENING = 2, CLOSING = 3, STOPPED = 4, VENTING = 5 } export declare enum TargetDoorState { OPEN = 0, CLOSED = 1, VENTING = 5 } export interface GarageState { door: CurrentDoorState; light: boolean; } declare abstract class GarageDoorOpener extends EventEmitter { readonly name: string; protected manufacturer: string; protected model: string; protected currentState: CurrentDoorState | null; protected targetState: TargetDoorState | null; protected lightState: boolean | null; constructor(name: string); abstract getCurrentState(): CurrentDoorState; abstract getTargetState(): TargetDoorState; abstract setTargetState(newState: TargetDoorState): Promise<void>; abstract getLightOnState(): boolean; abstract setLightOnState(newState: boolean): Promise<void>; } export declare class HormannGarageDoorOpener extends GarageDoorOpener { hcpClient: HCPClient; logger: Debugger; broadcastStatus: Uint8Array; constructor(name: string | undefined, hcpClient: HCPClient); static targetStateToRequest(targetState: TargetDoorState): { flags: STATUS_RESPONSE_BYTE0_BITFIELD[]; emergencyStop?: boolean; }; static broadcastToCurrentState(status: Uint8Array): GarageState | Error; private onBroadcast; getCurrentState(): CurrentDoorState; getTargetState(): TargetDoorState; setTargetState(newState: TargetDoorState): Promise<void>; getLightOnState(): boolean; setLightOnState(newState: boolean): Promise<void>; } export declare function createHormannGarageDoorOpener( /** factory function to create a serial enabled Hormann garage door opener */ name: string | undefined, { path, ...rest }: SerialOptions, { packetTimeout, filterBreaks, filterMaxLength }?: PacketFilterParams): HormannGarageDoorOpener;