跳到主要内容

Assisted Claiming

Register an unclaimed RainMaker device with the cloud and install a device certificate before provisioning.

信息

Requires a connected ESPDevice instance (BLE session via connect()).

What This Module Does ?​

Assisted claiming gives a device its cloud identity before Wi-Fi provisioning: the SDK talks to the device over BLE, calls RainMaker claiming APIs, and installs a certificate.

Use this when the device is unclaimed, advertises assisted-claiming, you need ClaimCapabilities.CAMERA_CLAIM for video devices, or provisioning requires a claimed device first.

Skip if the device is already claimed — go to Provisioning.

Claiming (certificates) is separate from provisioning (user mapping + Wi-Fi). See Claiming.

Expected outcome: Certificate installed; device ready for provision().

Common Workflows​

Standard claiming​

import { ClaimCapabilities } from "@espressif/rainmaker-base-sdk";

await device.connect();

await device.startAssistedClaiming((response) => {
console.log(response.status, response.message);
if (response.status === "succeeded") {
console.log("Ready for provisioning");
}
});

Camera / video devices​

await device.startAssistedClaiming(
handleClaimProgress,
ClaimCapabilities.CAMERA_CLAIM
);

Claiming then provisioning​

await device.connect();
await device.startAssistedClaiming(onClaimProgress);
await device.scanWifiList();
await device.provision(ssid, password, onProvisionProgress);

Error Handling​

CodeMeaning
CLAIM_START_FAILEDDevice did not accept claim start
CSR_RETRIEVAL_FAILEDCould not read CSR from device
CLAIM_API_FAILEDCloud initiate/verify failed
CLAIM_ABORTEDOperation aborted mid-flow
try {
await device.startAssistedClaiming(onProgress);
} catch (error) {
console.error("Claiming failed:", error.code, error.message);
}

Advanced Concepts​

Mental model​

Claim with cloud → then provision to user.

Claiming flow​

When to claim vs skip​

Check getDeviceCapabilities() after connect().

Best Practices​

  1. Connect before claiming
  2. Skip if already claimed
  3. Use progress callbacks for multi-step UI
  4. Claim before provision()
  5. Use CAMERA_CLAIM for video devices

On this page