An indoor camera works with Home Assistant when Home Assistant can reach it directly on the local network and authenticate with a local account stored on the camera. According to Home Assistant (Open Home Foundation, 2026), the ONVIF integration and the Reolink integration are both classified as Local Push, and the Reolink integration works fully locally without a cloud subscription. The two criteria that decide compatibility are how the integration receives data and whether the camera has a local admin account.
What makes an indoor camera work with Home Assistant?
Local Push versus Cloud Polling
Integrations fall into two broad groups based on how they receive data:
- Local Push: the device sends updates to Home Assistant over the local network, without a vendor server in the path. Home Assistant’s ONVIF integration is classified as Local Push, and it targets Profile S conformant devices. The Reolink integration is also Local Push.
- Cloud Polling: Home Assistant queries a manufacturer’s server at intervals instead of the device itself. The camera’s status then depends on that server remaining reachable.
Before buying, check the classification of the integration you plan to use in the Home Assistant documentation. A camera with a Local Push integration keeps working during a vendor outage, while a cloud-dependent one does not.
Local admin account requirement
For a Reolink camera, the device must be a Local device with an admin username and password. Cameras bound to a Reolink cloud account cannot be added to Home Assistant, so the account binding has to be removed or never created.
Practical steps:
- Confirm the camera is set up as a local device, not bound to a vendor account.
- Note the admin username and password the camera uses for local access.
- Enter these credentials in the integration’s setup flow under Settings > Devices & services.

Local streaming: RTSP and ONVIF explained
Home Assistant reads most indoor cameras over the local network through two standards. RTSP (Real Time Streaming Protocol) carries the video, and ONVIF discovers the camera and lists its streams. Once a camera exposes an RTSP address, Home Assistant pulls the video directly from the device without a cloud relay.
RTSP URL structure and port 554
An RTSP address follows the pattern scheme, credentials, host, port and path:
rtsp://user:[email protected]:554/path
- Scheme:
rtsp://identifies the protocol. - Credentials: the camera user name and password.
- Host: the camera’s local IP address. Reserve it in the router’s DHCP settings so it does not change.
- Port: 554 is the default RTSP port.
- Path: set by the manufacturer and different for each model. Take it from the camera’s documentation rather than guessing.
ONVIF discovery and Profile S
ONVIF lets Home Assistant find cameras on the local subnet and query each one for its profiles. A profile is a stream with its own resolution and encoding settings. Because the integration targets Profile S devices, check a camera’s ONVIF conformance statement before buying it. A device without Profile S support may expose streams the integration cannot use.
Transport options
The RTSP transport determines how video packets travel between camera and Home Assistant. The available options are:
| Option | Behaviour |
|---|---|
| tcp | Retransmits lost packets, which avoids artefacts but can add delay |
| udp | Lower overhead; lost packets appear as image artefacts |
| udp_multicast | One stream delivered to several receivers on the network |
| http | Stream tunnelled over HTTP, for setups where RTSP traffic is restricted |
Ports the Reolink integration requires
For Reolink cameras, the integration needs these ports reachable on the local network. According to Home Assistant (Open Home Foundation, 2026), none of them may be blocked by a firewall or VLAN.
| Port | Protocol | Use |
|---|---|---|
| 80, 443 | HTTP, HTTPS | Camera web interface and API |
| 554 | RTSP | Video stream |
| 1935 | RTMP | Stream output |
| 8000 | ONVIF | Discovery and control |
| 9000 | TCP | Required by the integration |
Which integrations connect cameras to Home Assistant?
Home Assistant offers three practical entry points for a camera: the ONVIF integration, the Generic Camera integration, and a native brand integration such as Reolink. The right choice depends on whether the camera’s manufacturer has a dedicated integration and which video format the camera outputs.
| Entry point | What it needs | Main constraint |
|---|---|---|
| ONVIF | Profile S device with at least one H.264 stream | Only H.264 profiles create entities |
| Generic Camera | Still Image URL, Stream Source, or both | A Stream Source alone needs the stream integration configured |
| Reolink (native) | Local device with an admin username and password | Requires local credentials, not a cloud account |
ONVIF: discovery through Settings
ONVIF is the generic route for cameras that follow the standard, so it works across brands. To add it, go to Settings > Devices & services > Add Integration > ONVIF. The ffmpeg integration must already be configured before you start, or the camera’s video handling will not work.
Generic Camera: manual entry by URL
Generic Camera does not discover anything. You enter the addresses yourself, and you must provide at least one of a Still Image URL or a Stream Source, such as rtsp://192.168.1.21:554/. A still image URL alone gives periodic snapshots. A Stream Source without a still image URL depends on the stream integration being configured. Use this route when you already know the camera’s exact addresses and ONVIF discovery is not an option.
Native integration and the dedicated user
A native integration such as Reolink uses the manufacturer’s own protocol, so it needs no ONVIF or manual URL setup.
For ONVIF, the Home Assistant documentation recommends creating a separate camera user for Home Assistant instead of reusing your main administrator account. This limits what Home Assistant can access if its credentials are exposed.
Which Reolink cameras work with Home Assistant?
Reolink works well with Home Assistant when the specific model is one that connects directly. Compatibility depends on the model: some cameras connect directly, some require an NVR or Home Hub, and some cannot be added at all.
Tested direct-connect models
According to Home Assistant (Open Home Foundation, 2026), these Reolink models were tested with Home Assistant for direct connection:
| Model | Connection path | Status |
|---|---|---|
| E1 Pro | Direct | Tested |
| E1 Zoom | Direct | Tested |
| E1 Outdoor variants | Direct | Tested |
| CX410 / CX810 | Direct | Tested |
| E331 | Direct | Tested |
| Elite WiFi | Direct | Tested |
| E1 | Via NVR or Home Hub only | Supported with hub |
| Go Plus (LTE) | Not applicable | Incompatible |
The E1 needs an intermediary
The standard E1 is supported only through an NVR or a Home Hub, so Home Assistant reaches it through that device rather than directly. The E1 Pro and E1 Zoom are the E1-family models listed as direct-connect. If you already own an E1 and want to avoid buying a hub, check the model name before adding it.
LTE cameras are excluded
Cellular models such as the Go Plus use cellular connectivity and are incompatible with the integration.
Local network requirements
Ports 80, 443, 554 (RTSP), 1935 (RTMP), 8000 (ONVIF) and 9000 (TCP) must not be blocked by a firewall or VLAN between Home Assistant and the camera. Check your segmentation rules if the camera sits on a separate network.
Why H.264 matters for ONVIF cameras
The ONVIF integration in Home Assistant only adds entities for camera profiles encoded in H.264. According to the Home Assistant documentation (Open Home Foundation, 2026), the camera must output at least one H.264 stream rather than H.265. This is a hard filter, not a preference. A camera that offers only H.265 streams can still be reached on the network, but Home Assistant will not create a camera entity for it.
The constraint matters because H.265 is enabled by default on many newer cameras. A recently purchased model may ship with H.265 as its active stream codec, and the integration will add nothing until the codec changes.
| Stream codec | Result in the Home Assistant ONVIF integration |
|---|---|
| H.264 | Entities are added for that profile |
| H.265 | No entities are added for that profile |
Switching the camera encoder profile to H.264
The codec is changed on the camera, not in Home Assistant. Open the camera’s own web interface or manufacturer app and locate the video or encoding settings for each stream profile. Set at least one profile to H.264. Menu names differ between manufacturers, so follow the manufacturer’s instructions for the exact location. Only one H.264 profile is required for the integration to work.
Verifying the codec
Confirm the change in two ways:
- In the camera interface: check that at least one stream profile now reports H.264.
- On the stream itself: run ffprobe, which is part of FFmpeg, against the RTSP URL. The command below prints the codec name for the first video stream:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 rtsp://user:password@camera-ip:554/your-stream-path
A result of codec_name=h264 confirms the stream is usable. A result of codec_name=hevc means the stream is still H.265.

How to check whether a cloud-bound camera can work with Home Assistant
A cloud-bound camera can only be used in Home Assistant if it exposes a local entry point. Home Assistant needs a camera that serves video over the local network. A camera whose video and controls run only through a vendor account gives Home Assistant nothing to connect to. Ring and Nest products should be checked against the same test before you buy or set one up.
Local paths Home Assistant can use
| Path | What the camera must provide | Source |
|---|---|---|
| ONVIF integration | A Profile S device with at least one H.264 stream | Home Assistant (Open Home Foundation), 2026 |
| Generic Camera | A Still Image URL or a Stream Source such as rtsp://192.168.1.21:554/ | Home Assistant (Open Home Foundation), 2026 |
| Reolink integration | A Local device with an admin username and password | Home Assistant (Open Home Foundation), 2026 |
Checking cloud dependency
Cloud dependency is the first filter. The Reolink integration is a useful example: it works fully locally with no cloud subscription. Confirm in the vendor app that the camera is set up as a local device, and that a local admin account exists.
Checking the hardware model
Once a local path is confirmed, check the exact model against Home Assistant’s integration documentation:
- Note the exact model name and firmware version.
- Confirm the model appears in the compatibility list for the integration you plan to use.
- Check the camera’s stream settings.
If a camera is missing from every compatibility list and offers neither ONVIF nor RTSP, it cannot be added through these routes. Check the manufacturer’s documentation for supported local interfaces.
Setup and troubleshooting tips
Common causes of ONVIF, RTSP and Generic Camera failures are a stream URL that doesn’t work outside Home Assistant, a stream codec other than H.264 (ONVIF only), a missing ffmpeg integration, or credentials that no longer match the camera. Check each one before changing other settings.
Verify the stream URL with VLC or ffplay
Test the RTSP URL on another computer on the same network before you add it to Home Assistant. A failure there points to the address, port, login or network path, which you can fix before touching Home Assistant. A successful playback confirms only that the URL and login work: VLC and ffplay also decode H.265, so a stream that plays in them may still be skipped by the ONVIF integration.
- VLC: choose Media > Open Network Stream and paste the URL, for example
rtsp://user:[email protected]:554/. - ffplay (part of FFmpeg): run
ffplay "rtsp://user:[email protected]:554/"in a terminal. Error output shows whether the problem is the address, the port or the login.
If the URL plays in VLC or ffplay but no entity appears in Home Assistant, check the stream codec with ffprobe first, then the ffmpeg integration and credentials.
Diagnose missing ffmpeg integration errors
If ONVIF setup or live streaming fails with an ffmpeg-related error, go to Settings > Devices & services, confirm that ffmpeg is listed, and set it up before retrying ONVIF under Add Integration.
Fix authentication failures after account changes
Authentication errors usually start after a camera password, username or account is changed.
- Update stored credentials. After changing a camera password, update the integration entry in Settings > Devices & services. If the entry can’t be edited, remove it and add it again with the new credentials.
| Symptom | Likely cause | Check |
|---|---|---|
| Stream fails in VLC or ffplay | Wrong URL, port or credentials | Test the exact URL outside Home Assistant |
| ONVIF setup errors on ffmpeg | ffmpeg integration not configured | Settings > Devices & services for ffmpeg |
| Connection fails after password change | Stored credentials out of date | Update or re-add the integration entry |
| Generic Camera shows no image | No Still Image URL and no working stream | Add a Still Image URL or Stream Source |
Privacy: why local control matters
Local control determines whether a camera’s video leaves your network. A camera added through a local integration sends its stream to your Home Assistant instance, while a camera tied to a vendor cloud account routes its feed through the vendor’s servers. The Reolink integration works with local devices only, so a camera bound to a Reolink cloud account cannot be added.
Where the data travels
| Aspect | Cloud-bound camera | Local integration |
|---|---|---|
| Video route | Vendor cloud account and external servers | Camera address on your local network |
| Stream address | Assigned by the vendor service | Defined by you, e.g. rtsp://192.168.1.21:554/ (Generic Camera) |
The RTSP stream is the main difference. The Generic Camera integration reads a stream address you specify, so the feed travels between the camera and your Home Assistant host without a relay. The ONVIF integration follows the same model for devices that support it (Home Assistant (Open Home Foundation), 2026).
Local recordings on owner-controlled storage
Local integrations let you decide where footage is kept. Some Reolink models, such as the E1, are supported only through an NVR or Home Hub (Home Assistant (Open Home Foundation), 2026). Some Reolink models, such as the E1, are supported only through an NVR or Home Hub (Home Assistant (Open Home Foundation), 2026). Check the recording and cloud settings for your specific model in the vendor’s documentation before you buy.
Cloud retention and sharing policy transparency
Local streaming does not cover every data flow. Some cameras also send metadata, notifications or optional recordings to vendor services, and these follow the vendor’s own terms. Before purchase:
- Read the vendor’s privacy policy for retention periods and any third-party sharing clauses.
- Check the app for cloud recording, cloud storage and notification settings, and disable those you do not need.
- Confirm the policy covers the regions where you use the device.
Frequently asked questions
Can a camera that streams only H.265 work with Home Assistant?
No, not unless the camera also offers at least one H.264 stream. The ONVIF integration creates entities only for H.264-encoded profiles, so an H.265-only camera gets no entity. Check the camera’s stream or codec settings for an H.264 profile before you set up the integration.
My camera stream plays in VLC but Home Assistant shows no camera. Is the camera at fault?
Not necessarily. VLC and ffplay can also play H.265, so a successful playback test does not confirm that the ONVIF integration can use the stream. Check the ffmpeg integration setup, the stream codec, and the username and password in the Home Assistant configuration.
Will a Reolink camera linked to a Reolink cloud account work with Home Assistant?
No. The Reolink integration only adds cameras configured as a Local device with an admin username and password. Remove the cloud account link from the camera, or set it up locally from the start, then add it in Home Assistant. For the storage location of recordings, check the vendor’s documentation for your specific model.