node-red-contrib-tplink-tapo-connect-api
Version:
This unofficial node-RED node allows connection to TP-Link Tapo devices. This project has been enhanced with AI support to enable new features. Starting with v0.50, we have added support for the KLAP protocol. To prioritize the operation of this node, we
59 lines (58 loc) • 1.62 kB
TypeScript
import { TapoApiRequest, TapoApiResponse } from '../types';
export interface EnergyUsageData {
current_power?: number;
today_runtime?: number;
month_runtime?: number;
today_energy?: number;
month_energy?: number;
local_time?: string;
electricity_charge?: number[];
}
export interface EnergyStatistics {
power_usage?: {
today?: number;
past7?: number[];
past30?: number[];
};
time_usage?: {
today?: number;
past7?: number[];
past30?: number[];
};
}
/**
* Controller for energy monitoring functionality
* Single responsibility: Energy data retrieval and management
*/
export declare class EnergyController {
private readonly sendRequest;
constructor(sendRequest: (request: TapoApiRequest) => Promise<TapoApiResponse>);
/**
* Get current energy usage information
*/
getEnergyUsage(): Promise<EnergyUsageData>;
/**
* Get current power consumption
*/
getCurrentPower(): Promise<number>;
/**
* Get energy statistics for specified period
*/
getEnergyStatistics(interval?: 'day' | 'week' | 'month'): Promise<EnergyStatistics>;
/**
* Check if device supports energy monitoring
*/
static supportsEnergyMonitoring(deviceModel: string): boolean;
/**
* Validate energy usage data
*/
validateEnergyData(data: EnergyUsageData): boolean;
/**
* Format energy data for display
*/
formatEnergyData(data: EnergyUsageData): string;
/**
* Get start timestamp for statistics query
*/
private getStartTimestamp;
}