@lumiastream/tplink-tapo-cove
v4.2.0
Published
Unified TP-Link API supporting both Kasa and Tapo devices
Downloads
7
Readme
@lumiastream/tplink-tapo-cove
Unified TP-Link API supporting both Kasa (older TP-Link devices) and Tapo (newer TP-Link devices) smart home products.
Features
- Single API for both Kasa and Tapo devices
- Automatic protocol detection
- Device discovery (local and cloud)
- Control lights, plugs, and other smart devices
- Support for RGB colors, brightness, and color temperature
- Energy monitoring for compatible devices
Installation
npm install @lumiastream/tplink-tapo-coveUsage
Basic Example
import { UnifiedTpLinkApi } from '@lumiastream/tplink-tapo-cove';
// Initialize the API
const api = new UnifiedTpLinkApi({
email: '[email protected]',
password: 'your-password'
});
// Discover all devices
const { allDevices } = await api.discover();
// Control a device
const deviceId = allDevices[0].id;
await api.turnOn(deviceId);
await api.setBrightness(deviceId, 50);
await api.setRgb(deviceId, 255, 0, 0); // RedDevice Discovery
// Discover both Kasa and Tapo devices
const { kasaDevices, tapoDevices, allDevices } = await api.discover({
includeKasa: true,
includeTapo: true,
kasaTimeout: 4000
});
// Get devices by protocol
const kasaOnly = api.getDevicesByProtocol(DeviceProtocol.KASA);
const tapoOnly = api.getDevicesByProtocol(DeviceProtocol.TAPO);Advanced Control
// Create custom light states
const tapoState = api.createTapoLightState();
tapoState.on().brightness(75).hsl(180, 100, 50);
const kasaState = api.createKasaLightState();
kasaState.on().brightness(50).rgb(0, 255, 0);
// Apply states to devices
await api.setLightState(deviceId, tapoState.getValues());API Reference
UnifiedTpLinkApi
Main class for controlling TP-Link devices.
Methods:
discover(options)- Discover all devicesgetDevice(deviceId)- Get device by IDgetAllDevices()- Get all discovered devicesgetDevicesByProtocol(protocol)- Filter devices by protocolgetDevicesByType(type)- Filter devices by typeturnOn(deviceId)/turnOff(deviceId)- Control powersetBrightness(deviceId, value)- Set brightness (0-100)setRgb(deviceId, r, g, b)- Set RGB colorsetHsl(deviceId, h, s, l)- Set HSL colorsetColorTemperature(deviceId, temp)- Set color temperaturegetDeviceInfo(deviceId)- Get device informationgetEnergyUsage(deviceId)- Get energy usage data
Device Protocols
DeviceProtocol.KASA- Older TP-Link devices (HS, KL, LB series)DeviceProtocol.TAPO- Newer TP-Link devices (Tapo series)
License
MIT
