@switchbot/homebridge-switchbot
Version:
The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.
90 lines • 3.84 kB
TypeScript
import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
import type { blindTiltServiceData, blindTiltStatus, blindTiltWebhookContext, device, SwitchBotBLE } from 'node-switchbot';
import type { SwitchBotPlatform } from '../platform.js';
import type { devicesConfig } from '../settings.js';
import { Subject } from 'rxjs';
import { BlindTiltMappingMode } from '../utils.js';
import { deviceBase } from './device.js';
export declare class BlindTilt extends deviceBase {
readonly platform: SwitchBotPlatform;
private WindowCovering;
private Battery;
private LightSensor?;
private OpenModeSwitch?;
private CloseModeSwitch?;
deviceStatus: blindTiltStatus;
mappingMode: BlindTiltMappingMode;
webhookContext: blindTiltWebhookContext;
serviceData: blindTiltServiceData;
setNewTarget: boolean;
setNewTargetTimer: NodeJS.Timeout;
blindTiltMoving: boolean;
blindTiltUpdateInProgress: boolean;
doBlindTiltUpdate: Subject<void>;
constructor(platform: SwitchBotPlatform, accessory: PlatformAccessory, device: device & devicesConfig);
/**
* Parse the device status from the SwitchBotBLE API
*/
BLEparseStatus(): Promise<void>;
/**
* Parse the device status from the SwitchBot OpenAPI
*/
openAPIparseStatus(): Promise<void>;
parseStatusWebhook(): Promise<void>;
/**
* Asks the SwitchBot API for the latest device information
*/
refreshStatus(): Promise<void>;
BLERefreshStatus(): Promise<void>;
registerPlatformBLE(): Promise<void>;
openAPIRefreshStatus(): Promise<void>;
registerWebhook(): Promise<void>;
pushChanges(): Promise<void>;
BLEpushChanges(): Promise<void>;
openAPIpushChanges(): Promise<void>;
/**
* Handle requests to set the value of the "Target Horizontal Tilt" characteristic
*/
TargetHorizontalTiltAngleSet(value: CharacteristicValue): Promise<void>;
/**
* Handle requests to set the value of the "Target Position" characteristic
*/
TargetPositionSet(value: CharacteristicValue): Promise<void>;
startUpdatingBlindTiltIfNeeded(): Promise<void>;
/**
* Handle requests to set the value of the "Target Position" characteristic
*/
OpenModeSwitchSet(value: CharacteristicValue): Promise<void>;
/**
* Handle requests to set the value of the "Target Position" characteristic
*/
CloseModeSwitchSet(value: CharacteristicValue): Promise<void>;
updateHomeKitCharacteristics(): Promise<void>;
BLEPushConnection(): Promise<void>;
BLERefreshConnection(switchbot: SwitchBotBLE): Promise<void>;
setPerformance(): Promise<{
setPositionMode: number;
Mode: string;
}>;
setMinMax(): Promise<void>;
offlineOff(): Promise<void>;
apiError(e: any): Promise<void>;
getCurrentPosttionDirection(direction: blindTiltStatus['direction'] | blindTiltWebhookContext['direction'], slidePosition: blindTiltStatus['slidePosition'] | blindTiltWebhookContext['slidePosition']): Promise<void>;
/**
* Maps device values to homekit values
*
* @param devicePosition the position as reported by the devide
* @param deviceDirection the direction as reported by the device
* @returns [homekit position, homekit tiltAngle]
*/
mapDeviceValuesToHomekitValues(devicePosition: number, deviceDirection: string): [CharacteristicValue, CharacteristicValue?];
/**
* Maps homekit values to device values
*
* @param homekitPosition the position as reported by homekit
* @param homekitTiltAngle the tilt angle as reported by homekit
* @returns [device position, device direction]
*/
mapHomekitValuesToDeviceValues(homekitPosition: number, homekitTiltAngle: number): [string, number];
}
//# sourceMappingURL=blindtilt.d.ts.map