homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
50 lines (49 loc) • 2.25 kB
TypeScript
import type { ServiceType } from '@homebridge/hap-client';
import type { Socket } from 'socket.io';
import { HapClient } from '@homebridge/hap-client';
import NodeCache from 'node-cache';
import { ConfigService } from '../../core/config/config.service.js';
import { JsonFileStoreService } from '../../core/fs/json-file-store.service.js';
import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service.js';
import { Logger } from '../../core/logger/logger.service.js';
import { MatterService } from '../../core/matter/matter.interfaces.js';
export declare class AccessoriesService {
private readonly configService;
private readonly logger;
private readonly homebridgeIpcService;
private readonly jsonStore;
hapClient: HapClient;
accessoriesCache: NodeCache;
private matterMonitoringActive;
private matterUpdateListener;
private matterMonitoringStartPromise;
private hapMonitorPromise;
private activeClients;
private clientSessions;
private matterAccessories;
private matterRequests;
private matterDispatcherInstalled;
constructor(configService: ConfigService, logger: Logger, homebridgeIpcService: HomebridgeIpcService, jsonStore: JsonFileStoreService);
private getChildBridgePins;
connect(client: Socket): Promise<void>;
private ensureHapMonitor;
private refreshCharacteristics;
loadAccessories(): Promise<ServiceType[]>;
getAccessory(uniqueId: string): Promise<MatterService | ServiceType>;
private getMatterAccessory;
setAccessoryCharacteristic(uniqueId: string, characteristicType: string, value: number | boolean | string): Promise<ServiceType>;
getAccessoryLayout(username: string): Promise<any>;
saveAccessoryLayout(user: string, layout: Record<string, unknown>): Promise<Record<string, unknown>>;
resetInstancePool(): void;
private parseMatterUniqueId;
private buildMatterUniqueId;
private waitForMatterEvent;
private attemptMatterEvent;
private ensureMatterDispatcher;
private ensureMatterMonitoringStarted;
private startMatterMonitoring;
private loadMatterAccessories;
private transformMatterAccessory;
private handleMatterStateUpdate;
private handleMatterControl;
}