How to Add Camera to Home Assistant | RTSP and ONVIF Setup

Enable RTSP on the camera and add it via Generic Camera in Settings & Devices & Services. ONVIF cameras use the ONVIF integration instead.

One setting keeps most cameras invisible to Home Assistant: RTSP is disabled by default. How to add camera to Home Assistant starts with turning on RTSP in the camera’s own app, then using the Generic Camera integration to complete the connection. ONVIF-compatible models follow a similar path through a dedicated integration. All four reliable methods are covered below, from plug-and-play Nest cams to DIY ESP32 builds.

Adding a Camera to Home Assistant: Four Reliable Methods

Home Assistant supports four main ways to connect a camera. The Generic Camera integration works with any RTSP-capable model. The ONVIF integration handles auto-discovery for Reolink, Amcrest, Dahua, and Hikvision. The Google Nest integration connects Nest devices through account authorization. The ESPHome addon covers DIY ESP32 camera builds. and requires the camera to be on the same local network.

Camera Type Integration Key Step
Any RTSP camera Generic Camera Enable RTSP, paste RTSP link
Reolink RLC-510A ONVIF Enable ONVIF in Port Settings
Amcrest / Dahua ONVIF Set Authentication to Digest
Hikvision ONVIF Enable Integration Protocol
Google Nest Cam Google Nest Authorize Google account
Sonoff CamSlim Generic RTSP Enable RTSP in eWeLink
ESP32 Camera ESPHome Add esp32_camera to YAML

If you’re choosing hardware, our roundup of the best cameras for Home Assistant covers tested models that integrate with all four methods.

Method 1 — Generic Camera via RTSP

The Generic Camera integration works with any camera that supports RTSP streaming. It is the most universal method and handles cameras from Reolink, Sonoff, and Amcrest. The official Home Assistant Generic Camera documentation provides the full reference, but the steps below cover the setup.

  1. Enable RTSP in the camera app — eLink for Reolink or eWeLink for Sonoff — under Settings > More Settings > RTSP.
  2. Copy the generated RTSP link, which includes the username and password.
  3. In Home Assistant, go to Settings > Devices & Services and click + Add Integration.
  4. Search for Generic Camera and select it.
  5. Paste the RTSP link into the Stream Source URL field.
  6. Set Protocol to http and click Submit.
  7. Rename the camera and add it to the dashboard using an Image element with Camera View set to live.

When the stream appears on the dashboard, the setup succeeded. If nothing shows, double-check that RTSP is enabled and the link is correct.

Method 2 — ONVIF Integration

For cameras that support ONVIF — including Reolink, Amcrest, Dahua, and Hikvision — the ONVIF integration provides automatic discovery and dual-stream support for both high-resolution recording and low-lag dashboard viewing.

  1. Access the camera’s web UI at its LAN IP address.
  2. Enable ONVIF using the brand-specific path: Reolink uses Device Settings > Network > Advanced > Port Settings; Amcrest uses Setup > Network > Connection > ONVIF with Authentication set to Digest; Hikvision uses Configuration > Network > Advanced Settings > Integration Protocol.
  3. Create a dedicated ONVIF username and password.
  4. Copy the Main stream and Sub stream RTSP URLs.
  5. In Home Assistant, go to Settings > Devices & Services > + Add Integration and select ONVIF.
  6. Enter the Host (static LAN IP), Port (default 80), and the ONVIF credentials.
  7. Select Main stream for recordings and Sub stream for the live dashboard tile to avoid lag.

How Do You Add a Google Nest Camera?

Google Nest cameras connect through a dedicated integration that authorizes your Google account. Home Assistant handles the rest automatically, including motion detection and person alerts.

  1. Set up the Nest camera on Wi-Fi in the Google Home app before starting.
  2. In Home Assistant, go to Configuration > Integrations > + and select Google Nest.
  3. Follow the authorization flow to grant Home Assistant access to your Google account.
  4. Customize Motion Detection, Person Alerts, and Recording Schedule after the camera appears.
  5. Build automations — send notifications, turn on lights, or play deterrent sounds — using the Automation panel.

Method 4 — ESP32 Camera Setup

For DIY builders, the ESP32 camera module connects through the ESPHome addon. This route requires a bit of YAML editing but gives you a fully local, low-cost camera.

  1. Connect the ESP32 camera to the Home Assistant host via USB.
  2. Install the ESPHome addon from the Supervisor panel and open its web UI.
  3. Add a new device with Name set to My Camera and Device Type set to ESP32.
  4. Edit the YAML and add the esp32_camera configuration block with the correct GPIO pins for your camera model.
  5. Click Save and then Install, selecting the USB port method.
  6. In Home Assistant, go to Settings > Devices & Services > Configure and click Submit.
  7. Add a Picture Entity card on the dashboard and select the ESP32 entity.

The ESP32 feed appears in the dashboard a few seconds after installation completes. If it stays dark, check the GPIO pin assignments in the YAML config.

Camera Setup Mistakes That Waste Time

Most integration problems come from a handful of recurring mistakes. The table below shows what to check first when a camera feed does not appear.

Mistake Symptom Fix
RTSP disabled by default Camera not found Enable RTSP in the camera’s own app
Wrong protocol (tcp vs http) Stream never loads Set Protocol to http
Incorrect ONVIF port (used 554) ONVIF discovery fails Use port 80 (or 8000 for Reolink)
No static LAN IP assigned Camera drops off randomly Assign a static IP in router settings
Missing ONVIF user credentials Authentication errors Create a dedicated ONVIF user on the camera
Main stream used on dashboard Interface lag or stutter Switch the dashboard tile to sub stream
Cloud-only camera with no RTSP No integration possible Verify RTSP or ONVIF support in the camera specs

Finish the Camera Integration in Four Steps

Run through this sequence after adding any camera to make sure the feed works and stays reliable long-term.

  1. Verify the stream — open the Home Assistant dashboard and confirm the live feed appears without delays or errors.
  2. Assign a static LAN IP — set a fixed IP address in your router so the camera never disappears after a reboot or power cycle.
  3. Switch to the sub stream — change the dashboard tile to the lower-resolution stream to keep the interface responsive during normal use.
  4. Set up automations — configure motion triggers, recording schedules, or notifications from the Automation panel so the camera does more than just sit there.

FAQs

What is the difference between RTSP and ONVIF?

RTSP is a streaming protocol that delivers the video feed from the camera to Home Assistant. ONVIF is a broader standard that includes device discovery, PTZ control, and event detection in addition to video streaming. ONVIF cameras can also stream via RTSP, but the ONVIF integration gives you more control options.

Can I use a Wi-Fi camera that does not support RTSP or ONVIF?

Most Wi-Fi cameras that lack RTSP or ONVIF support cannot be added to Home Assistant directly. Some models with cloud-only access may work through the manufacturer’s integration if one exists, but local streaming is not possible without RTSP or ONVIF enabled on the camera.

How many cameras can a Raspberry Pi 4 handle?

A Raspberry Pi 4 with 4 GB of RAM reliably supports one to two cameras for basic live viewing. Adding Frigate for AI-based motion detection and object recognition exceeds the Pi 4’s capacity. For multi-camera setups or AI features, consider a more powerful host like an Intel NUC or an iSG Box SE.

Do I need a cloud subscription for RTSP or ONVIF cameras with Home Assistant?

No. RTSP and ONVIF streams are entirely local and do not require any cloud subscription. The video stays on your network. Google Nest cameras are the exception — they require a Google account and cloud authorization, though the free tier is sufficient for basic integration.

References & Sources

Please use a real email you check. If it's fake or mistyped, your message won't reach us and we can't reply — wrong addresses are rejected automatically.