tapo-camera-client
v1.0.1
Published
TypeScript/Node.js client for controlling Tapo cameras
Maintainers
Readme
Tapo Camera Node.js Client
A TypeScript/Node.js client for controlling Tapo cameras. Based on pytapo.
Features
- Full TypeScript support
- Secure connection handling
- Comprehensive camera control API
- Event monitoring
- Video quality management
- LED control
- Privacy mode management
- Motor control for PTZ cameras
- SD card status
- Time and timezone management
Installation
npm install tapo-camera-clientUsage
import { TapoCamera } from 'tapo-camera-client';
const camera = new TapoCamera({
host: 'camera-ip',
user: 'your-username',
password: 'your-password'
});
await camera.init();
// Get LED status
const ledStatus = await camera.getLED();
console.log('LED Status:', ledStatus);
// Control camera movement (PTZ)
await camera.moveMotor(10, 20);
// Get privacy mode status
const privacyMode = await camera.getPrivacyMode();
console.log('Privacy Mode:', privacyMode);API Documentation
Constructor Options
{
host: string; // Camera IP address
user: string; // Username
password: string; // Password
childID?: string; // Optional child device ID
reuseSession?: boolean; // Reuse session (default: true)
printDebugInformation?: boolean; // Print debug info (default: false)
controlPort?: number; // Control port (default: 443)
retryStok?: boolean; // Retry authentication (default: true)
}Available Methods
init(): Initialize the camera connectiongetLED(): Get LED statussetLEDEnabled(enabled: boolean): Set LED statusgetPrivacyMode(): Get privacy mode statussetPrivacyMode(enabled: boolean): Set privacy modemoveMotor(x: number, y: number): Move camera to specific coordinatesgetEvents(): Get camera eventsgetVideoQualities(): Get available video qualitiesgetSDCard(): Get SD card information- And many more...
Development
# Install dependencies
npm install
# Build
npm run build
# Test
npm test
# Lint
npm run lintContributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
