@autorunify/capacitor-nrfmesh 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/android/src/main/java/com/autorunify/capacitor/nrfmesh/BleManager.kt +4 -2
- package/android/src/main/java/com/autorunify/capacitor/nrfmesh/MeshDevice.kt +1 -1
- package/android/src/main/java/com/autorunify/capacitor/nrfmesh/NrfMeshPlugin.kt +9 -4
- package/android/src/main/java/com/autorunify/capacitor/nrfmesh/SensorWrapper.kt +8 -6
- package/dist/docs.json +1 -1
- package/dist/esm/definitions.d.ts +1 -1
- package/dist/esm/definitions.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1366,12 +1366,12 @@ Creates a new function.
|
|
|
1366
1366
|
|
|
1367
1367
|
#### ModelOptions
|
|
1368
1368
|
|
|
1369
|
-
| Prop | Type
|
|
1370
|
-
| -------------------- |
|
|
1371
|
-
| **`elementAddress`** | <code>number</code>
|
|
1372
|
-
| **`appkeyIndex`** | <code>number</code>
|
|
1373
|
-
| **`onoff`** | <code>{ set?: <a href="#onoffmodel">OnOffModel</a>; }</code>
|
|
1374
|
-
| **`sensor`** | <code>{ propertyId
|
|
1369
|
+
| Prop | Type |
|
|
1370
|
+
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1371
|
+
| **`elementAddress`** | <code>number</code> |
|
|
1372
|
+
| **`appkeyIndex`** | <code>number</code> |
|
|
1373
|
+
| **`onoff`** | <code>{ set?: <a href="#onoffmodel">OnOffModel</a>; }</code> |
|
|
1374
|
+
| **`sensor`** | <code>{ propertyId?: number; get?: <a href="#omit">Omit</a><<a href="#sensormodel">SensorModel</a>, 'values'>; property?: <a href="#partialany">PartialAny</a><<a href="#sensorrawvalue">SensorRawValue</a>, 'bytes'>; properties?: <a href="#sensorpropertiesmodel">SensorPropertiesModel</a>; }</code> |
|
|
1375
1375
|
|
|
1376
1376
|
|
|
1377
1377
|
#### ScanResults
|
|
@@ -303,6 +303,7 @@ class BleManager {
|
|
|
303
303
|
|
|
304
304
|
while (timeCount > 0) {
|
|
305
305
|
delay(timeMillis)
|
|
306
|
+
devicesByFilter.clear()
|
|
306
307
|
synchronized(devices) {
|
|
307
308
|
devices.forEach { device ->
|
|
308
309
|
if (filter == "provisioned" && device.provisioned) {
|
|
@@ -318,7 +319,6 @@ class BleManager {
|
|
|
318
319
|
if (max > 0 && devicesByFilter.size >= max) {
|
|
319
320
|
break
|
|
320
321
|
} else {
|
|
321
|
-
devicesByFilter = mutableListOf()
|
|
322
322
|
timeCount--;
|
|
323
323
|
}
|
|
324
324
|
}
|
|
@@ -328,8 +328,10 @@ class BleManager {
|
|
|
328
328
|
|
|
329
329
|
fun disconnect(): Boolean {
|
|
330
330
|
try {
|
|
331
|
-
if (isConnected.value
|
|
331
|
+
if (isConnected.value == true) {
|
|
332
332
|
mesh.disconnect()
|
|
333
|
+
} else {
|
|
334
|
+
async.emit(JSObject(), MESH_STATE_DISCONNECTED)
|
|
333
335
|
}
|
|
334
336
|
|
|
335
337
|
return isConnected.value!!
|
|
@@ -24,7 +24,7 @@ class MeshDevice {
|
|
|
24
24
|
this.rssi = scanResult.rssi
|
|
25
25
|
|
|
26
26
|
this.scanRecord = scanResult.scanRecord
|
|
27
|
-
this.name =
|
|
27
|
+
this.name = scanRecord?.deviceName ?: "Unknown"
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
fun match(scanResult: ScanResult): Boolean {
|
|
@@ -904,17 +904,19 @@ class NrfMeshPlugin : Plugin {
|
|
|
904
904
|
|
|
905
905
|
val sensorOpts = call.getObject("sensor")
|
|
906
906
|
if (sensorOpts != null) {
|
|
907
|
-
val propertyId = sensorOpts.getInteger("propertyId")
|
|
908
|
-
?: return@launch call.reject("sensor options propertyId is required")
|
|
909
|
-
|
|
910
907
|
val getOpts = sensorOpts.getJSObject("get")
|
|
911
908
|
if (getOpts != null) {
|
|
912
|
-
val
|
|
909
|
+
val propertyId = sensorOpts.getInteger("propertyId")
|
|
910
|
+
|
|
911
|
+
val message = SensorGetWrapper(appkey, propertyId?.toShort())
|
|
913
912
|
pairs.add(MessagePair(SENSOR_GET, message))
|
|
914
913
|
}
|
|
915
914
|
|
|
916
915
|
val propertyOpts = sensorOpts.getJSObject("property")
|
|
917
916
|
if (propertyOpts != null) {
|
|
917
|
+
val propertyId = sensorOpts.getInteger("propertyId")
|
|
918
|
+
?: return@launch call.reject("sensor options propertyId is required")
|
|
919
|
+
|
|
918
920
|
val setPropertyId = propertyOpts.getInteger("propertyId")
|
|
919
921
|
?: return@launch call.reject("sensor.property options propertyId is required")
|
|
920
922
|
val setBytes = propertyOpts.optJSONArray("bytes")
|
|
@@ -944,6 +946,9 @@ class NrfMeshPlugin : Plugin {
|
|
|
944
946
|
|
|
945
947
|
val propertiesOpts = sensorOpts.getJSObject("properties")
|
|
946
948
|
if (propertiesOpts != null) {
|
|
949
|
+
val propertyId = sensorOpts.getInteger("propertyId")
|
|
950
|
+
?: return@launch call.reject("sensor options propertyId is required")
|
|
951
|
+
|
|
947
952
|
val message = SensorSettingsGetWrapper(
|
|
948
953
|
appkey,
|
|
949
954
|
propertyId.toShort()
|
|
@@ -16,13 +16,15 @@ import java.nio.ByteBuffer
|
|
|
16
16
|
import java.nio.ByteOrder.LITTLE_ENDIAN
|
|
17
17
|
|
|
18
18
|
class SensorGetWrapper : SensorGet {
|
|
19
|
-
constructor(appkey: ApplicationKey, propertyId: Short)
|
|
19
|
+
constructor(appkey: ApplicationKey, propertyId: Short?)
|
|
20
20
|
: super(appkey, DeviceProperty.UNKNOWN) {
|
|
21
|
-
|
|
22
|
-
.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
if (propertyId != null) {
|
|
22
|
+
this.mParameters = ByteBuffer
|
|
23
|
+
.allocate(2)
|
|
24
|
+
.order(LITTLE_ENDIAN)
|
|
25
|
+
.putShort(propertyId)
|
|
26
|
+
.array()
|
|
27
|
+
}
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
|
package/dist/docs.json
CHANGED
|
@@ -4869,7 +4869,7 @@
|
|
|
4869
4869
|
"SensorRawValue",
|
|
4870
4870
|
"SensorPropertiesModel"
|
|
4871
4871
|
],
|
|
4872
|
-
"type": "{ propertyId
|
|
4872
|
+
"type": "{ propertyId?: number | undefined; get?: Omit<SensorModel, 'values'> | undefined; property?: PartialAny<SensorRawValue, 'bytes'> | undefined; properties?: SensorPropertiesModel | undefined; } | undefined"
|
|
4873
4873
|
}
|
|
4874
4874
|
]
|
|
4875
4875
|
},
|
|
@@ -229,7 +229,7 @@ export interface ModelOptions extends TimeoutOptions {
|
|
|
229
229
|
set?: OnOffModel;
|
|
230
230
|
};
|
|
231
231
|
sensor?: {
|
|
232
|
-
propertyId
|
|
232
|
+
propertyId?: number;
|
|
233
233
|
get?: Omit<SensorModel, 'values'>;
|
|
234
234
|
property?: PartialAny<SensorRawValue, 'bytes'>;
|
|
235
235
|
properties?: SensorPropertiesModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core'\n\ntype PartialAny<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport type PermissionState = 'denied' | 'granted'\n\nexport type PermissionKey =\n \"android.permission.BLUETOOTH\" |\n \"android.permission.BLUETOOTH_ADMIN\" |\n \"android.permission.ACCESS_COARSE_LOCATION\" |\n \"android.permission.ACCESS_FINE_LOCATION\" |\n \"android.permission.BLUETOOTH_SCAN\" |\n \"android.permission.BLUETOOTH_CONNECT\"\n\n\nexport type Permissions = {\n [key in PermissionKey]: PermissionState;\n}\n\nexport interface BluetoothState {\n enabled: boolean;\n}\n\nexport interface TimeoutOptions {\n timeout?: number\n}\n\nexport interface ConnectionState {\n connected: boolean\n}\n\nexport interface NetKey {\n index: number;\n key: string;\n minSecurity: string;\n name: string;\n phase: number;\n timestamp: string;\n oldKey?: string;\n}\n\nexport interface AppKey {\n index: number\n boundNetKey: number\n key: string\n name: string\n}\n\nexport interface MeshGroup {\n name: string\n address: number\n addressHex: string\n}\n\nexport interface MeshNode {\n name: string\n deviceKey: string\n unicastAddress: number\n security: string\n ttl: number\n netkeys: Array<{ index: number, updated: boolean }>\n appkeys: Array<{ index: number, updated: boolean }>\n elements: Array<{\n name: string\n elementAddress: number\n models: Array<{\n modelId: number\n appkeys: Array<number>\n subscriptions: Array<number>\n publication?: number\n }>\n }>\n features?: {\n friend: number\n lowPower: number\n proxy: number\n relay: number\n }\n networkTransmit?: {\n count: number\n interval: number\n steps: number\n }\n}\n\nexport interface OnOffModel {\n state: boolean\n}\n\nexport interface SensorRawValue {\n propertyId: number\n bytes: Array<number>\n}\n\nexport interface SensorModel {\n values: Array<SensorRawValue>\n}\n\nexport interface SensorPropertiesModel {\n properties: Array<Omit<SensorRawValue, 'bytes'>>\n}\n\nexport interface NetKeysResults {\n netkeys: Array<NetKey>\n}\n\nexport interface NetKeyOptions {\n add?: Omit<NetKey, 'index' | 'key' | 'minSecurity' | 'name' | 'phase' | 'timestamp' | 'oldKey'>\n del?: Omit<NetKey, 'key' | 'minSecurity' | 'name' | 'phase' | 'timestamp' | 'oldKey'>\n get?: Omit<NetKey, 'key' | 'minSecurity' | 'name' | 'phase' | 'timestamp' | 'oldKey'>\n}\n\nexport interface AppKeysOptions {\n boundNetKey: number\n}\n\nexport interface AppKeysResults {\n appkeys: Array<AppKey>\n}\n\nexport interface AppKeyOptions {\n add?: Partial<Omit<AppKey, 'index' | 'key' | 'name'>>\n del?: Omit<AppKey, 'boundNetKey' | 'key' | 'name'>\n get?: Omit<AppKey, 'boundNetKey' | 'key' | 'name'>\n}\n\nexport interface GroupsResults {\n groups: Array<MeshGroup>\n}\n\nexport interface GroupOptions {\n add?: Omit<MeshGroup, 'name' | 'addressHex'>\n del?: Omit<MeshGroup, 'name' | 'addressHex'>\n get?: Omit<MeshGroup, 'name' | 'addressHex'>\n}\n\nexport interface NodesResults {\n nodes: Array<MeshNode>\n}\n\nexport interface NodeDefaultTTL {\n ttl: number;\n}\n\nexport interface NodeNetworkTransmit {\n count: number\n intervalSteps: number\n}\n\nexport interface NodeNetkey {\n netkeyIndex: number\n}\n\nexport interface NodeNetkeys {\n netkeyIndexes: Array<number>\n}\n\nexport interface NodeAppkey {\n netkeyIndex: number\n appkeyIndex: number\n}\n\nexport interface NodeAppkeys {\n netkeyIndex: number\n appkeyIndexes: Array<number>\n}\n\nexport interface ModelAppkey {\n elementAddress: number;\n modelId: number;\n appkeyIndex: number;\n}\n\nexport interface ModelAppkeys {\n elementAddress: number;\n modelId: number;\n appkeyIndexs: Array<number>;\n}\n\nexport interface HeartbeatPub {\n address: number\n count: number\n period: number\n ttl: number\n netkeyIndex: number\n features: {\n friend: number\n proxy: number\n relay: number\n lowPower: number\n }\n}\n\nexport interface HeartbeatSub {\n srcAddress: number\n dstAddress: number\n period: number\n count: number\n minHops: number\n maxHops: number\n}\n\nexport interface NodeOptions extends TimeoutOptions {\n unicastAddress: number\n get?: Object\n defaultTTL?: { set?: NodeDefaultTTL }\n networkTransmit?: { set?: NodeNetworkTransmit }\n netkey?: {\n add?: NodeNetkey\n del?: NodeNetkey\n get?: Omit<NodeNetkeys, 'netkeyIndexes'>\n }\n appkey?: {\n add?: Omit<NodeAppkey, 'netkeyIndex'>\n del?: Omit<NodeAppkey, 'netkeyIndex'>\n get?: Partial<Omit<NodeAppkeys, 'appkeyIndexes'>>\n },\n heartbeat?: {\n pub?: { set?: PartialAny<Omit<HeartbeatPub, 'features'>, 'address' | 'count' | 'netkeyIndex'> }\n sub?: { set?: Omit<HeartbeatSub, 'count' | 'minHops' | 'maxHops'> }\n },\n bind?: {\n add?: ModelAppkey\n del?: ModelAppkey\n get?: Omit<ModelAppkeys, \"appkeyIndexs\">\n }\n}\n\nexport interface NodeResults {\n get?: MeshNode\n defaultTTL?: NodeDefaultTTL\n networkTransmit?: NodeNetworkTransmit\n netkey?: {\n add?: NodeNetkey\n del?: NodeNetkey\n get?: NodeNetkeys\n }\n appkey?: {\n add?: NodeAppkey\n del?: NodeAppkey\n get?: NodeAppkeys\n },\n heartbeat?: {\n pub?: HeartbeatPub\n sub?: HeartbeatSub\n },\n bind?: {\n add?: ModelAppkey\n del?: ModelAppkey\n get?: ModelAppkeys\n }\n}\n\nexport interface ModelOptions extends TimeoutOptions {\n elementAddress: number\n appkeyIndex: number\n onoff?: {\n set?: OnOffModel\n },\n sensor?: {\n propertyId
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core'\n\ntype PartialAny<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport type PermissionState = 'denied' | 'granted'\n\nexport type PermissionKey =\n \"android.permission.BLUETOOTH\" |\n \"android.permission.BLUETOOTH_ADMIN\" |\n \"android.permission.ACCESS_COARSE_LOCATION\" |\n \"android.permission.ACCESS_FINE_LOCATION\" |\n \"android.permission.BLUETOOTH_SCAN\" |\n \"android.permission.BLUETOOTH_CONNECT\"\n\n\nexport type Permissions = {\n [key in PermissionKey]: PermissionState;\n}\n\nexport interface BluetoothState {\n enabled: boolean;\n}\n\nexport interface TimeoutOptions {\n timeout?: number\n}\n\nexport interface ConnectionState {\n connected: boolean\n}\n\nexport interface NetKey {\n index: number;\n key: string;\n minSecurity: string;\n name: string;\n phase: number;\n timestamp: string;\n oldKey?: string;\n}\n\nexport interface AppKey {\n index: number\n boundNetKey: number\n key: string\n name: string\n}\n\nexport interface MeshGroup {\n name: string\n address: number\n addressHex: string\n}\n\nexport interface MeshNode {\n name: string\n deviceKey: string\n unicastAddress: number\n security: string\n ttl: number\n netkeys: Array<{ index: number, updated: boolean }>\n appkeys: Array<{ index: number, updated: boolean }>\n elements: Array<{\n name: string\n elementAddress: number\n models: Array<{\n modelId: number\n appkeys: Array<number>\n subscriptions: Array<number>\n publication?: number\n }>\n }>\n features?: {\n friend: number\n lowPower: number\n proxy: number\n relay: number\n }\n networkTransmit?: {\n count: number\n interval: number\n steps: number\n }\n}\n\nexport interface OnOffModel {\n state: boolean\n}\n\nexport interface SensorRawValue {\n propertyId: number\n bytes: Array<number>\n}\n\nexport interface SensorModel {\n values: Array<SensorRawValue>\n}\n\nexport interface SensorPropertiesModel {\n properties: Array<Omit<SensorRawValue, 'bytes'>>\n}\n\nexport interface NetKeysResults {\n netkeys: Array<NetKey>\n}\n\nexport interface NetKeyOptions {\n add?: Omit<NetKey, 'index' | 'key' | 'minSecurity' | 'name' | 'phase' | 'timestamp' | 'oldKey'>\n del?: Omit<NetKey, 'key' | 'minSecurity' | 'name' | 'phase' | 'timestamp' | 'oldKey'>\n get?: Omit<NetKey, 'key' | 'minSecurity' | 'name' | 'phase' | 'timestamp' | 'oldKey'>\n}\n\nexport interface AppKeysOptions {\n boundNetKey: number\n}\n\nexport interface AppKeysResults {\n appkeys: Array<AppKey>\n}\n\nexport interface AppKeyOptions {\n add?: Partial<Omit<AppKey, 'index' | 'key' | 'name'>>\n del?: Omit<AppKey, 'boundNetKey' | 'key' | 'name'>\n get?: Omit<AppKey, 'boundNetKey' | 'key' | 'name'>\n}\n\nexport interface GroupsResults {\n groups: Array<MeshGroup>\n}\n\nexport interface GroupOptions {\n add?: Omit<MeshGroup, 'name' | 'addressHex'>\n del?: Omit<MeshGroup, 'name' | 'addressHex'>\n get?: Omit<MeshGroup, 'name' | 'addressHex'>\n}\n\nexport interface NodesResults {\n nodes: Array<MeshNode>\n}\n\nexport interface NodeDefaultTTL {\n ttl: number;\n}\n\nexport interface NodeNetworkTransmit {\n count: number\n intervalSteps: number\n}\n\nexport interface NodeNetkey {\n netkeyIndex: number\n}\n\nexport interface NodeNetkeys {\n netkeyIndexes: Array<number>\n}\n\nexport interface NodeAppkey {\n netkeyIndex: number\n appkeyIndex: number\n}\n\nexport interface NodeAppkeys {\n netkeyIndex: number\n appkeyIndexes: Array<number>\n}\n\nexport interface ModelAppkey {\n elementAddress: number;\n modelId: number;\n appkeyIndex: number;\n}\n\nexport interface ModelAppkeys {\n elementAddress: number;\n modelId: number;\n appkeyIndexs: Array<number>;\n}\n\nexport interface HeartbeatPub {\n address: number\n count: number\n period: number\n ttl: number\n netkeyIndex: number\n features: {\n friend: number\n proxy: number\n relay: number\n lowPower: number\n }\n}\n\nexport interface HeartbeatSub {\n srcAddress: number\n dstAddress: number\n period: number\n count: number\n minHops: number\n maxHops: number\n}\n\nexport interface NodeOptions extends TimeoutOptions {\n unicastAddress: number\n get?: Object\n defaultTTL?: { set?: NodeDefaultTTL }\n networkTransmit?: { set?: NodeNetworkTransmit }\n netkey?: {\n add?: NodeNetkey\n del?: NodeNetkey\n get?: Omit<NodeNetkeys, 'netkeyIndexes'>\n }\n appkey?: {\n add?: Omit<NodeAppkey, 'netkeyIndex'>\n del?: Omit<NodeAppkey, 'netkeyIndex'>\n get?: Partial<Omit<NodeAppkeys, 'appkeyIndexes'>>\n },\n heartbeat?: {\n pub?: { set?: PartialAny<Omit<HeartbeatPub, 'features'>, 'address' | 'count' | 'netkeyIndex'> }\n sub?: { set?: Omit<HeartbeatSub, 'count' | 'minHops' | 'maxHops'> }\n },\n bind?: {\n add?: ModelAppkey\n del?: ModelAppkey\n get?: Omit<ModelAppkeys, \"appkeyIndexs\">\n }\n}\n\nexport interface NodeResults {\n get?: MeshNode\n defaultTTL?: NodeDefaultTTL\n networkTransmit?: NodeNetworkTransmit\n netkey?: {\n add?: NodeNetkey\n del?: NodeNetkey\n get?: NodeNetkeys\n }\n appkey?: {\n add?: NodeAppkey\n del?: NodeAppkey\n get?: NodeAppkeys\n },\n heartbeat?: {\n pub?: HeartbeatPub\n sub?: HeartbeatSub\n },\n bind?: {\n add?: ModelAppkey\n del?: ModelAppkey\n get?: ModelAppkeys\n }\n}\n\nexport interface ModelOptions extends TimeoutOptions {\n elementAddress: number\n appkeyIndex: number\n onoff?: {\n set?: OnOffModel\n },\n sensor?: {\n propertyId?: number\n get?: Omit<SensorModel, 'values'>\n property?: PartialAny<SensorRawValue, 'bytes'>\n properties?: SensorPropertiesModel\n }\n}\n\nexport interface ModelResults {\n onoff?: OnOffModel,\n sensor?: {\n get?: SensorModel\n property?: SensorRawValue\n properties?: SensorPropertiesModel\n }\n}\n\nexport interface MeshDevice {\n address: string\n name: string\n provisioned: boolean\n rssi: number\n uuid?: string\n}\n\nexport interface ScanOptions extends TimeoutOptions {\n filter?: 'all' | 'provisioned' | 'unprovisioned'\n max?: number\n}\n\nexport interface ScanResults {\n devices: Array<MeshDevice>\n}\n\nexport interface IdentifyOptions extends TimeoutOptions {\n address: string;\n uuid: string;\n}\n\nexport interface IdentifyResults {\n numberOfElements: number;\n availableOOBTypes: Array<string>;\n algorithms: number;\n publicKeyType: number;\n staticOobTypes: number;\n outputOobSize: number;\n outputOobActions: number;\n inputOobSize: number;\n inputOobActions: number;\n}\n\nexport interface ProvisionOptions extends TimeoutOptions {\n address: string;\n uuid: string;\n}\n\nexport interface ProvisionResults {\n completed: boolean;\n uuid: string;\n unicastAddress?: number;\n}\n\nexport interface CompositionOptions extends TimeoutOptions {\n unicastAddress: number\n}\n\nexport interface CompositionResults {\n companyIdentifier: string;\n productIdentifier: string;\n productVersion: string;\n nodeFeaturesSupported: {\n relay: boolean;\n proxy: boolean;\n friend: boolean;\n lowPower: boolean;\n };\n elements: Array<{\n name: string;\n elementAddress: number;\n sigModelCount: number;\n vendorModelCount: number;\n location: number;\n models: Array<{\n modelId: number;\n modelName: string;\n boundAppKeyIndexes: Array<number>;\n }>;\n }>;\n}\n\nexport interface OnStateChangeEvent {\n action: 'enabled' | 'connected'\n state: boolean\n}\n\nexport interface OnNodeChangeEvent {\n action: 'del' | 'add' | 'heartbeat'\n unicastAddress: number\n}\n\nexport interface NrfMeshPlugin {\n checkPermissions(): Promise<Permissions>;\n requestPermissions(): Promise<Permissions>;\n isBluetoothEnabled(): Promise<BluetoothState>;\n\n isConnected(): Promise<ConnectionState>;\n connect(options?: TimeoutOptions): Promise<void>;\n disconnect(options?: TimeoutOptions): Promise<void>;\n\n export(): Promise<any>\n import(options: any): Promise<void>\n\n netkeys(): Promise<NetKeysResults>\n netkey(options: NetKeyOptions): Promise<NetKey>\n\n appkeys(options?: AppKeysOptions): Promise<AppKeysResults>\n appkey(options: AppKeyOptions): Promise<AppKey>\n\n groups(): Promise<GroupsResults>\n group(options: GroupOptions): Promise<MeshGroup>\n\n nodes(): Promise<NodesResults>\n node(options: NodeOptions): Promise<NodeResults>\n\n model(options: ModelOptions): Promise<ModelResults>\n\n init(): Promise<any>;\n kill(): Promise<void>\n devices(options?: ScanOptions): Promise<ScanResults>;\n identify(options: IdentifyOptions): Promise<IdentifyResults>;\n provision(options: ProvisionOptions): Promise<ProvisionResults>;\n composition(options: CompositionOptions): Promise<CompositionResults>;\n\n addListener(\n event: 'state',\n callback: (e: OnStateChangeEvent) => void,\n ): Promise<PluginListenerHandle>;\n addListener(\n event: 'node',\n callback: (e: OnNodeChangeEvent) => void,\n ): Promise<PluginListenerHandle>;\n}\n"]}
|