Overview

To better support device claiming, we want to allow manufacturers to be able to print a QR Code on their boxes and have our FieldOps App be able to scan them or even a regular QR Scanner work to claim the dev

Structure

The QR Code will be generated in the following structure:

https://[Partner's Portal URL]/UNIQUE_GUID

How the Unique GUID is generated:

  1. Step #1 - Generate “Unique ID”
  2. Step #2 - Prepend Xyte Manufacturer Prefix
  3. Step #3 - Prepend Xyte base claiming URL
  4. Step # - Generate QR from the resulting string

Generating a Unique ID

The ID should be an alphanumeric string (case sensitive) of 20 characters and must be unique for each device created by the manufacturer.

There are two suggested methods, First, is the CloudID for manufacturers who can run code on an external server and later embed the result into each device’s firmware, and second, relying only on the MAC & Serial numbers of each device.

  1. Using CloudID

For manufacturers who can generate a Unique ID and imprint the ID on the device - the recommended method is the NanoID Library (https://github.com/ai/nanoid#other-programming-languages). An external server should generate the CloudID, imprint it and use it as the base for the QR Code.

  1. MAC & Serial number

Use each device’s MAC and Serial numbers to generate a Unique ID, the MAC, and Serial numbers should be combined as strings and use a digest algorithm (e.g. SHA 256) on the string to generate a unique alphanumeric and case-in-sensitive string of 20 characters.

Example

Given

Step #1 - Option 1 (CloudID-based Unique ID)

Nanoid.generate(size: 20)

= Dl8z6CASzFpiojfwy9kk

Step #1 - Option 2 (MAC & Serial number based Unique ID)

**base** = MAC_address + Serial_number

Digest::SHA256.hexdigest(**base**)[0...20]

= 1685e896317aa9ed0828

Step #2

**abcd** + Dl8z6CASzFpiojfwy9kk

= **abcd**Dl8z6CASzFpiojfwy9kk

Step #3

**https://cloud.acme.com/c/** + abcdDl8z6CASzFpiojfwy9kk

= **https://cloud.acme.com/c/**abcdDl8z6CASzFpiojfwy9kk

Step #4

Registering QR

When the device calls the Device Register API, it should provide the string from step #3 (Manufacturer prefix + NanoID) as the “claim_id” parameter.

The cloud_id parameter must be passed for QR claiming to function, even for Mac & SN based registration method.

Claiming with Fields Ops App

  1. Open the App
  2. Login to the Organization where you want to claim the device
  3. Select the Space you are currently in
  4. Scan the device’s QR

Claiming via regular QR Scanner

Since the URL encoded in the QR already points to the OEM's End Customer portal, once scanning the user will be redirected there. After the user sign-in or sign-up, the device with be auto claimed to their End Customer tenant.