

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 기능 재검색
<a name="managedintegrations-sdk-v2-onboarding-capability-rediscovery"></a>

이 섹션에서는 기능 재검색을 사용하여 허브에 연결된 디바이스에 대한 디바이스 기능 정보를 재학습하는 단계를 설명합니다.

## 사전 조건
<a name="capability-rediscovery-prereq"></a>

기능 재검색을 시도하기 전에 다음 단계를 완료합니다.
+ 허브 디바이스를 관리형 통합 허브에 온보딩합니다.
+ 하나 이상의 엔드 디바이스를 허브에 온보딩합니다.
+ [관리형 통합 AWS CLI 명령 참조](https://docs.aws.amazon.com/cli/latest/reference/iot-managed-integrations/) AWS CLI 에서의 최신 버전 설치
+ (선택 사항) [DEVICE\_DISCOVERY\_STATUS](managedintegrations-notifications.md#managedintegrations-notification-setup) 이벤트 알림을 구독합니다.

## 기능 재검색을 사용해야 하는 경우
<a name="capability-rediscovery-use-cases"></a>

다음 시나리오에서 기능 재검색을 사용합니다.
+ 디바이스 기능을 추가하거나 수정하는 엔드 디바이스에 대한 펌웨어 업데이트 후
+ 새 디바이스 기능에 대한 지원을 활성화하는 허브 소프트웨어 업데이트 후
+ 디바이스 기능이 관리형 통합에 정확하게 반영되지 않는 경우
+ 허브에 연결된 단일 디바이스 또는 모든 디바이스의 기능 정보를 새로 고치려면

## 기능 재검색 시작
<a name="capability-rediscovery-start-discovery"></a>

허브에 대한 기능 재검색을 시작하여 디바이스 기능을 업데이트합니다.

**기능 재검색을 시작하려면**
+ `CONTROLLER_CAPABILITY_REDISCOVERY` 검색 유형과 함께 [start-device-discovery](https://docs.aws.amazon.com/cli/latest/reference/iot-managed-integrations/start-device-discovery.html) 명령을 사용합니다.

  **start-device-discovery 예**

  ```
  # For a single device
  aws iot-managed-integrations start-device-discovery \
    --discovery-type CONTROLLER_CAPABILITY_REDISCOVERY \
    --controller-identifier {{HUB_MANAGED_THING_ID}} \
    --protocol {{PROTOCOL}} \
    --end-device-identifier {{DEVICE_MANAGED_THING_ID}}
  
  # For all devices on a protocol
  aws iot-managed-integrations start-device-discovery \
    --discovery-type CONTROLLER_CAPABILITY_REDISCOVERY \
    --controller-identifier {{HUB_MANAGED_THING_ID}} \
    --protocol {{PROTOCOL}}
  ```

  **응답**:

  ```
  {
      "Id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
      "StartedAt": "2026-01-12T23:07:49.275Z"
  }
  ```
**참고**  
`--protocol` 파라미터는 `ZIGBEE`, `ZWAVE`또는를 허용합니다`CUSTOM`.  
선택적 `--end-device-identifier` 파라미터가 제공되지 않으면 선택한 프로토콜의 허브와 연결된 모든 디바이스가 다시 검색됩니다.

  자세한 내용은 Managed IntegrationsCommand 참조의 [start-device-discovery](https://docs.aws.amazon.com/cli/latest/reference/iot-managed-integrations/start-device-discovery.html) 명령을 참조하세요. AWS CLI **

디바이스 기능이 업데이트되었는지 확인하려면 [관리형 사물 기능 가져오기](managedintegrations-sdk-v2-cookbook-ugs.md#managedintegrations-sdk-v2-cookbook-check-device-capabilties)를 참조하세요.

## 문제 해결
<a name="capability-rediscovery-troubleshooting"></a>

다음 지침을 사용하여 기능 재검색과 관련된 일반적인 문제를 해결합니다. 기능 재검색이 진행 중이면 Managed Integrations는 Kinesis 또는 EventBridge를 통해 JSON 메시지로 알림을 보냅니다.

### 성공 알림
<a name="capability-rediscovery-notifications-success"></a>

**처리 중인 디바이스당:**

```
{
    "messageType": "DEVICE_DISCOVERY_STATUS",
    // Capability rediscovery with controller and end device
    "resources": ["arn:aws:iotmanagedintegrations:us-east-1:123456789012:managed-thing/abc123def456", "arn:aws:iotmanagedintegrations:us-east-1:123456789012:managed-thing/xyz789uvw012"],
    "payload": {
        "deviceDiscoveryId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
        "status": "RUNNING",
        "deviceCount": 1
    }
}
```

**완료:**

```
{
    "messageType": "DEVICE_DISCOVERY_STATUS",
    // Capability rediscovery with controller only
    "resources": ["arn:aws:iotmanagedintegrations:us-east-1:123456789012:managed-thing/abc123def456"],
    "payload": {
        "deviceDiscoveryId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
        "status": "SUCCEEDED",
        "deviceCount": 0
    }
}
```

### 실패 알림
<a name="capability-rediscovery-notifications-failure"></a>

**디바이스 장애:**

```
{
    "messageType": "DEVICE_DISCOVERY_STATUS",
    // Capability rediscovery with controller and end device
    "resources": ["arn:aws:iotmanagedintegrations:us-east-1:123456789012:managed-thing/abc123def456", "arn:aws:iotmanagedintegrations:us-east-1:123456789012:managed-thing/ghi345jkl678"],
    "payload": {
        "deviceDiscoveryId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
        "status": "RUNNING",
        "deviceCount": 1,
        "error": {
            "code": "500",
            "message": "Device unreachable",
            "managedThingId": "ghi345jkl678"
        }
    }
}
```

**전체 실패:**

```
{
    "messageType": "DEVICE_DISCOVERY_STATUS",
    // Capability rediscovery with controller only
    "resources": ["arn:aws:iotmanagedintegrations:us-east-1:123456789012:managed-thing/abc123def456"],
    "payload": {
        "deviceDiscoveryId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
        "status": "FAILED",
        "deviceCount": 0,
        "error": {
            "code": "404",
            "message": "Specified controller does not exist"
        }
    }
}
```

### 수신된 알림 없음
<a name="capability-rediscovery-no-notifications"></a>

검색 상태에 대한 알림을 받지 못한 경우 `DEVICE_DISCOVERY_STATUS` 이벤트 알림을 구독했는지 확인합니다. 알림 설정에 대한 자세한 내용은 [관리형 통합 알림 설정](managedintegrations-notifications.md#managedintegrations-notification-setup) 섹션을 참조하세요.

### 일부 디바이스가 업데이트되지 않음
<a name="capability-rediscovery-partial-failure"></a>

기능 재검색 중에 일부 디바이스가 업데이트되지 않는 경우 `DEVICE_DISCOVERY_STATUS` 알림에서 오류 메시지를 확인합니다. 일반적인 오류 메시지로 다음이 포함됩니다.
+ `Device unreachable` - 디바이스가 오프라인 상태이거나 응답하지 않음
+ `Timeout querying device` - 디바이스가 예상 기간 내에 응답하지 않습니다.
+ `Invalid capability report` - 디바이스 펌웨어에 문제가 있을 수 있습니다.

이러한 문제를 해결하려면 영향을 받는 디바이스의 전원이 켜져 있고 연결 가능한지 확인한 다음 `--end-device-identifier` 파라미터를 사용하여 장애가 발생한 디바이스에 대해 개별적으로 기능 재검색을 다시 시도하세요.

### 검색이 완료되지 않음
<a name="capability-rediscovery-stuck"></a>

기능 재검색 프로세스가 완료되지 않으면 `start-device-discovery` 명령에서 반환된 검색 작업 ID를 사용하여 검색 상태를 확인합니다.

```
aws iot-managed-integrations get-device-discovery \
  --identifier {{DISCOVERY_JOB_ID}}
```

검색이 멈춘 경우:
+ 허브가 온라인 상태이고 관리형 통합에 연결되어 있는지 확인
+ 검색 시간이 자동으로 초과될 때까지 최대 15분 대기
+ 허브와 디바이스가 작동하는지 확인한 후 기능 재검색을 다시 시도합니다.