@homebridge-plugins/homebridge-august
Version:
The August plugin allows you to access your August & Yale device(s) from HomeKit.
70 lines • 2.8 kB
TypeScript
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