Eufy Security Plugin for Scrypted: Complete HomeKit Integration Guide

Transform your Eufy security cameras into fully-featured HomeKit Secure Video devices with this open-source Eufy Scrypted plugin. As a result, you’ll get native iOS integration, local processing, and eliminate monthly cloud fees—all while maintaining complete privacy control.


Eufy Security Plugin for Scrypted
Table Of Contents
  1. Eufy Security Plugin for Scrypted: Complete HomeKit Integration Guide

Why This Eufy Scrypted Plugin Exists

The Eufy HomeKit Problem

Eufy security cameras are excellent hardware—affordable, feature-rich, and subscription-free. However, they lack native HomeKit Secure Video (HKSV) support, which limits their integration with Apple’s ecosystem and modern home automation platforms. Consequently, users are stuck with Eufy’s proprietary app and miss out on the benefits of unified smart home control.

The core technical challenge: Eufy devices use legacy OpenSSL encryption methods that modern Node.js versions (18+) cannot communicate with. Unfortunately, these deprecated protocols have been removed from current Node.js runtimes due to security vulnerabilities. As a result, developers face a significant barrier when trying to integrate Eufy cameras with modern automation platforms.

This is exactly why the Eufy Scrypted plugin was created—to bridge this compatibility gap while maintaining security standards.

The Solution: Eufy Scrypted Plugin Bridged Architecture

This Eufy Scrypted plugin solves the compatibility problem through a two-tier architecture that separates legacy protocol handling from modern home automation. Moreover, this design ensures security while maintaining full functionality.

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Scrypted      │    │  Eufy Security   │    │  Eufy Devices   │
│   (Modern)      │◄──►│  WebSocket       │◄──►│  (Legacy        │
│   Node.js 20+   │    │  Server          │    │  OpenSSL)       │
└─────────────────┘    └──────────────────┘    └─────────────────┘
        │
        ▼
┌─────────────────┐
│   HomeKit       │
│   Secure Video  │
└─────────────────┘

Key advantages of this Eufy Scrypted plugin approach:

  • Security: First and foremost, the main application runs on modern, patched Node.js
  • Compatibility: Meanwhile, the legacy bridge handles old encryption protocols seamlessly
  • Isolation: Additionally, legacy components are containerized for enhanced security
  • Performance: Furthermore, optimized video streaming delivers minimal latency
  • Maintainability: Finally, clear separation of concerns enables easier updates and debugging

For more information, read about Scrypted’s plugin architecture and HomeKit integration best practices.


Key Features of the Eufy Scrypted Plugin

HomeKit Secure Video Integration via Eufy Scrypted Plugin

  • Native iOS/macOS Support: View cameras directly in the Home app without third-party software
  • Local AI Processing: Subsequently, object detection occurs on your HomeKit hub for enhanced privacy
  • Secure Notifications: Receive end-to-end encrypted rich notifications with snapshot previews
  • iCloud Storage: Automatically backup motion events to iCloud for 10 days (or more with subscription)
  • Multi-Device Sync: Access your cameras across iPhone, iPad, Mac, and Apple Watch seamlessly

To learn more, check out the guide on setting up HomeKit with Scrypted.

Complete Device Support

Cameras

Security Cameras
  • Indoor Cameras: Including Indoor Cam 2K (C24) and Indoor Cam Pan & Tilt models
  • Outdoor Cameras: Such as eufyCam 2/2C/2 Pro, eufyCam E, and eufyCam 3/3C
  • Floodlight Cameras: Featuring Floodlight Cam 2 Pro and standard Floodlight Camera
  • Specialty Cameras: Comprising Solo Cams (C22/C24) and Video Doorbell series

Smart Security Devices

  • Doorbells: For instance, Video Doorbell 1080p, Video Doorbell 2K, and Battery Doorbell variants
  • Sensors: Including Entry Sensor, Motion Sensor, and Keypad for comprehensive monitoring
  • Base Stations: Ranging from HomeBase 1/2/3 to the latest HomeBase S380 model

In addition, you can check the complete compatibility list for your specific model.

Advanced Video Features in the Eufy Scrypted Plugin

Live Streaming

  • Real-time H.264 video up to 2K resolution for crystal-clear viewing
  • Configurable bitrates and quality settings to match your network capacity
  • Multi-viewer support allowing 4+ concurrent streams simultaneously
  • Low latency delivering typical delay of just 1-3 seconds

Recording & Snapshots

  • High-quality JPEG snapshot capture for instant previews
  • Motion-triggered recording to HomeKit with customizable sensitivity
  • Configurable recording duration and quality based on your storage needs
  • Local storage via HomeBase devices, eliminating cloud dependency

Two-Way Audio

  • AAC stereo audio support for clear communication
  • Real-time communication with visitors at your doorstep
  • Adjustable audio quality and bitrate for optimal performance

Smart Camera Controls with Eufy Scrypted Plugin

PTZ (Pan-Tilt-Zoom)

  • Smooth pan and tilt control with precise positioning
  • Digital zoom up to 8x for detailed close-ups
  • Preset position management to quickly access favorite views
  • 360° rotation support on compatible camera models

Motion Detection

  • Customizable motion zones to reduce false alerts
  • Sensitivity adjustment for different environments
  • Person detection on compatible models using AI
  • Pet detection filtering to ignore your furry friends

Floodlight Control

  • On/off switching via HomeKit or automation
  • Brightness adjustment from 0-100% intensity
  • Scheduled activation based on time or sunset/sunrise
  • Motion-triggered lighting for enhanced security

Security System Integration

HomeBase Features

  • Arm/disarm security modes with one tap
  • Home, Away, and Night mode presets for different scenarios
  • Guard mode scheduling for automatic protection
  • Alarm triggers and notifications when events occur

Sensor Integration

  • Entry sensor status monitoring for doors and windows
  • Motion sensor event handling with customizable responses
  • Temperature monitoring on compatible sensors
  • Battery level tracking with low-battery alerts

How the Eufy Scrypted Plugin Works: Technical Architecture

Monorepo Structure of the Eufy Scrypted Plugin

This Eufy Scrypted plugin is organized as a monorepo containing four specialized packages that work together. Consequently, each package focuses on a specific responsibility while maintaining clean interfaces between components.

1. @scrypted/eufy-security-scrypted – Main Eufy Scrypted Plugin

The core Scrypted integration that users install and interact with daily.

Responsibilities:

  • Device discovery and management across your network
  • HomeKit Secure Video integration with Apple’s ecosystem
  • Video streaming coordination between components
  • Event handling for motion, doorbell presses, and alarms
  • User interface and configuration management

Test Coverage: 160 comprehensive tests ensuring reliability

2. @scrypted/eufy-security-client – WebSocket Client

Type-safe TypeScript library for communicating with Eufy Security systems. In other words, this package handles all low-level communication.

Responsibilities:

  • WebSocket connection management with automatic retry logic
  • API command transmission to Eufy devices
  • Event stream processing for real-time updates
  • Schema negotiation and compatibility with different firmware versions
  • Automatic reconnection handling during network interruptions

Test Coverage: 184 tests with 100% pass rate demonstrating robustness

3. @scrypted/eufy-stream-server – Video Streaming

Custom TCP server optimized for H.264 video delivery. Specifically designed for low-latency streaming.

Responsibilities:

  • Raw H.264 video streaming without transcoding overhead
  • NAL unit parsing and keyframe detection for smooth playback
  • Multi-viewer connection management allowing concurrent access
  • Streaming statistics and monitoring for diagnostics
  • SPS/PPS header caching to reduce startup time

Test Coverage: 22 streaming-specific tests validating video handling

4. @scrypted/eufy-security-cli – Command-Line Tool

Developer utility for testing and debugging during development. Particularly useful for automation scripts.

Responsibilities:

  • Direct device control from terminal without GUI
  • Video streaming to media players like VLC
  • Device status querying for diagnostics
  • Connection diagnostics and troubleshooting
  • Automation scripting for advanced users

Test Coverage: 83 reliability tests ensuring stability

Data Flow in the Eufy Scrypted Plugin

┌─────────────────┐
│   Scrypted UI   │
│  (Web/Mobile)   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐     WebSocket      ┌──────────────────┐
│  Eufy Scrypted  │◄──────────────────►│  Eufy Security   │
│  Plugin         │                    │  WebSocket       │
│                 │                    │  Server          │
└────────┬────────┘                    └────────┬─────────┘
         │                                      │
         │ Video Stream                         │ Legacy Protocol
         ▼                                      ▼
┌─────────────────┐                    ┌──────────────────┐
│  Stream Server  │                    │  Eufy Cameras    │
│  (H.264/TCP)    │                    │  & Devices       │
└────────┬────────┘                    └──────────────────┘
         │
         ▼
┌─────────────────┐
│  Media Players  │
│  (VLC, ffplay)  │
└─────────────────┘
         │
         ▼
┌─────────────────┐
│    HomeKit      │
│  (iOS/macOS)    │
└─────────────────┘

Security Model in the Eufy Scrypted Plugin

Container Isolation

  • Legacy protocol handler runs in an isolated Docker container
  • Network access is limited to Eufy devices only
  • There’s no direct access to the main application or host system
  • Memory and resource limits are enforced to prevent abuse

Modern Security Practices

  • Main application uses Node.js 20+ with the latest security patches
  • WebSocket communication occurs over secure channels
  • Credential storage is avoided in legacy components
  • Regular dependency updates and security scanning are performed

Furthermore, explore more about Scrypted’s security architecture for in-depth information.


Supported Devices

Cameras with Full Eufy Scrypted Plugin Support

Indoor Models

  • Indoor Cam 2K (C24): Featuring 2K resolution, night vision, and motion tracking capabilities
  • Indoor Cam 2K Pan & Tilt: Offering 360° rotation with intelligent auto-tracking
  • Indoor Cam 1080p: Providing Full HD quality with two-way audio communication

Outdoor Models

  • eufyCam 2/2C: Wire-free design with 365-day battery life and IP67 weatherproofing
  • eufyCam 2 Pro: Enhanced 2K resolution with spotlight and color night vision
  • eufyCam E: Budget-friendly 1080p option with wire-free installation and 1-year battery
  • eufyCam 3/3C: Premium 4K resolution powered by BionicMind AI technology

Specialty Cameras

  • Solo Cam series: Designed for standalone operation without requiring a base station
  • Floodlight Camera: Integrated 2500-lumen floodlight for illumination and deterrence
  • Floodlight Cam 2 Pro: Advanced 2K resolution with dual-camera capability

Doorbells Compatible with Eufy Scrypted Plugin

  • Video Doorbell 1080p: Full HD quality with instant motion alerts
  • Video Doorbell 2K: Enhanced resolution featuring pre-roll recording technology
  • Battery Video Doorbell: Convenient wire-free installation for any location

Smart Home Devices

Base Stations

  • HomeBase 1: Supporting up to 16 devices with local storage capability
  • HomeBase 2: Enhanced processing power with 16GB built-in storage
  • HomeBase 3: Latest generation featuring BionicMind AI and expandable storage
  • HomeBase S380: SolarPanel-compatible option for sustainable operation

Sensors & Accessories

  • Entry Sensor: Monitoring door and window status changes
  • Motion Sensor: Detecting movement using PIR technology
  • Keypad: Controlling security system with PIN codes
  • Smart Lock: Offering fingerprint and keypad access options

Compatibility Notes

Full HomeKit Support: All cameras with live streaming capability are fully supported Limited Support: Sensors provide read-only status monitoring Not Supported: Cloud-only devices like the Security Solo series aren’t compatible


Eufy Scrypted Plugin Installation Guide

Prerequisites for the Eufy Scrypted Plugin

Required Software

  • Scrypted Server (v0.5.0 or newer) as the foundation platform
  • Docker for container deployment and isolation
  • Node.js which is already included with Scrypted

System Requirements

  • CPU: At least 2+ cores recommended for smooth video transcoding
  • RAM: Minimum 4GB, though 8GB is recommended for optimal performance
  • Storage: 1GB for the plugin itself, plus additional space for recordings
  • Network: Stable connection to Eufy devices is essential

Supported Platforms

  • Linux distributions including Ubuntu, Debian, and Raspberry Pi OS
  • macOS supporting both Intel and Apple Silicon architectures
  • Windows via WSL2 or Docker Desktop

Step 1: Install Scrypted

Via Docker (Recommended)

# Pull and run Scrypted container
docker run -d \
  --name scrypted \
  --restart unless-stopped \
  -p 10443:10443 \
  -p 11080:11080 \
  -v ~/.scrypted:/server/volume \
  koush/scrypted

# Verify installation
docker logs scrypted

After installation, access Scrypted at: https://localhost:10443

To explore alternative methods, learn more about Scrypted installation options.

Via NPM (Advanced)

# Install globally
npm install -g @scrypted/server

# Run server
scrypted-serve

Step 2: Deploy Eufy Security WebSocket Server

This server handles the legacy Eufy protocol communication separately from the main application.

# Create configuration directory
mkdir -p ~/.eufy-security-ws

# Run WebSocket server
docker run -d \
  --name eufy-security-ws \
  --restart unless-stopped \
  -p 3000:3000 \
  -e USERNAME=your_eufy_email@example.com \
  -e PASSWORD=your_eufy_password \
  -v ~/.eufy-security-ws:/app/data \
  bropat/eufy-security-ws:latest

# Check server logs
docker logs eufy-security-ws

Environment Variables:

  • USERNAME: Your Eufy account email address
  • PASSWORD: Your Eufy account password
  • COUNTRY: Optional configuration (defaults to US)
  • PORT: WebSocket port setting (default 3000)

Step 3: Install the Eufy Scrypted Plugin

  1. First, open the Scrypted web interface at: https://localhost:10443
  2. Next, navigate to: Settings → Plugins
  3. Then, search for: “Eufy Security”
  4. Finally, click Install and wait for the installation to complete

Step 4: Configure the Eufy Scrypted Plugin

  1. Initially, go to: Settings → Plugins → Eufy Security
  2. Subsequently, enter your configuration details:
    • WebSocket URLws://localhost:3000 (or your server’s IP address)
    • Username: Your Eufy account email
    • Password: Your Eufy account password
  3. Lastly, click Save and then Reload to apply changes

Step 5: Device Discovery with Eufy Scrypted Plugin

The Eufy Scrypted plugin will automatically discover all Eufy devices on your network. Here’s what to expect:

  1. First, navigate to the Devices tab
  2. Then, wait for auto-discovery to complete (typically 30-60 seconds)
  3. Finally, your devices will appear with their names and types

Step 6: Add to HomeKit

  1. To begin, install the HomeKit plugin in Scrypted (if not already installed)
  2. Afterwards, go to: Settings → Plugins → HomeKit
  3. Next, click Scan QR Code and use your iOS Home app
  4. As a result, your Eufy cameras will appear as native HomeKit cameras

For advanced configuration options, check out the complete Scrypted HomeKit guide.


Performance Benchmarks

Video Streaming Metrics

Latency Measurements

  • Live Stream Start: Typically 1-3 seconds from initial request
  • Keyframe Detection: Processing completed in less than 100ms
  • Stream Buffering: Configurable between 500ms-2s based on network conditions

Quality Settings

  • 2K Resolution: 2304×1296 pixels at 2-4 Mbps bitrate
  • 1080p Resolution: 1920×1080 pixels at 1-2 Mbps bitrate
  • 720p Resolution: 1280×720 pixels at 512-1024 Kbps bitrate

Multi-Viewer Performance

  • 4 Concurrent Viewers: Less than 5% CPU increase per additional stream
  • Memory Usage: Approximately 30MB allocated per active stream
  • Network Overhead: Minimal overhead thanks to shared stream source

System Resource Usage

Idle State (no active streams running)

  • CPU: Less than 2% utilization
  • RAM: Between 85-150MB consumption
  • Network: Under 100 KB/s bandwidth usage

Active Streaming (4 cameras streaming at 1080p)

  • CPU: Between 15-30% depending on transcoding requirements
  • RAM: Approximately 200-400MB total consumption
  • Network: Total bandwidth of 8-16 Mbps across all streams

Reliability Statistics

Uptime: Consistently 99.5%+ with automatic reconnection Connection Recovery: Less than 10 seconds after network disruption Stream Stability: 99.8% reliability with no dropped frames under normal conditions


Troubleshooting Common Issues

Connection Problems with Eufy Scrypted Plugin

Issue: Plugin can’t connect to WebSocket server

Solutions:

  1. First, verify the WebSocket server is running:docker logs eufy-security-ws
  2. Next, check network connectivity:curl http://localhost:3000/health
  3. Additionally, confirm credentials are correct in environment variables
  4. Finally, check that firewall rules allow port 3000

Issue: Devices not discovered by Eufy Scrypted plugin

Solutions:

  1. Initially, ensure Eufy devices are online in the Eufy Security app
  2. Subsequently, verify HomeBase is connected to the same network
  3. Alternatively, restart the WebSocket server:docker restart eufy-security-ws
  4. Moreover, check logs for authentication errors

For more solutions, find additional help in the Scrypted troubleshooting guide.

Video Streaming Issues

Issue: Black screen or no video appearing

Solutions:

  1. First, check that the camera is online and streaming in the Eufy app
  2. Then, verify network bandwidth is sufficient (2+ Mbps minimum)
  3. Next, restart the camera from plugin settings
  4. Finally, check Scrypted logs for codec errors

Issue: High latency exceeding 5 seconds

Solutions:

  1. Initially, reduce video quality in plugin settings
  2. Alternatively, check network congestion and consider using a wired connection
  3. Additionally, reduce concurrent viewer count
  4. Furthermore, increase buffer size in advanced settings

HomeKit Integration Problems

Issue: Cameras not appearing in the Home app

Solutions:

  1. First, ensure the HomeKit plugin is installed and configured properly
  2. Next, re-scan the QR code in your iOS Home app
  3. Then, check that the HomeKit bridge is running in Scrypted
  4. As a last resort, remove and re-add cameras to HomeKit

Issue: Rich notifications not working correctly

Solutions:

  1. Initially, enable “Detect People” in camera settings
  2. Subsequently, ensure your iCloud subscription is active
  3. Additionally, verify your iOS device has HomeHub enabled
  4. Finally, check motion detection sensitivity settings

Performance Issues

Issue: High CPU usage affecting system performance

Solutions:

  1. First, limit concurrent streams to 2-3 maximum
  2. Alternatively, reduce video resolution and bitrate settings
  3. Additionally, disable hardware acceleration if it’s causing issues
  4. Finally, check for memory leaks in the logs

Issue: Memory leaks developing over time

Solutions:

  1. Initially, restart the Scrypted server weekly as preventive maintenance
  2. Subsequently, enable memory threshold warnings in the plugin
  3. Then, update to the latest plugin version
  4. Finally, report the issue with logs to GitHub for investigation

To report new problems, visit the GitHub issues page.


Development & Contributing

Project Structure

eufy-security-scrypted/
├── packages/
│   ├── eufy-security-client/      # WebSocket client library
│   ├── eufy-security-cli/         # Command-line tool
│   ├── eufy-security-scrypted/    # Main Scrypted plugin
│   └── eufy-stream-server/        # Video streaming server
├── docker/                        # Container configurations
├── .github/workflows/             # CI/CD pipelines
└── lerna.json                     # Monorepo config

Building the Eufy Scrypted Plugin from Source

# Clone repository
git clone https://github.com/caplaz/eufy-security-scrypted.git
cd eufy-security-scrypted

# Install dependencies
npm install

# Build all packages
npm run build

# Run tests (318 total)
npm run test

Development Workflow

1. Set up development environment

# Install VS Code extensions
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscode

# Configure Scrypted connection
cp .vscode/settings.json.example .vscode/settings.json
# Edit settings.json with your Scrypted server IP

2. Make changes in packages

# Navigate to package
cd packages/eufy-security-scrypted

# Watch mode for development
npm run watch

3. Test changes thoroughly

# Run package tests
npm run test

# Deploy to Scrypted for testing
npm run deploy

4. Submit pull request

  • First, fork the repository on GitHub
  • Then, create a feature branch: git checkout -b feature/my-feature
  • Next, commit your changes: git commit -m "Add my feature"
  • Afterwards, push to your fork: git push origin feature/my-feature
  • Finally, open a pull request with a detailed description

For more details, learn about contributing to Scrypted plugins.

Code Quality Standards

TypeScript

  • Strict mode is enabled for all code
  • Full type coverage is required
  • The use of any types requires justification

Testing

  • Unit tests are mandatory for all new functions
  • Integration tests must cover complete workflows
  • Minimum 80% code coverage is expected

Linting

  • ESLint with Airbnb config is enforced
  • Prettier handles all formatting automatically
  • Pre-commit hooks ensure standards compliance

Contribution Guidelines for Eufy Scrypted Plugin

What We’re Looking For

  • Bug fixes accompanied by comprehensive test cases
  • New device support with complete documentation
  • Performance improvements backed by benchmarks
  • Documentation enhancements for clarity

Not Accepted

  • Features that compromise security in any way
  • Breaking changes without a clear migration path
  • Poorly documented code that’s hard to maintain
  • Changes submitted without adequate tests

Resources & Support

Official Documentation

Community Support

  • GitHub Discussions: Ask questions and share your setup configurations
  • Issue Tracker: Report bugs and request new features
  • Scrypted Discord: Join real-time community chat for immediate help

Related Projects & Tools


Credits & Acknowledgments

Project MaintainerStefano Acerbetti (Caplaz)

Special Thanks:

  • @bropat: Creator of eufy-security-ws, the foundational protocol bridge that makes this integration possible
  • @koush: Creator of Scrypted, the powerful automation platform
  • Open Source Community: Contributors, testers, and supporters who make this project better every day

Technology Stack:

  • Node.js & TypeScript: Core platform providing type-safe development
  • Lerna: Monorepo management for coordinated releases
  • Jest: Comprehensive testing framework
  • Docker: Containerization for isolation and portability
  • FFmpeg: Professional-grade video processing

License

This Eufy Scrypted plugin is licensed under the MIT License.

MIT License

Copyright (c) 2024 Stefano Acerbetti

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Frequently Asked Questions

Is this Eufy Scrypted plugin secure?

Yes, absolutely. The legacy protocol handling runs in an isolated Docker container with limited access. Furthermore, the main application uses modern Node.js with up-to-date security patches. As a result, all communication is authenticated and can be encrypted for maximum security.

Will this Eufy Scrypted plugin work with Eufy’s cloud-only devices?

Unfortunately, no. This Eufy Scrypted plugin requires local network access to your devices. Consequently, cloud-only models that don’t support local streaming are not compatible with this integration.

Do I need a HomeBase for the Eufy Scrypted plugin?

Ready to Transform Your Business?

Join us at Caplaz and let’s create innovative solutions together that drive success and growth.

Scroll to Top