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_id: 0xFFF1,
product_id: 0x8000,
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.
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.
Generates a Matter QR code payload string.
Options
:vendor_id— 16-bit vendor ID (required):product_id— 16-bit product 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.