MatterEx.SetupPayload (matter_ex v0.4.0)

Copy Markdown View Source

Encodes Matter setup payloads for QR codes and manual pairing codes.

QR Code Payload (Matter spec 5.1.3)

Packs device info into 88 bits, base-38 encodes with prefix "MT:".

MatterEx.SetupPayload.qr_code_payload(
  vendor: :test,
  product: :matter_example,
  discriminator: 3840,
  passcode: 20202021
)
#=> "MT:Y.K9042C00KA0648G00"

Manual Pairing Code (Matter spec 5.1.4)

11-digit decimal code with Verhoeff check digit.

MatterEx.SetupPayload.manual_pairing_code(
  discriminator: 3840,
  passcode: 20202021
)
#=> "34970112332"

Summary

Functions

Generates an 11-digit manual pairing code.

Generates a Matter QR code payload string.

Functions

manual_pairing_code(opts)

Generates an 11-digit manual pairing code.

Options

  • :discriminator — 12-bit discriminator (required, only top 4 bits used)
  • :passcode — 27-bit setup passcode (required)
  • :flow — commissioning flow, 0 = standard (default 0). When non-zero, the vid_pid_present bit is set.

qr_code_payload(opts)

Generates a Matter QR code payload string.

Options

  • :vendor — known vendor alias, or :vendor_id with a 16-bit ID (required)
  • :product — known product alias, or :product_id with a 16-bit ID (required)
  • :discriminator — 12-bit discriminator 0..4095 (required)
  • :passcode — 27-bit setup passcode (required)
  • :flow — commissioning flow, 0..3 (default 0 = standard)
  • :discovery — discovery capabilities bitmask (default 2 = BLE)
  • :version — payload version, 0..7 (default 0)

Raises ArgumentError if any value is out of range or the passcode is on the Matter spec invalid list.