UNPKG

@ubreu/homebridge-eufy-security

Version:
90 lines 3.92 kB
import { PlatformAccessory, CharacteristicValue } from 'homebridge'; import { EufySecurityPlatform } from '../platform'; import { BaseAccessory } from './BaseAccessory'; import { Station, PropertyName, PropertyValue } from 'eufy-security-client'; import { StationConfig } from '../utils/configTypes'; export declare enum HKGuardMode { STAY_ARM = 0, AWAY_ARM = 1, NIGHT_ARM = 2, DISARM = 3 } /** * Platform Accessory * An instance of this class is created for each accessory your platform registers * Each accessory may expose multiple services of different service types. */ export declare class StationAccessory extends BaseAccessory { private alarm_triggered; private modes; readonly hasKeyPad: boolean; private alarm_delayed; private alarm_delay_timeout?; readonly stationConfig: StationConfig; private guardModeChangeTimeout; constructor(platform: EufySecurityPlatform, accessory: PlatformAccessory, device: Station); /** * Get the current value of the "propertyName" characteristic */ protected getPropertyValue(propertyName: PropertyName): PropertyValue; protected setPropertyValue(propertyName: PropertyName, value: unknown): Promise<void>; /** * Helper function to get a configuration value by checking custom, global, and default settings. * @param {number} customValue - Value from the custom configuration * @param {number} globalValue - Value from the global configuration * @param {number} defaultValue - The default value to use if both custom and global values are undefined * @returns {number} The chosen value based on priority */ private getConfigValue; /** * Gets the station configuration based on several possible sources. * Priority is given to custom configurations (if available), then falls back to global configs, * and lastly uses default values if neither custom nor global configs are set. * * @returns {StationConfig} The final configuration settings for the station */ private getStationConfig; private onStationGuardModePushNotification; private onStationCurrentModePushNotification; private onStationAlarmEventPushNotification; private mappingHKEufy; /** * Convert a HomeKit mode number to its corresponding Eufy mode number. * Searches the `this.modes` array to find a matching HomeKit mode. * Throws an error if a matching mode is not found. * * @param {number} hkMode - The HomeKit mode to convert * @returns {number} The corresponding Eufy mode * @throws {Error} If a matching mode is not found */ convertHKtoEufy(hkMode: number): number; /** * Convert a Eufy mode number to its corresponding HomeKit mode number. * Searches the `this.modes` array to find a matching Eufy mode. * Throws an error if a matching mode is not found. * * @param {number} eufyMode - The Eufy mode to convert * @returns {number} The corresponding HomeKit mode * @throws {Error} If a matching mode is not found */ convertEufytoHK(eufyMode: number): number; /** * Handle requests to get the current value of the 'Security System Current State' characteristic */ protected handleSecuritySystemCurrentStateGet(): CharacteristicValue; /** * Handle requests to get the current value of the 'Security System Target State' characteristic */ private handleSecuritySystemTargetStateGet; /** * Handle requests to set the 'Security System Target State' characteristic */ private handleSecuritySystemTargetStateSet; private handleManualTriggerSwitchStateGet; private handleManualTriggerSwitchStateSet; private onStationAlarmDelayedEvent; private onStationAlarmArmedEvent; private getGuardModeName; private updateManuelTriggerButton; } //# sourceMappingURL=StationAccessory.d.ts.map