Integrating the Nakavision C1 with Home Assistant: the complete guide
Learn step by step how to stream both Nakavision C1 lenses to Home Assistant over RTSP, control the camera locally without the cloud, and set up automations.
Integrating the Nakavision C1 with Home Assistant: the complete guide
The Nakavision C1 dual-lens outdoor smart camera offers excellent protection on its own with the iCSee mobile app, but connected to the open-source Home Assistant (HA) smart home hub, it becomes a truly versatile security system.
Why integrate it? (The main benefits)
- Two lenses, one interface (Dual-Vision): See the picture from the upper fixed wide-angle lens and the lower pan-tilt (PTZ) lens at the same time, side by side, on your Home Assistant dashboard.
- 100% local streaming (local-first): Thanks to ONVIF and RTSP, video stays within your local network (LAN). It puts no load on your internet connection, there is no cloud dependency, and you can even isolate the camera on a separate IoT VLAN.
- Advanced automations: Camera events (motion detection, human detection) can be linked to your other smart devices – for example, the PTZ lens turns towards the driveway when the gate opens, the garden lights switch on when motion is detected, and a push notification with a snapshot reaches your phone through the Home Assistant Companion app when an alarm goes off.
- NVR and AI expandability: Connect it directly to local recorders (Frigate NVR, Agent DVR, Scrypted) for hardware-accelerated local object detection.
- No subscription fees: You don’t need a monthly cloud subscription for live view or automatic recording.
Prerequisites and files you will need
To connect the camera, all you need is a few network details and – depending on the method you choose – a minimal configuration file:
- Static / fixed IP address: Reserve the camera’s IP address in your router’s DHCP settings (e.g. 192.168.1.120).
- Camera login details: The device password you set in the iCSee app (default username: admin).
- Network ports:
- RTSP video stream: 554
- ONVIF service: 8899 (or 80, depending on the model variant)
- DVRIP control: 34567
- Configuration files:
- go2rtc.yaml in your Home Assistant configuration folder (next to configuration.yaml) for low-latency WebRTC streaming of both lenses. It is read by the go2rtc that the community WebRTC Camera integration from HACS runs (Home Assistant’s built-in go2rtc does not accept your own streams – see Step 3).
- Optionally, a Generic Camera entity – no configuration.yaml entry is needed: set it up in the UI (Settings → Devices & services → Add integration → Generic Camera) and enter the camera’s RTSP URL as the stream source URL.
Step-by-step setup
Step 1: Prepare the camera in the iCSee app
- Complete the initial Wi-Fi or wired (LAN) setup in the iCSee app.
- Set a strong device password (this will also be your RTSP/ONVIF password).
- In the encoding settings, set the video stream to H.264: browsers and Home Assistant’s WebRTC engine play H.264 natively, with no extra load or delay, whereas H.265 plays only in some browsers.
Step 2: Connect the camera to Home Assistant
You can choose between two main methods:
Method A: Official ONVIF integration (simple, set up in the UI)
- In Home Assistant, go to Settings → Devices & services → Add integration.
- Search for the ONVIF integration.
- Enter the details:
Name: Nakavision C1
Host: the camera’s IP address (e.g. 192.168.1.120)
Port: 8899 (if the camera is not found, try port 80)
Username: admin
Password: the device password you set in Step 1 - Home Assistant automatically creates the camera entity, the motion detection binary sensors, and PTZ controls.
Method B: iCSee PTZ integration (HACS – for advanced control)
If you also want to control the spotlight, the night vision modes, and fine-grained PTZ functions directly from Home Assistant, install the community iCSee PTZ integration from HACS:
- In HACS, open the ⋮ menu (top right) → Custom repositories, add https://github.com/dbuezas/icsee-ptz with the type Integration, then search for icsee and download it.
- Restart Home Assistant once the download has finished.
- In Settings → Devices & services, add the camera using port 34567 and your password. This also gives you switches for the white-light spotlight and the infrared (IR) filter.
Step 3: Show both lenses (go2rtc configuration)
Because the Nakavision C1 has two separate sensors, the fixed lens and the pan-tilt lens each have their own RTSP channel. The go2rtc streaming server turns them into a WebRTC stream with sub-second latency. Home Assistant has had go2rtc built in since version 2024.11, but you cannot add your own streams to the built-in instance, so use the community WebRTC Camera integration, which runs its own go2rtc: download it in HACS, restart Home Assistant, then add it in Settings → Devices & services → Add integration.
Next, open (or create) the go2rtc.yaml file in your Home Assistant configuration folder (next to configuration.yaml), add both channels, and restart Home Assistant again:
streams:
# Upper fixed lens (main stream - HD)
nakavision_c1_fix:
- rtsp://admin:PASSWORD@192.168.1.120:554/user=admin&password=PASSWORD&channel=1&stream=0.sdp
# Lower pan-tilt (PTZ) lens (main stream - HD)
nakavision_c1_ptz:
- rtsp://admin:PASSWORD@192.168.1.120:554/user=admin&password=PASSWORD&channel=2&stream=0.sdp
# Lower-resolution substreams for mobile data or NVR detection:
nakavision_c1_fix_sub:
- rtsp://admin:PASSWORD@192.168.1.120:554/user=admin&password=PASSWORD&channel=1&stream=1.sdp
Tip: If your camera runs firmware with a simplified URL syntax, this format also works:
rtsp://admin:PASSWORD@192.168.1.120:554/live/ch0 (lens 1) and rtsp://admin:PASSWORD@192.168.1.120:554/live/ch1 (lens 2).
Step 4: Example dashboard and automation
Place both camera views side by side on your dashboard (e.g. in a Grid card), or use the WebRTC Camera card with PTZ control buttons. Replace the entity IDs in the examples with the ones Home Assistant created for your camera (Settings → Devices & services → Entities):
type: grid
columns: 2
square: false
cards:
- type: picture-glance
title: Fixed wide-angle
camera_image: camera.nakavision_c1_fix
entities: []
- type: picture-glance
title: Pan-tilt (PTZ)
camera_image: camera.nakavision_c1_ptz
entities:
- binary_sensor.nakavision_c1_cell_motion_detection
Example alert automation (YAML):
alias: "Garden motion - lights on"
triggers:
- trigger: state
entity_id: binary_sensor.nakavision_c1_cell_motion_detection
to: "on"
conditions:
- condition: state
entity_id: sun.sun
state: below_horizon
actions:
- action: light.turn_on
target:
entity_id: light.garden_lights
# Replace with your phone's notify action (Home Assistant Companion app):
- action: notify.mobile_app_your_phone
data:
message: "Motion detected by the Nakavision C1 camera!"
data:
# Android: snapshot image; on an iPhone, use entity_id: camera.nakavision_c1_fix instead
image: /api/camera_proxy/camera.nakavision_c1_fix
Troubleshooting tips
- Grey picture or slow loading: In the iCSee app, set the camera to standard H.264 encoding instead of H.265AI (intelligent compression). Browsers decode native H.264 in hardware, without delay.
- The ONVIF integration does not see the second lens: On single-chip dual-lens systems, the camera’s ONVIF service often exposes only the first media profile (lens 1). You can add lens 2 alongside it with the channel=2 RTSP URL in the go2rtc.yaml shown above, then show it with the WebRTC Camera card (url: nakavision_c1_ptz) or add that RTSP URL as a Generic Camera entity.
- PTZ commands stall: Check that your router is not blocking traffic on local port 34567 between Home Assistant and the camera.
Still stuck?
Our UK team can help with setup, warranty and returns. We usually reply within one working day.
Contact support Back to support