-
-
Notifications
You must be signed in to change notification settings - Fork 6
Camera.md
KNOOP edited this page Jan 9, 2026
·
1 revision
Ava's camera feature provides high-performance video streaming to Home Assistant, with a completely redesigned architecture that outperforms alternatives like WallPanel and Fully Kiosk.
| Feature | Ava | WallPanel | Fully Kiosk |
|---|---|---|---|
| Memory Usage | 100-150 MB | 150-200 MB | 200-300 MB |
| Video Latency | Low | High | Medium |
| Frame Dropping | Minimal | Frequent | Occasional |
| Architecture | Native ESPHome Protocol | HTTP MJPEG | HTTP MJPEG |
| Integration | Native HA Entity | Manual Config | Manual Config |
1. Native ESPHome Protocol
- Direct binary streaming via ESPHome protocol
- No HTTP overhead
- Chunked transfer for optimal performance
2. Smart Frame Management
- Automatic frame dropping when network is busy
- Prevents buffer overflow and lag accumulation
-
isSendingflag ensures no frame overlap
3. Efficient Memory Usage
- Uses Kotlin Flow for reactive streaming
- Single replay cache prevents memory bloat
- Chunk size optimized at 1024 bytes
4. Original Architecture Design
- Built from scratch for ESPHome integration
- Not a wrapper around existing solutions
- Designed specifically for Home Assistant
Capture single photos on demand.
Technical Implementation:
- JPEG compression with configurable quality
- Auto rotation correction based on device orientation
- Square cropping for consistent display
Live MJPEG video streaming.
Technical Implementation:
- Chunked binary transfer (1024 bytes per chunk)
- Flow-based reactive streaming
- Automatic frame rate adjustment based on network
Go to Settings -> Experimental
| Setting | Description | Default |
|---|---|---|
| Enable Camera | Turn on camera feature | Off |
| Use Front Camera | Default to front or back | Back |
| Video Frame Rate | Video stream frame rate | 5 fps |
| Video Resolution | Video stream resolution | 480p |
| Frame Rate | Use Case |
|---|---|
| 1 fps | Monitoring, lowest bandwidth |
| 5 fps | General use, balanced |
| 10 fps | Need to see motion |
| 15 fps | Highest quality |
| Resolution | Pixels | Bandwidth |
|---|---|---|
| 240p | 320x240 | Lowest |
| 360p | 480x360 | Low |
| 480p | 640x480 | Medium |
| 720p | 1280x720 | High |
After enabling, a camera entity appears in Home Assistant:
camera.your_device_name
type: picture-entity
entity: camera.your_device_name
camera_view: liveservice: camera.snapshot
target:
entity_id: camera.your_device_name
data:
filename: /config/www/snapshot.jpg- Use 5G WiFi if available
- Keep device close to router
- Start with 480p, increase if stable
- Use 1-2 fps frame rate
- Use 240p or 360p resolution
- Use single image mode instead of stream
Unlike WallPanel which often shows lag even with adjustments, Ava's architecture prevents lag accumulation:
- Frame dropping is automatic when network is busy
- No buffer overflow issues
- If lag occurs, it self-corrects quickly
- Check if camera permission is granted
- Check if camera feature is enabled in settings
- Confirm Home Assistant is connected
- Lower frame rate (try 1-2 fps)
- Lower resolution (try 240p)
- Check WiFi signal strength
- Ava auto-adjusts, lag should self-correct
WallPanel uses HTTP MJPEG streaming which has:
- HTTP protocol overhead
- No smart frame management
- Buffer accumulation issues
Ava uses native ESPHome binary protocol with:
- Direct binary streaming
- Smart frame dropping
- Flow-based reactive architecture
Back to Home