MeshProvisioner

Discovers and provisions unprovisioned BLE Mesh devices.

MeshProvisioner handles the complete provisioning lifecycle:

  1. Scan for unprovisioned devices via PB-ADV or PB-GATT

  2. Run the provisioning protocol (ECDH + OOB authentication + data distribution)

  3. Return a provisioned MeshNode ready for configuration

Usage

val provisioner = MeshProvisioner()
provisioner.scanEvents.collect { device ->
val result = provisioner.provision(
device = device,
networkKey = myNetKey,
unicastAddress = allocateAddress(),
oobAuth = OobAuthentication.None,
)
network.addNode(result.node)
}
provisioner.close()

Inheritors

Properties

Link copied to clipboard
abstract val scanEvents: Flow<UnprovisionedDevice>

Flow of discovered unprovisioned devices. Emits when a new device beacon is seen.

Functions

Link copied to clipboard
abstract override fun close()
Link copied to clipboard
abstract suspend fun provision(device: UnprovisionedDevice, networkKey: NetworkKey, unicastAddress: MeshAddress.UnicastAddress, oobAuth: OobAuthentication = OobAuthentication.None): ProvisioningResult

Provision a discovered unprovisioned device.