UNPKG

@homebridge-plugins/homebridge-august

Version:

The August plugin allows you to access your August & Yale device(s) from HomeKit.

70 lines 2.8 kB
import type { CharacteristicValue, PlatformAccessory } from 'homebridge'; import type { AugustPlatform } from '../Platform.HAP.js'; import type { device, devicesConfig, lockDetails, lockEvent, lockStatus } from '../settings.js'; import { deviceBase } from './device.js'; /** * 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 LockMechanism extends deviceBase { readonly platform: AugustPlatform; private LockMechanism?; private Battery; private ContactSensor?; lockEvent: lockEvent; lockStatus: lockStatus; lockDetails: lockDetails; lockUpdateInProgress: boolean; doLockUpdate: any; private pubnubUnsubscribe?; constructor(platform: AugustPlatform, accessory: PlatformAccessory, device: device & devicesConfig); /** * Parse the device status from the August api */ parseStatus(): Promise<void>; /** * Parse the device status from the August api */ parseEventStatus(): Promise<void>; /** * Asks the August Home API for the latest device information. * * Used for the initial fetch in the constructor. Periodic polling is * driven by AugustPlatform.startPolling(), which calls applyRefresh() * directly with details fetched serially across all registered locks. * * On failure: returns silently. The ConnectivityManager has already * classified the error and (if it's a network error) put itself into * 'degraded' state — a probe is scheduled and the next poll cycle * will skip until the probe confirms recovery. */ refreshStatus(): Promise<void>; /** * Apply a freshly-fetched lockDetails payload to HomeKit characteristics. * * Public so AugustPlatform.startPolling() can hand-off the result of * its serial details() call without going through refreshStatus() * (which would re-fetch). */ applyRefresh(lockDetails: lockDetails): Promise<void>; /** * Pushes the requested changes to the August API */ pushChanges(): Promise<void>; /** * Updates the status for each of the HomeKit Characteristics */ updateHomeKitCharacteristics(): Promise<void>; setLockTargetState(value: CharacteristicValue): Promise<void>; private pubnubStatusUnsubscribe?; private pubnubAugust?; subscribeAugust(): Promise<void>; /** * Tear down the PubNub subscription for this lock. Safe to call multiple * times and when no subscription exists. Called on lock removal to free * the PubNub instance, WebSocket connection, and listener. */ tearDownPubNubSubscription(): void; } //# sourceMappingURL=lock.d.ts.map