homebridge-unifi-occupancy-lite
Version:
Lightweight UniFi occupancy sensor plugin for Homebridge using API tokens only. Works with UDM Pro/SE, UDM, UDR and other UniFi OS devices.
82 lines (81 loc) • 1.93 kB
TypeScript
export interface UniFiConfig {
controller: string;
apiKey: string;
site: string;
secure: boolean;
useSiteManagerApi?: boolean;
hostId?: string;
endpoints?: {
sites?: string;
clients?: string;
devices?: string;
};
}
export declare class UniFiLiteClient {
private config;
private baseUrl;
private controllerType;
constructor(config: UniFiConfig);
private detectControllerType;
/**
* Make HTTP request to UniFi API using Node.js built-in modules
*/
private request;
/**
* GET request
*/
get(endpoint: string): Promise<any>;
/**
* POST request
*/
post(endpoint: string, data?: any): Promise<any>;
/**
* Get all sites
*/
getSites(): Promise<any[]>;
/**
* Get active clients for a site
*/
getClients(site?: string): Promise<any[]>;
/**
* Get devices using Site Manager API or local controller
*/
getDevices(): Promise<any[]>;
/**
* Get network devices (access points, switches)
*/
getNetworkDevices(site?: string): Promise<any[]>;
/**
* Get device fingerprints database
*/
getDeviceFingerprints(): Promise<any>;
/**
* Get client statistics including traffic data
*/
getClientStats(mac: string, site?: string): Promise<any>;
/**
* Get site statistics
*/
getSiteStats(site?: string): Promise<any>;
/**
* Get ISP metrics (Site Manager API only)
*/
getIspMetrics(): Promise<any>;
/**
* Get client traffic data for the last 15 minutes
*/
getClientTrafficLast15Min(mac: string): Promise<{
rx_bytes: number;
tx_bytes: number;
} | null>;
/**
* For compatibility with original code
*/
get opts(): {
site: string;
};
/**
* Test API connection
*/
testConnection(): Promise<boolean>;
}