@koush/ring-client-api
Version:
Unofficial API for Ring doorbells, cameras, security alarm system and smart lighting
87 lines (86 loc) • 4.79 kB
TypeScript
import { Socket as SocketIOSocket } from 'socket.io-client';
import { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';
import { AccountMonitoringStatus, AlarmMode, AssetSession, MessageDataType, MessageType, RingDeviceData, SocketIoMessage, TicketAsset, UserLocation, CameraEventResponse, CameraEventOptions, HistoryOptions, RingDeviceHistoryEvent, LocationModeResponse, LocationModeSettings, LocationMode, LocationModeSharing, LocationModeSettingsResponse, LocationModeInput } from './ring-types';
import { RingRestClient } from './rest-client';
import { RingCamera } from './ring-camera';
import { RingChime } from './ring-chime';
import { RingDevice } from './ring-device';
import { Subscribed } from './subscribed';
export declare class Location extends Subscribed {
readonly locationDetails: UserLocation;
readonly cameras: RingCamera[];
readonly chimes: RingChime[];
readonly options: {
hasHubs: boolean;
hasAlarmBaseStation: boolean;
locationModePollingSeconds?: number;
};
private restClient;
private seq;
onMessage: Subject<SocketIoMessage>;
onDataUpdate: Subject<SocketIoMessage>;
onDeviceDataUpdate: Observable<RingDeviceData>;
onDeviceList: Observable<SocketIoMessage>;
onDevices: Observable<RingDevice[]>;
onSessionInfo: Observable<AssetSession[]>;
onConnected: BehaviorSubject<boolean>;
onLocationMode: ReplaySubject<LocationMode>;
private onLocationModeRequested;
reconnecting: boolean;
private disconnected;
connectionPromise?: Promise<typeof SocketIOSocket>;
securityPanel?: RingDevice;
assets?: TicketAsset[];
receivedAssetDeviceLists: string[];
offlineAssets: string[];
hasHubs: boolean;
hasAlarmBaseStation: boolean;
constructor(locationDetails: UserLocation, cameras: RingCamera[], chimes: RingChime[], options: {
hasHubs: boolean;
hasAlarmBaseStation: boolean;
locationModePollingSeconds?: number;
}, restClient: RingRestClient);
get id(): string;
get locationId(): string;
get name(): string;
createConnection(): Promise<typeof SocketIOSocket>;
getConnection(): Promise<SocketIOClient.Socket>;
sendMessage(message: {
msg: MessageType;
datatype?: MessageDataType;
dst: string;
body?: any;
seq?: number;
}): Promise<void>;
sendCommandToSecurityPanel(commandType: string, data?: Record<string, unknown>): Promise<void>;
setAlarmMode(alarmMode: AlarmMode, bypassSensorZids?: string[]): Promise<void>;
getAlarmMode(): Promise<AlarmMode>;
soundSiren(): Promise<void>;
silenceSiren(): Promise<void>;
setLightGroup(groupId: string, on: boolean, durationSeconds?: number): Promise<any>;
getNextMessageOfType(type: MessageType, src: string): Promise<any[]>;
requestList(listType: MessageType, assetId: string): Promise<void>;
getList(listType: MessageType, assetId: string): Promise<any[]>;
getDevices(): Promise<RingDevice[]>;
getRoomList(assetId: string): Promise<any[]>;
getSecurityPanel(): Promise<RingDevice>;
disarm(): Promise<void>;
armHome(bypassSensorZids?: string[]): Promise<void>;
armAway(bypassSensorZids?: string[]): Promise<void>;
getHistory(options?: HistoryOptions): Promise<RingDeviceHistoryEvent[] & import("./rest-client").ExtendedResponse>;
getCameraEvents(options?: CameraEventOptions): Promise<CameraEventResponse & import("./rest-client").ExtendedResponse>;
getAccountMonitoringStatus(): Promise<AccountMonitoringStatus & import("./rest-client").ExtendedResponse>;
private triggerAlarm;
triggerBurglarAlarm(): Promise<AccountMonitoringStatus & import("./rest-client").ExtendedResponse>;
triggerFireAlarm(): Promise<AccountMonitoringStatus & import("./rest-client").ExtendedResponse>;
getLocationMode(): Promise<LocationModeResponse & import("./rest-client").ExtendedResponse>;
setLocationMode(mode: LocationModeInput): Promise<LocationModeResponse & import("./rest-client").ExtendedResponse>;
disableLocationModes(): Promise<void>;
enableLocationModes(): Promise<LocationModeSettingsResponse & import("./rest-client").ExtendedResponse>;
getLocationModeSettings(): Promise<LocationModeSettingsResponse & import("./rest-client").ExtendedResponse>;
setLocationModeSettings(settings: LocationModeSettings): Promise<LocationModeSettingsResponse & import("./rest-client").ExtendedResponse>;
getLocationModeSharing(): Promise<LocationModeSharing & import("./rest-client").ExtendedResponse>;
setLocationModeSharing(sharedUsersEnabled: boolean): Promise<LocationModeSharing & import("./rest-client").ExtendedResponse>;
supportsLocationModeSwitching(): Promise<boolean>;
disconnect(): void;
}