Interface: IBluetoothLock

miot/Bluetooth.IBluetoothLock

蓝牙锁相关

Methods

decryptMessage(encrypted) → {Promise.<string>}

支持小米加密芯片的蓝牙设备,使用此方法将密文解密为明文

Parameters:
Name Type Description
encrypted string

密文

Returns:
Type
Promise.<string>
Example
import {Bluetooth} from 'miot'
...
Bluetooth.createBluetoothLE(...).securityLock.encryptMessage('decryptedMessage')
 .then(msg => {console.log('decrypt message is ', msg)})
 .catch(err => {console.log('decrypt message failed, ', err})
...

decryptMessageWithToken(data)

使用设备的token解密指定数据

Parameters:
Name Type Description
data strng

Hex Data String

Since:
  • 10004

encryptMessage(message) → {Promise.<string>}

支持小米加密芯片的蓝牙设备,使用此方法将明文加密为密文后,可发送给设备

Parameters:
Name Type Description
message string

明文

Returns:
Type
Promise.<string>
Example
import {Bluetooth} from 'miot'
...
Bluetooth.createBluetoothLE(...).securityLock.encryptMessage('message')
 .then(msg => {console.log('encrypted message is ', msg)})
 .catch(err => {console.log('encrypted message failed, ', err})
...

encryptMessageWithToken(data)

使用设备的token加密指定数据

Parameters:
Name Type Description
data string

Hex Data String

Since:
  • 10004

getOneTimePassword(interval, digits) → {Promise.<Array.<int>>}

支持小米加密芯片的蓝牙设备,获取一次性密码组 假设输入 interval 为 30,则会从当日 0 点开始计算,每 30 分钟为一个刷新间隔。生成的密码在当前刷新间隔及下一个刷新间隔内有效。 如当日 10:19 生成,则该组密码在 10:00 ~ 10:30(当前刷新间隔) 以及 10:30 ~ 11:00 (下一个刷新间隔) 有效。 密码组中每条密码使用一次即过期。 注意设备上获取当前时间(UTC,精度为秒)的准确性由设备保证,否则会有计算误差。

Parameters:
Name Type Description
interval int

时间间隔,单位为分钟,类型为 number,传入 10 到 60 的整数

digits int

密码位数,类型为 number,传入 6 到 8 的整数

Returns:
Type
Promise.<Array.<int>>
Example
import {Bluetooth} from 'miot'
...
Bluetooth.createBluetoothLE(...).securityLock.getOneTimePassword(30,6)
 .then(pwd => {console.log('one time password is ', pwd)})
 .catch(err => {console.log('get one time password failed, ', err})
...

isShareKeyValid() → {Promise.<IBluetoothLock>}

支持小米加密芯片的蓝牙设备,在被分享的设备中,调用此方法,可判断分享的电子钥匙是否有效

Returns:
Type
Promise.<IBluetoothLock>
Example
import {Bluetooth} from 'miot'
...
Bluetooth.createBluetoothLE(...).securityLock.isShareKeyValid()
 .then(lock => {console.log('ShareKey is valid')})
 .catch(err => {console.log('ShareKey isn't valid'})
...

toggle(cmd, timeout) → {Promise.<IBluetoothLock>}

支持小米加密芯片的蓝牙设备,开关蓝牙锁

Parameters:
Name Type Description
cmd int

操作命令可传入 0 ,1 ,2三个 int 值,分别代表 开锁,上锁,反锁

timeout int

毫秒 蓝牙未响应的超时时间

Returns:
Type
Promise.<IBluetoothLock>
Example
import {Bluetooth} from 'miot'
...
Bluetooth.createBluetoothLE(...).connect(...).then(device => {
 device.securityLock.toggle(0,5000)
     .then(lock => {console.log('toggle success')})
     .catch(err => {console.log('toggle failed'})
})
...