UNPKG

matterbridge-roborock-vacuum-plugin

Version:
105 lines 5.63 kB
import { AnsiLogger } from 'matterbridge/logger'; import { ServiceArea } from 'matterbridge/matter/clusters'; import { LocalStorage } from 'node-persist'; import { CleanModeSetting } from '../behaviors/roborock.vacuum/core/CleanModeSetting.js'; import { MapInfo, RoomIndexMap } from '../core/application/models/index.js'; import { AuthenticationResponse } from '../model/AuthenticationResponse.js'; import { PlatformConfigManager } from '../platform/platformConfigManager.js'; import { RoborockAuthenticateApi } from '../roborockCommunication/api/authClient.js'; import { RoborockIoTApi } from '../roborockCommunication/api/iotClient.js'; import { Device, Home, RawRoomMappingData, RequestMessage, Scene, UserData } from '../roborockCommunication/models/index.js'; import { ServiceContainer } from '../services/index.js'; import { DeviceNotifyCallback, Factory } from '../types/index.js'; import { WssSendSnackbarMessage } from '../types/WssSendSnackbarMessage.js'; export interface RoborockServiceConfig { authenticateApiFactory?: (logger: AnsiLogger, baseUrl: string) => RoborockAuthenticateApi; iotApiFactory?: Factory<UserData, RoborockIoTApi>; refreshInterval: number; baseUrl: string; persist: LocalStorage; configManager: PlatformConfigManager; container?: ServiceContainer; toastMessage: WssSendSnackbarMessage; } /** Facade coordinating Auth, Device, Area, and Message services via ServiceContainer. */ export declare class RoborockService { private logger; private configManager; private readonly container; private readonly authCoordinator; private readonly deviceService; private readonly areaService; private readonly messageRoutingService; private readonly pollingService; private readonly connectionService; private readonly toastMessage; deviceNotify: DeviceNotifyCallback | undefined; constructor(params: RoborockServiceConfig, logger: AnsiLogger, configManager: PlatformConfigManager); authenticate(): Promise<AuthenticationResponse>; /** List all devices for the user's account. */ listDevices(): Promise<Device[]>; getSerialNumber(duid: string): Promise<string>; /** Get home data for periodic updates. */ getHomeDataForUpdating(homeid: number): Promise<Home | undefined>; /** Initialize MQTT client for cloud communication. */ initializeMessageClient(device: Device, userdata: UserData): Promise<void>; /** Initialize local network connection for a device. */ initializeMessageClientForLocal(device: Device): Promise<boolean>; /** Send a test email to verify email notification settings. */ sendTestEmailNotification(): Promise<void>; /** Set callback for device status notifications. */ setDeviceNotify(callback: DeviceNotifyCallback): void; /** Start polling device status via local network. */ activateDeviceNotify(device: Device): void; /** Trigger a one-shot local/MQTT status request for a device. */ requestDeviceStatusOnce(duid: string): Promise<void>; /** Stop service and clean up resources. */ stopService(): void; /** Set selected cleaning areas for a device. */ setSelectedAreas(duid: string, selectedAreas: number[]): void; /** Get selected cleaning areas for a device. */ getSelectedAreas(duid: string): number[]; /** Set supported cleaning areas (rooms) for a device. */ setSupportedAreas(duid: string, supportedAreas: ServiceArea.Area[]): void; /** Set area-to-room index mapping for a device. */ setSupportedAreaIndexMap(duid: string, indexMap: RoomIndexMap): void; /** Set supported cleaning routines/scenes for a device. */ setSupportedRoutines(duid: string, routineAsRooms: ServiceArea.Area[]): void; /** Get supported cleaning areas for a device. */ getSupportedAreas(duid: string): ServiceArea.Area[]; /** Get area index map for a device. */ getSupportedAreasIndexMap(duid: string): RoomIndexMap | undefined; /** Get map information for a device. */ getMapInfo(duid: string): Promise<MapInfo>; /** Get room mapping for a device. */ getRoomMap(duid: string, activeMap: number): Promise<RawRoomMappingData>; /** Get all scenes for a home. */ getScenes(homeId: number): Promise<Scene[] | undefined>; /** Start a cleaning scene/routine. */ startScene(sceneId: number): Promise<unknown>; /** Get current cleaning mode settings. */ getCleanModeData(duid: string): Promise<CleanModeSetting>; /** Get vacuum's current room from map. */ getRoomIdFromMap(duid: string): Promise<number | undefined>; /** Change cleaning mode settings. */ changeCleanMode(duid: string, settings: CleanModeSetting): Promise<void>; /** Start cleaning with selected areas. */ startClean(duid: string): Promise<void>; /** Pause cleaning. */ pauseClean(duid: string): Promise<void>; /** Stop cleaning and return to dock. */ stopAndGoHome(duid: string): Promise<void>; /** Resume paused cleaning. */ resumeClean(duid: string): Promise<void>; stopClean(duid: string): Promise<void>; /** Play sound to locate vacuum. */ playSoundToLocate(duid: string): Promise<void>; /** Execute custom GET request to device. */ customGet<T = unknown>(duid: string, request: RequestMessage): Promise<T>; /** Send custom command to device (fire-and-forget). */ customSend(duid: string, request: RequestMessage): Promise<void>; /** Execute custom API GET request. */ getCustomAPI<T = unknown>(url: string): Promise<T>; private buildCleanCommand; } //# sourceMappingURL=roborockService.d.ts.map