<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bogza.ro/index.php?action=history&amp;feed=atom&amp;title=Tapo_camera_adoption</id>
	<title>Tapo camera adoption - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://bogza.ro/index.php?action=history&amp;feed=atom&amp;title=Tapo_camera_adoption"/>
	<link rel="alternate" type="text/html" href="https://bogza.ro/index.php?title=Tapo_camera_adoption&amp;action=history"/>
	<updated>2026-09-15T11:02:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.4</generator>
	<entry>
		<id>https://bogza.ro/index.php?title=Tapo_camera_adoption&amp;diff=1916&amp;oldid=prev</id>
		<title>Tinel at 12:45, 16 August 2026</title>
		<link rel="alternate" type="text/html" href="https://bogza.ro/index.php?title=Tapo_camera_adoption&amp;diff=1916&amp;oldid=prev"/>
		<updated>2026-08-16T12:45:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://bogza.ro/index.php?title=Tapo_camera_adoption&amp;amp;diff=1916&amp;amp;oldid=1915&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Tinel</name></author>
	</entry>
	<entry>
		<id>https://bogza.ro/index.php?title=Tapo_camera_adoption&amp;diff=1915&amp;oldid=prev</id>
		<title>Tinel: Created page with &quot;# Tapo C310 cameras not auto-adopting in UniFi Protect Wiki for the UniFi Dream Machine SE at Lunca Cetățuii (`192.168.2.1`). ## Problem Two TP-Link Tapo C310 cameras would not appear in UniFi Protect for automatic adoption. One known address was `192.168.2.35`. A later camera at `192.168.2.32` had the same behavior. Protect already had other Tapo cameras online (C500, C310, C510W, TC65). The missing C310s were on the LAN, but Protect never offered **Click to Adopt**....&quot;</title>
		<link rel="alternate" type="text/html" href="https://bogza.ro/index.php?title=Tapo_camera_adoption&amp;diff=1915&amp;oldid=prev"/>
		<updated>2026-08-16T12:44:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;# Tapo C310 cameras not auto-adopting in UniFi Protect Wiki for the UniFi Dream Machine SE at Lunca Cetățuii (`192.168.2.1`). ## Problem Two TP-Link Tapo C310 cameras would not appear in UniFi Protect for automatic adoption. One known address was `192.168.2.35`. A later camera at `192.168.2.32` had the same behavior. Protect already had other Tapo cameras online (C500, C310, C510W, TC65). The missing C310s were on the LAN, but Protect never offered **Click to Adopt**....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# Tapo C310 cameras not auto-adopting in UniFi Protect&lt;br /&gt;
Wiki for the UniFi Dream Machine SE at Lunca Cetățuii (`192.168.2.1`).&lt;br /&gt;
## Problem&lt;br /&gt;
Two TP-Link Tapo C310 cameras would not appear in UniFi Protect for automatic adoption. One known address was `192.168.2.35`. A later camera at `192.168.2.32` had the same behavior.&lt;br /&gt;
Protect already had other Tapo cameras online (C500, C310, C510W, TC65). The missing C310s were on the LAN, but Protect never offered **Click to Adopt**.&lt;br /&gt;
## Environment&lt;br /&gt;
| Item | Value |&lt;br /&gt;
|---|---|&lt;br /&gt;
| Console | UniFi Dream Machine SE (`UDM-SE-Lunca-Cetatuii`) |&lt;br /&gt;
| LAN | `192.168.2.0/24`, gateway `192.168.2.1` |&lt;br /&gt;
| UniFi OS / firmware | 5.1.26 |&lt;br /&gt;
| UniFi Protect | 7.1.87 |&lt;br /&gt;
| Wi-Fi SSID | `ReteauaLuiTinel` (not guest, L2 isolation off) |&lt;br /&gt;
| Third-party discovery | Enabled in Protect |&lt;br /&gt;
Tapo cameras in this network use a **Camera Account** created in the Tapo app (ONVIF/RTSP user). Protect already stored that account on the adopted Tapo cameras.&lt;br /&gt;
## Root cause&lt;br /&gt;
Tapo C310s **do not auto-adopt** in Protect the way UniFi cameras do.&lt;br /&gt;
1. **ONVIF is on port 2020**, not 80/443. Protect’s discovery scan often misses that port. TP-Link documents ONVIF `2020` and RTSP `554`.&lt;br /&gt;
2. **WS-Discovery is multicast.** These C310s are on 2.4 GHz across different APs (U6 LR, U6 Pro, AC Pro). Multicast enhancement on the SSID is off, so discovery packets frequently never reach the cameras.&lt;br /&gt;
3. **Same-subnet unicast still works.** The Dream Machine can reach ONVIF/RTSP on the camera even when a Windows PC on the LAN cannot (AP path / client isolation effects). Protect runs on the UDM, so manual adopt by IP works.&lt;br /&gt;
This is not a dead camera and not a wrong Protect password. The cameras were up; Protect simply never found them.&lt;br /&gt;
## What was on the network&lt;br /&gt;
Three C310s exist. Two were already in Protect; the third (and later a fourth IP) were not.&lt;br /&gt;
| Hostname / note | IP | MAC | AP (last) | Protect (before) | Protect (after) |&lt;br /&gt;
|---|---|---|---|---|---|&lt;br /&gt;
| C310 | `192.168.2.35` | `5C:E9:31:E0:34:07` | U6 LR | Missing | Adopted, connected |&lt;br /&gt;
| C310 | `192.168.2.32` | `3C:52:A1:80:BA:81` | — | Missing | Adopted, connected |&lt;br /&gt;
| C310 | `192.168.2.34` | `5C:E9:31:E0:21:93` | AC Pro | Already adopted | Connected, recording |&lt;br /&gt;
| C310_414B83 | `192.168.2.36` | `5C:E9:31:41:4B:83` | U6 Pro | Already adopted | Connected, recording |&lt;br /&gt;
Related Tapo devices that were already in Protect: C500 (`192.168.2.10`), C510W (`192.168.2.37`), TC65 (`192.168.2.38`).&lt;br /&gt;
All of these have DHCP **fixed IPs** in UniFi Network.&lt;br /&gt;
## Solution&lt;br /&gt;
### Add a Tapo camera in Protect (UI)&lt;br /&gt;
1. In the Tapo app, enable third-party compatibility and set a **Camera Account** (same user/password on every camera if possible).&lt;br /&gt;
2. In Protect: **Settings → System → Discover Third-Party Cameras** (already on here).&lt;br /&gt;
3. Do **not** wait for auto-discovery.&lt;br /&gt;
4. Use **Advanced Adoption**.&lt;br /&gt;
5. Host must include the ONVIF port:&lt;br /&gt;
   ```text&lt;br /&gt;
   192.168.2.35:2020&lt;br /&gt;
   ```&lt;br /&gt;
6. Username and password = Tapo Camera Account (not the UniFi OS login, not Console SSH).&lt;br /&gt;
Without `:2020`, Protect often returns invalid credentials even when the account is correct.&lt;br /&gt;
### What we did on this console&lt;br /&gt;
From the UDM, ONVIF port `2020` and RTSP port `554` were open on the missing cameras. They were adopted through Protect’s third-party camera API:&lt;br /&gt;
```http&lt;br /&gt;
POST /api/third-party-cameras/adopt&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;host&amp;quot;: &amp;quot;192.168.2.35:2020&amp;quot;,&lt;br /&gt;
  &amp;quot;username&amp;quot;: &amp;quot;&amp;lt;tapo-camera-account&amp;gt;&amp;quot;,&lt;br /&gt;
  &amp;quot;password&amp;quot;: &amp;quot;&amp;lt;tapo-camera-account-password&amp;gt;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
```&lt;br /&gt;
Same call for `192.168.2.32:2020`. After adopt, RTSP over TCP was enabled (`forceTcp: true`) because these streams run over Wi-Fi.&lt;br /&gt;
Display names set in Protect:&lt;br /&gt;
- `Tapo C310 192.168.2.35`&lt;br /&gt;
- `Tapo C310 192.168.2.32`&lt;br /&gt;
Rename them to room/location names in the Protect UI if you prefer.&lt;br /&gt;
### Expected after adopt&lt;br /&gt;
- State: **CONNECTED**&lt;br /&gt;
- Live view works&lt;br /&gt;
- Recording mode: **always**&lt;br /&gt;
- Error `SnapshotNotSupported` is normal for Tapo and already present on the other Tapo cameras&lt;br /&gt;
- Recording can take a minute to start after a new third-party adopt&lt;br /&gt;
## Console SSH (how this was debugged)&lt;br /&gt;
This repo’s SSH helper talks to **UniFi OS Console SSH**, not Device SSH Authentication (APs/switches).&lt;br /&gt;
1. UniFi OS → **Settings → Control Plane → Console → SSH**&lt;br /&gt;
2. Username is always `root`&lt;br /&gt;
3. Put the console password in `credentials.env` (see `credentials.env.example`)&lt;br /&gt;
4. Connect:&lt;br /&gt;
```powershell&lt;br /&gt;
.\connect.ps1&lt;br /&gt;
```&lt;br /&gt;
or:&lt;br /&gt;
```powershell&lt;br /&gt;
ssh udm-se&lt;br /&gt;
```&lt;br /&gt;
Do not commit `credentials.env`.&lt;br /&gt;
## Adding the next Tapo camera&lt;br /&gt;
1. Confirm the camera has a DHCP reservation.&lt;br /&gt;
2. From the UDM, check that `2020` and `554` are open on that IP.&lt;br /&gt;
3. Advanced Adopt with `IP:2020` and the existing Tapo Camera Account.&lt;br /&gt;
4. If live view works but the stream is flaky on Wi-Fi, enable **Force TCP** on the camera in Protect.&lt;br /&gt;
Auto-discovery is unreliable for Tapo on this Wi-Fi. Treat **IP:2020 + Camera Account** as the standard procedure.&lt;/div&gt;</summary>
		<author><name>Tinel</name></author>
	</entry>
</feed>