Version: 1.0
Status: ⚫⚪⚪
BluetoothControl plugin for Thunder framework.
This document describes purpose and functionality of the BluetoothControl plugin. It includes detailed specification about its configuration, methods and properties as well as sent notifications.
All identifiers of the interfaces described in this document are case-sensitive. Thus, unless stated otherwise, all keywords, entities, properties, relations and actions should be treated as such.
The table below provides and overview of acronyms used in this document and their definitions.
Acronym | Description |
---|---|
API | Application Programming Interface |
HTTP | Hypertext Transfer Protocol |
JSON | JavaScript Object Notation; a data interchange format |
JSON-RPC | A remote procedure call protocol encoded in JSON |
The table below provides and overview of terms and abbreviations used in this document and their definitions.
Term | Description |
---|---|
callsign | The name given to an instance of a plugin. One plugin can be instantiated multiple times, but each instance the instance name, callsign, must be unique. |
Ref ID | Description |
---|---|
HTTP | HTTP specification |
JSON-RPC | JSON-RPC 2.0 specification |
JSON | JSON specification |
Thunder | Thunder API Reference |
The Bluetooth Control plugin allows Bluetooth device administration.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].
The table below lists configuration options of the plugin.
Name | Type | Description |
---|---|---|
callsign | string | Plugin instance name (default: BluetoothControl) |
classname | string | Class name: BluetoothControl |
locator | string | Library name: libThunderBluetoothControl.so |
startmode | string | Determines if the plugin shall be started automatically along with the framework |
configuration | object | (optional) |
configuration?.interface | number | (optional) ID of the local Bluetooth interface |
configuration?.autopasskeyconfirm | boolean | (optional) Enable automatic passkey confirmation (may pose a security risk) |
configuration?.persistmac | boolean | (optional) Enable persistent Bluetooth address |
configuration?.name | String | (optional) Name of the local Bluetooth interface |
configuration?.shortname | String | (optional) Shortened name of the local Bluetooth interface |
configuration?.class | number | (optional) Class of device value of the local Bluetooth interface |
configuration?.uuids | array | (optional) UUIDs to include in the outbound EIR/AD blocks |
configuration?.uuids[#] | object | (optional) (UUID entry) |
configuration?.uuids[#]?.callsign | string | (optional) Callsign of the plugin providing the service |
configuration?.uuids[#]?.uuid | string | (optional) UUID value (short or long) |
configuration?.uuids[#]?.service | integer | (optional) Corresponding service bit in Class of Device value |
This plugin implements the following interfaces:
- BluetoothControl.json (version 1.0.0) (compliant format)
The following methods are provided by the BluetoothControl plugin:
BluetoothControl interface methods:
Method | Description |
---|---|
setdiscoverable | Starts advertising (or inquiry scanning), making the local interface visible by nearby Bluetooth devices |
stopdiscoverable | Stops advertising (or inquiry scanning) operation |
scan | Starts active discovery (or inquiry) of nearby Bluetooth devices |
stopscanning | Stops discovery (or inquiry) operation |
connect | Connects to a Bluetooth device |
disconnect | Disconnects from a connected Bluetooth device |
pair | Pairs a Bluetooth device |
unpair | Unpairs a paired Bluetooth device |
abortpairing | Aborts pairing operation |
providepincode | Provides a PIN-code for authentication during a legacy pairing process |
providepasskey | Provides a passkey for authentication during a pairing process |
confirmpasskey | Confirms a passkey for authentication during a pairing process |
forget | Forgets a known Bluetooth device |
getdevicelist | Retrieves a list of known remote Bluetooth devices |
getdeviceinfo | Retrieves detailed information about a known Bluetooth device |
setdiscoverable method
Starts advertising (or inquiry scanning), making the local interface visible by nearby Bluetooth devices.
Please note that discoverable state in Limited mode for Bluetooth Classic is bounded to 30 seconds only.
Also see: discoverablestarted, discoverablecomplete
Name | Type | Description |
---|---|---|
params | object | |
params.type | string | Discoverable type (must be one of the following: Classic, LowEnergy) |
params?.mode | string | (optional) Discoverable mode (must be one of the following: General, Limited) (default: General) |
params?.connectable | boolean | (optional) Selects connectable advertising (true, LowEnergy only) (default: False) |
params?.duration | integer | (optional) Duration of the discoverable operation (in seconds) (default: 30) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
1 | ERROR_GENERAL |
Failed set discoverable state |
12 | ERROR_INPROGRESS |
Discoverable state of selected type is already in progress |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.setdiscoverable",
"params": {
"type": "LowEnergy",
"mode": "General",
"connectable": false,
"duration": 30
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
stopdiscoverable method
Stops advertising (or inquiry scanning) operation.
Also see: discoverablecomplete
Name | Type | Description |
---|---|---|
params | object | |
params.type | string | Discoverable type (must be one of the following: Classic, LowEnergy) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
1 | ERROR_GENERAL |
Failed to top scanning |
5 | ERROR_ILLEGAL_STATE |
Adapter is in not discoverable state of selected type |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.stopdiscoverable",
"params": {
"type": "LowEnergy"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
scan method
Starts active discovery (or inquiry) of nearby Bluetooth devices.
Also see: scanstarted, scancomplete
Name | Type | Description |
---|---|---|
params | object | |
params.type | string | Scan type (must be one of the following: Classic, LowEnergy) |
params?.mode | string | (optional) Scan mode (must be one of the following: General, Limited) (default: General) |
params?.timeout | integer | (deprecated) (optional) Duration of the scan (in seconds) (default: 10) |
params?.duration | integer | (optional) Duration of the scan (in seconds) (default: 10) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
1 | ERROR_GENERAL |
Failed to scan |
12 | ERROR_INPROGRESS |
Scan of selected type is already in progress |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.scan",
"params": {
"type": "LowEnergy",
"mode": "General",
"duration": 60
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
stopscanning method
Stops discovery (or inquiry) operation.
Also see: scancomplete
Name | Type | Description |
---|---|---|
params | object | |
params?.type | string | (optional) Scan type (must be one of the following: Classic, LowEnergy) (default: LowEnergy) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
1 | ERROR_GENERAL |
Failed to top scanning |
5 | ERROR_ILLEGAL_STATE |
Scan of selected type is not in progress |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.stopscanning",
"params": {
"type": "LowEnergy"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
connect method
Connects to a Bluetooth device.
This call also enables automatic reconnection of the device. If the device is currently not available it will be automatically connected as soon it becomes available.
Also see: devicestatechange
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params?.type | string | (optional) Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) (default: LowEnergy) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
5 | ERROR_ILLEGAL_STATE |
Device not paired |
9 | ERROR_ALREADY_CONNECTED |
Device already connected |
1 | ERROR_GENERAL |
Failed to connect the device |
27 | ERROR_REQUEST_SUBMITTED |
Device has not been connected but will be automatically connected when available |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.connect",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
disconnect method
Disconnects from a connected Bluetooth device.
This call also disables automatic reconnection. If the device is currently not connected it will not be reconnected when it becomes available.
Also see: devicestatechange
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params?.type | string | (optional) Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) (default: LowEnergy) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
36 | ERROR_ALREADY_RELEASED |
Device not connected |
27 | ERROR_REQUEST_SUBMITTED |
Device is currently not connected but it's autoconnection mode has been disabled |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.disconnect",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
pair method
Pairs a Bluetooth device.
PIN-code or passkey requests may appear during the pairing process. The process can be cancelled any time by calling the abortpairing method.
Also see: devicestatechange, pincoderequest, passkeyrequest, passkeyconfirmrequest
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params?.type | string | (optional) Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) (default: LowEnergy) |
params?.capabilities | string | (optional) Pairing capabilities (must be one of the following: DisplayOnly, DisplayYesNo, KeyboardOnly, NoInputNoOutput, KeyboardDisplay) (default: NoInputNoOutput) |
params?.timeout | integer | (optional) Maximum time allowed for the pairing process to complete (in seconds) (default: 20) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
9 | ERROR_ALREADY_CONNECTED |
Device already paired |
1 | ERROR_GENERAL |
Failed to pair the device |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.pair",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy",
"capabilities": "NoInputNoOutput",
"timeout": 60
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
unpair method
Unpairs a paired Bluetooth device.
Also see: devicestatechange
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params?.type | string | (optional) Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) (default: LowEnergy) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
36 | ERROR_ALREADY_RELEASED |
Device not paired |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.unpair",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
abortpairing method
Aborts pairing operation.
Also see: devicestatechange
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params?.type | string | (optional) Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) (default: LowEnergy) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
5 | ERROR_ILLEGAL_STATE |
Device not currently pairing |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.abortpairing",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
providepincode method
Provides a PIN-code for authentication during a legacy pairing process.
This method should be called upon receiving a pincoderequest event during a legacy pairing process. If the specified PIN-code is incorrect the pairing process will be aborted.
Also see: devicestatechange, pincoderequest
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
params.secret | string | A PIN-code string typically consisting of (but not limited to) four decimal digits |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
5 | ERROR_ILLEGAL_STATE |
Device not currently pairing or PIN code has not been requested |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.providepincode",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "Classic",
"secret": "0000"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
providepasskey method
Provides a passkey for authentication during a pairing process.
This method should be called upon receiving a passkeyrequest event during pairing process. If the specified passkey is incorrect or empty the pairing process will be aborted.
Also see: devicestatechange, passkeyrequest
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
params.secret | integer | A six-digit decimal number passkey |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
5 | ERROR_ILLEGAL_STATE |
Device not currently pairing or a passkey has not been requested |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.providepasskey",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "Classic",
"secret": 123456
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
confirmpasskey method
Confirms a passkey for authentication during a pairing process.
This method should be called upon receiving a passkeyconfirmationrequest event during a pairing process. If the confirmation is negative the pairing process will be aborted.
Also see: devicestatechange, passkeyconfirmrequest
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
params.iscorrect | boolean | Specifies if the passkey sent in passkeyconfirmrequest event is correct (true) or incorrect (false) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
5 | ERROR_ILLEGAL_STATE |
Device is currently not pairing or passkey confirmation has not been requested |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.confirmpasskey",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "Classic",
"iscorrect": true
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
forget method
Forgets a known Bluetooth device.
The device will no longer be listed and its status tracked. If the device is connected and/or paired it will be disconnected and unpaired.
Also see: devicestatechange
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
Name | Type | Description |
---|---|---|
result | null | Always null |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.forget",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": null
}
getdevicelist method
Retrieves a list of known remote Bluetooth devices.
This method takes no parameters.
Name | Type | Description |
---|---|---|
result | array | List of devices |
result[#] | object | (device entry) |
result[#].address | string | Bluetooth address |
result[#].type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.getdevicelist"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": [
{
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy"
}
]
}
getdeviceinfo method
Retrieves detailed information about a known Bluetooth device.
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
Name | Type | Description |
---|---|---|
result | object | |
result.address | string | Bluetooth address |
result.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
result?.name | string | (optional) Name of the device |
result?.class | integer | (optional) Class of device |
result?.appearance | integer | (optional) Appearance value |
result?.services | array | (optional) List of supported services |
result?.services[#] | string | (optional) Service UUID |
result.connected | boolean | Indicates if the device is currently connected |
result.paired | boolean | Indicates if the device is currently paired |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.getdeviceinfo",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy"
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"address": "81:6F:B0:91:9B:FE",
"type": "Classic",
"name": "Thunder Bluetooth Speaker",
"class": 2360324,
"appearance": 2113,
"services": [
"110a"
],
"connected": true,
"paired": true
}
}
The following properties are provided by the BluetoothControl plugin:
BluetoothControl interface properties:
Property | Description |
---|---|
adapters RO | List of local Bluetooth adapters |
adapter RO | Local Bluetooth adapter information |
deprecated devices RO | List of known remote Bluetooth devices |
deprecated device RO | Remote Bluetooth device information |
adapters property
Provides access to the list of local Bluetooth adapters.
This property is read-only.
Name | Type | Description |
---|---|---|
result | array | List of local Bluetooth adapters |
result[#] | integer | Adapter ID |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.adapters"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": [
0
]
}
adapter property
Provides access to the local Bluetooth adapter information.
This property is read-only.
The adapter id argument shall be passed as the index to the property, e.g. BluetoothControl.1.adapter@0.
Name | Type | Description |
---|---|---|
result | object | Local Bluetooth adapter information |
result.id | integer | Interface ID number |
result.interface | string | Interface name |
result.address | string | Bluetooth address |
result.type | string | Adapter type (must be one of the following: Classic, LowEnergy, Dual) |
result.version | integer | Version |
result?.manufacturer | integer | (optional) Manufacturer company identifer |
result?.class | integer | (optional) Class of device |
result?.name | string | (optional) Name |
result?.shortname | string | (optional) Short name |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown adapter device |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.adapter@0"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"id": 0,
"interface": "hci0",
"address": "81:6F:B0:91:9B:FE",
"type": "Dual",
"version": 8,
"manufacturer": 15,
"class": 1060,
"name": "Thunder Bluetooth Controller",
"shortname": "Thunder"
}
}
devices property
Provides access to the list of known remote Bluetooth devices.
This property is read-only.
This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.
Name | Type | Description |
---|---|---|
result | array | List of known remote Bluetooth devices |
result[#] | string | Bluetooth address |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.devices"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": [
"81:6F:B0:91:9B:FE"
]
}
device property
Provides access to the remote Bluetooth device information.
This property is read-only.
This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.
The device address argument shall be passed as the index to the property, e.g. BluetoothControl.1.device@81:6F:B0:91:9B:FE.
Name | Type | Description |
---|---|---|
result | object | Remote Bluetooth device information |
result.address | string | Bluetooth address |
result.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
result?.name | string | (optional) Name of the device |
result?.class | integer | (optional) Class of device |
result?.appearance | integer | (optional) Appearance value |
result?.services | array | (optional) List of supported services |
result?.services[#] | string | (optional) Service UUID |
result.connected | boolean | Indicates if the device is currently connected |
result.paired | boolean | Indicates if the device is currently paired |
Code | Message | Description |
---|---|---|
22 | ERROR_UNKNOWN_KEY |
Unknown device |
{
"jsonrpc": "2.0",
"id": 42,
"method": "BluetoothControl.1.device@81:6F:B0:91:9B:FE"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"address": "81:6F:B0:91:9B:FE",
"type": "Classic",
"name": "Thunder Bluetooth Speaker",
"class": 2360324,
"appearance": 2113,
"services": [
"110a"
],
"connected": true,
"paired": true
}
}
Notifications are autonomous events triggered by the internals of the implementation and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.
The following events are provided by the BluetoothControl plugin:
BluetoothControl interface events:
Event | Description |
---|---|
discoverablestarted | Notifies of entering the discoverable state |
discoverablecomplete | Notifies of leaving the discoverable state |
scanstarted | Notifies of scan start |
scancomplete | Notifies of scan completion |
devicestatechange | Notifies of device state changes |
pincoderequest | Notifies of a PIN code request |
passkeyrequest | Notifies of a passkey request |
passkeyconfirmrequest | Notifies of a passkey confirmation request |
discoverablestarted event
Notifies of entering the discoverable state.
Register to this event to be notified about entering the discoverable state
If applicable, this notification may be sent out during registration, reflecting the current status.
Name | Type | Description |
---|---|---|
params | object | |
params.type | string | Discoverable type (must be one of the following: Classic, LowEnergy) |
params.mode | string | Discoverable mode (must be one of the following: General, Limited) |
params?.connectable | boolean | (optional) Indicates connectable advertising (true, LowEnergy only) (default: False) |
{
"jsonrpc": "2.0",
"method": "client.events.1.discoverablestarted",
"params": {
"type": "LowEnergy",
"mode": "General",
"connectable": false
}
}
discoverablecomplete event
Notifies of leaving the discoverable state.
Register to this event to be notified about leaving the discoverable state
Name | Type | Description |
---|---|---|
params | object | |
params.type | string | Discoverable type (must be one of the following: Classic, LowEnergy) |
{
"jsonrpc": "2.0",
"method": "client.events.1.discoverablecomplete",
"params": {
"type": "LowEnergy"
}
}
scanstarted event
Notifies of scan start.
Register to this event to be notified about device scan start
If applicable, this notification may be sent out during registration, reflecting the current status.
Name | Type | Description |
---|---|---|
params | object | |
params.type | string | Scan type (must be one of the following: Classic, LowEnergy) |
params?.mode | string | (optional) Scan mode (must be one of the following: General, Limited) (default: General) |
{
"jsonrpc": "2.0",
"method": "client.events.1.scanstarted",
"params": {
"type": "LowEnergy",
"mode": "General"
}
}
scancomplete event
Notifies of scan completion.
Register to this event to be notified about device scan completion
Name | Type | Description |
---|---|---|
params | object | |
params.type | string | Scan type (must be one of the following: Classic, LowEnergy) |
{
"jsonrpc": "2.0",
"method": "client.events.1.scancomplete",
"params": {
"type": "LowEnergy"
}
}
devicestatechange event
Notifies of device state changes.
Register to this event to be notified about device state changes
If applicable, this notification may be sent out during registration, reflecting the current status.
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
params.state | string | Device state (must be one of the following: Pairing, Paired, Unpaired, Connected, Disconnected) |
params?.disconnectreason | string | (optional) Disconnection reason in case of Disconnected event (must be one of the following: ConnectionTimeout, AuthenticationFailure, RemoteLowOnResources, RemotePoweredOff, TerminatedByRemote, TerminatedByHost) |
The device type argument shall be passed within the designator, e.g. LowEnergy.client.events.1.
{
"jsonrpc": "2.0",
"method": "LowEnergy.client.events.1.devicestatechange",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "LowEnergy",
"state": "Disconnected",
"disconnectreason": "ConnectionTimeout"
}
}
pincoderequest event
Notifies of a PIN code request.
Register to this event to be notified about PIN code requests during a legacy pairing process. Upon receiving this event the client is required to respond with a providepincode call in order to complete the pairing procedure. The PIN code value would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted.
Note that this event will never be send for a Bluetooth LowEnergy device
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
{
"jsonrpc": "2.0",
"method": "client.events.1.pincoderequest",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "Classic"
}
}
passkeyrequest event
Notifies of a passkey request.
Register to this event to be notified about passkey requests that may be required during a pairing process. Upon receiving this event the client is required to respond with a providepasskey call in order to complete the pairing procedure. The passkey value would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
{
"jsonrpc": "2.0",
"method": "client.events.1.passkeyrequest",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "Classic"
}
}
passkeyconfirmrequest event
Notifies of a passkey confirmation request.
Register to this event to be notified about passkey confirmation requests that may required during a pairing process. Upon receiving this event the client is required to respond with a passkeyconfirm call in order to complete the pairing procedure. The passkey confirmation would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted
Name | Type | Description |
---|---|---|
params | object | |
params.address | string | Bluetooth address |
params.type | string | Device type (must be one of the following: Classic, LowEnergy, LowEnergyRandom) |
params.secret | integer | A six-digit decimal number passkey sent by the remote device for confirmation; may be 0 for a simple accept/forbid paring request |
{
"jsonrpc": "2.0",
"method": "client.events.1.passkeyconfirmrequest",
"params": {
"address": "81:6F:B0:91:9B:FE",
"type": "Classic",
"secret": 123456
}
}