Home Assistant Camera Feed — Complete Guide
In this tutorial, you'll learn about Home Assistant Camera Feed. We cover key concepts, practical examples, and best practices.
Hook
You add an RTSP camera to Home Assistant. The camera entity appears, but the feed shows "Image not available" or a broken icon. You can view the camera stream in VLC or an external app, but Home Assistant refuses to display it.
The Wrong Way
Adding the RTSP stream directly to the Lovelace picture-entity card without configuring the stream integration causes the browser to attempt RTSP playback natively — which no browser supports.
# BAD: Direct RTSP URL in Lovelace
type: picture-entity
entity: camera.front_door
camera_image: camera.front_door
Browser error: Failed to load resource
RTSP stream cannot play in browser
Home Assistant must proxy the stream via the stream integration
Home Assistant needs to convert RTSP to HLS for browser playback.
The Right Way
Ensure the stream integration is enabled and test with a simple Lovelace card.
# 1. Check if stream is configured
cat /config/configuration.yaml | grep "stream:"
# 2. Add stream if missing
echo "stream:" >> /config/configuration.yaml
# 3. Restart Home Assistant
docker restart hass
# 4. Configure the camera integration with the correct RTSP URL
# Web UI → Settings → Devices & Services → Add Integration → Generic Camera
camera:
- platform: generic
name: Front Door
still_image_url: "http://camera-ip/snapshot.jpg"
stream_source: "rtsp://username:password@camera-ip:554/stream1"
verify_ssl: false
# 5. Verify the stream works
curl -s -H "Authorization: Bearer <token>" \
http://hass.local:8123/api/camera_proxy/camera.front_door | head -c 100
(binary image data — camera feed working)
# 6. Add a Lovelace card
# UI → Dashboard → Edit → Add Card → Picture Glance → Camera entity
Camera feed displays in dashboard ✓
Live stream loads within 2 seconds
Prevention
- Always configure the
streamintegration for RTSP cameras. - Use HTTP snapshot URLs (
still_image_url) for the static preview. - Ensure the camera supports RTSP H.264 streaming (H.265 may not work in all browsers).
- Set
verify_ssl: falsefor cameras with self-signed certificates. - Use a dedicated camera proxy (Scrypted, Frigate, go2rtc) for complex setups.
Testing Your Fix
After applying the fix, run this verification to confirm everything works:
# Verify the tool is responding
command -v tool --version
Create a simple test script and run it. If the output matches your expectations, the fix is complete. If errors persist, review each step above -- the problem is often a missed configuration detail.
Common Mistakes with assistant camera
- Placing the wildcard pattern first in case expressions, making all subsequent patterns unreachable
- Using
headandtailinstead of pattern matching, causing runtime errors on empty lists - Forgetting that lazy evaluation defers computation until the value is forced, causing space leaks with unevaluated thunks
These mistakes appear frequently in real-world HOME code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.
Practice Exercise
Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.
This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.
FAQ
DodaTech — cameras that show up when you need them.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro