Interface: IDevice

miot/Device~IDevice

设备信息的实例 仅适用于当前插件适配的设备

Example

import 'Device' from 'miot'
...
let did = Device.deviceID
let model = Device.model
...

Members

(readonly) BSSID :string

获取连接 wifi 的mac 地址

(readonly) deviceID :string

获取设备 id,每一个真实设备都有一个唯一的 id

(readonly) extra :string

除了基本信息的其他数据都在这个字段返回,如:{"fw_version":"1.4.0","mcu_version":"0001"} 可以解析为 json

(readonly) iconURL :string

开发者平台配置的设备图标 一个图片的下载地址

(readonly) IP :string

获取设备的 ip

(readonly) isBinded :boolean

是否是已经绑定的设备

Since:
  • 10005

(readonly) isFamily :boolean

是否是自己家庭的设备,如果是家属分享给你的设备,isFamily则为true,注意此时isShared为false(iOS暂不支持分享给家属)

(readonly) isOnline :boolean

设备是否在线 true 在线

(readonly) isOwner :boolean

是否是自己的设备,若是别人(包含家属)分享给你的设备,isOwner则为false

(readonly) isReadonlyShared :boolean

是否是别人分享的只读设备

(readonly) isReady :boolean

设备是否已经可用

(readonly) isRootDevice :boolean

是否是根设备,从首页点击设备进入插件,此设备即为根设备。

(readonly) isSetPinCode :boolean

是否设置了进入插件使用密码

(readonly) isShared :boolean

是否是别人分享的设备,若是家属分享给你的设备,isShared为fasle,isFamily为true

(readonly) isVirtualDevice :boolean

是否虚拟设备

(readonly) isVoiceDevice

是否支持语音控制

(readonly) lastModified :long

获取上次修改时间戳, 例如1532587811237

(readonly) lastVersion :string

获取当前wifi设备固件的版本

(readonly) latitude :double

纬度

(readonly) location :int

本地设备还是远程设备, 0未知 1本地 2远程

(readonly) longitude :double

经度

(readonly) mac :string

获取设备的 mac 地址

(readonly) model :string

获取设备的 model,设备类型的唯一标识

(readonly) name :string

开发者平台配置的设备的中文名

needUpgrade :boolean

是否有固件更新,为了显示小红点

needUpgrade :boolean

是否有固件更新,为了显示小红点

(readonly) owner :IAccount

设备所有者的小米账号, 可以使用 load 获取 account 下的所有数据。 不调用 load 只有 ID,nickName 字段有值。 注:Service.account 不load时只有ID可用,与此处不一样。

See:

(readonly) parentDevice :IDevice

如果有父设备,直接获取 父设备 Device,一般是网关子设备才会有父设备

(readonly) parentModel :string

父设备的 model,10023及其之后返回空字符串

Deprecated:
  • 10023开始废弃,10023及后续版本建议使用 Device.parentDevice.model

(readonly) permitLevel :int

当前账户对设备的控制权限,主要用于分享的设备 4:普通分享 36:只读分享

(readonly) propInfo :json

获取 prop中保存的信息

(readonly) resetFlag :int

重置标志,本地设备才会返回该字段,为1时表示设备刚刚reset过

Deprecated:
  • 10023开始废弃,后续不再提供此字段,此方法永远返回0

(readonly) RSSI :string

获取 wifi 信号强度

(readonly) session :string

设备的 token 加密后生成的固定值,在设备快连入网时生成,能唯一标识设备的生命周期,直至被重置、重新快连入网。注意该 Session 并非设备与服务器交互时认证所用 Token,只能用于标识作用

(readonly) showMode :int

是否在设备列表显示 0 -- 不显示

(readonly) SSID :string

获取连接 wifi 的名称

timeZone :string

获取设备时区,非实时加载,可能为空.如果需要自行获取最新设备时区值,请使用smarthome.getDeviceTimeZone(did)

Deprecated:
  • 10021开始废弃,10021及后续版本建议使用 Device.getDeviceTimeZone().then

(readonly) type :int

获取设备类型,0:wifi单模设备,1:yunyi设备,2:云接入设备,3:zigbee设备,5:虚拟设备,6:蓝牙单模设备,7:本地AP设备,8:蓝牙wifi双模设备,9:其他,10:功能插件,11:SIM卡设备,12:网线设备,13:NB-IoT,14:第三方云接入,15:红外遥控器,16:BLE Mesh,17:虚拟设备(新设备组)

Methods

bindToHomeKit() → {Promise}

将当前设备绑定到HomeKit中

Since:
  • 10021
Returns:

成功进入then,失败进入catch

Type
Promise

changeDeviceName(newName, did) → {Promise}

修改设备/子设备的名字,注意不支持蓝牙网关对子设备名称的修改

Parameters:
Name Type Default Description
newName String

设备的新的名称

did String null

如果修改自身的名称,可不传,如果修改子设备的,则需要传子设备的did。如果did是其他,调用此方法会走reject

Since:
  • 10022
Returns:

成功进入then,失败进入catch,成功时,res为新名称。同时,DeviceEvent的deviceNameChanged会被触发

Type
Promise

checkFirmwareUpdateAndAlert() → {Promise}

检查设备固件升级弹窗。该方法会触发升级弹窗alert提示。 建议使用场景为需要屏蔽默认的插件启动检测的弹窗,自行寻找合适的时机触发该检测机制。 不支持单模蓝牙、组设备、虚拟设备、离线设备、分享设备。

Returns:
Type
Promise
Example
//首先屏蔽默认弹窗
Package.disableAutoCheckUpgrade = true;
//....
//在合适的时间触发
Device.checkFirmwareUpdateAndAlert().then(res => { }).catch(err => { })

checkHomeKitConnected() → {Promise.<boolean>}

检查当前设备是否接入了HomeKit

Since:
  • 10021
Returns:

是否接入

Type
Promise.<boolean>

checkIsHomeKitDevice() → {Promise.<boolean>}

检查当前设备是否支持HomeKit

Since:
  • 10021
Returns:

是否支持

Type
Promise.<boolean>

createScene(同上loadScenes的sceneType, opt) → {IScene}

创建场景

Parameters:
Name Type Description
同上loadScenes的sceneType SceneType
opt json

同上loadScenes的opt,此处传入opt,后续获取场景时,可根据此opt来筛选

See:
Returns:
Type
IScene

createTimerScene(opt) → {IScene}

创建定时场景

Parameters:
Name Type Default Description
opt json null

同上loadScenes的opt,此处传入opt,后续获取场景时,可根据此opt来筛选

See:
Returns:
Type
IScene

deleteDevices(didAndPids)

批量删除设备, 不能删除 小米路由器/本地蓝牙/局域网直连设备

Parameters:
Name Type Description
didAndPids Array.<object>

did 与 pid(Device.type) 列表 [{did:xx,pid:xx}, {did:xx,pid:xx}]

Since:
  • 10011

getBluetoothLE(peripheralID) → {IBluetoothLE}

获取小米BLE蓝牙控制类, 注意: 在 iOS 平台上, 如果没有指定peripheralID, 则须先执行Bluetooth.scan(), 扫描到与device.mac匹配的蓝牙设备之后才能 connect 成功, 否则将不能成功执行后来的所有操作.

Parameters:
Name Type Default Description
peripheralID string null
  • iOS平台上可以直接指定与设备 mac 匹配的peripheralID, android 平台不需要此参数
See:
Returns:
Type
IBluetoothLE
Example
const peripheralUUID4IOS = ...;

Device.getBluetoothLE(peripheralUUID4IOS).connect()
.then(ble=>{
     ble....
})
.catch(error=>{

})

getCurrentDeviceValue() → {Promise}

获取当前设备的设备信息

Since:
  • 10024
Returns:

成功进入then,失败进入catch

Type
Promise

getDeviceTimeZone() → {Promise}

获取当前设备的时区信息

Since:
  • 10021
Returns:

成功进入then,失败进入catch

Type
Promise

getDeviceWifi() → {IDeviceWifi}

获得设备 wifi 操作对象

Returns:
Type
IDeviceWifi

getLinkedBTDevices(didopt) → {Promise}

获取蓝牙网关关联的普通蓝牙和蓝牙mesh设备列表。

Parameters:
Name Type Attributes Default Description
did string <optional>
Device.deviceID

蓝牙网关的did,可以为空,为空时默认取当前Device.deviceID

Since:
  • 10020
Returns:

返回数组设备信息的promise, {"mesh":[], "normal":""}

Type
Promise

getRecommendScenes(model, did) → {Promise}

获取设备定向推荐信息,展示推荐入口使用。注意:SDK_10024及其之后才可使用

Parameters:
Name Type Description
model String
did String
Since:
  • 10024
Returns:
Type
Promise

getSubDevices() → {Promise.<Array.<IDevice>>}

获取子设备列表,一般网关才会有子设备

Since:
  • 10004
Returns:
Type
Promise.<Array.<IDevice>>
Example
import 'Device' from 'miot'
Device.getSubDevices()
.then(devices => {//get device list})

getVirtualDevices() → {Promise.<Array.<IDevice>>}

获取虚拟设备 /home/virtualdevicectr

Returns:
Type
Promise.<Array.<IDevice>>

loadRealDeviceConfig(model) → {DeviceConfig}

获取某个model设备的默认配置,例如iconurl,名称等等

Parameters:
Name Type Description
model string

指定设备的model

Since:
  • 10010
Returns:

设备配置

Type
DeviceConfig

loadScenes(sceneType, opt) → {Promise.<Array.<IScene>>}

加载本设备相关的场景

Parameters:
Name Type Default Description
sceneType *

SceneType.Timer(定时场景),SceneType.Artificial(人工场景),SceneType.Automatic(自动场景)

opt * null

{identify,name} identify:代表场景的分类,创建场景时可自定义此参数;如果获取场景的时候传入identify,表示获取identify类场景列表;如果不需要对场景分类,此参数可忽略。name:场景名字

See:
Returns:
Type
Promise.<Array.<IScene>>

loadTimerScenes(opt) → {Promise.<Array.<IScene>>}

加载定时场景

Parameters:
Name Type Default Description
opt json null

同上loadScenes的opt

See:
Returns:
Type
Promise.<Array.<IScene>>

readDeviceNetWorkInfo(did) → {Promise.<Array.<IDevice>>}

实时获取设备的网络信息包括网络强度

Parameters:
Name Type Description
did String

设备id

Returns:
Type
Promise.<Array.<IDevice>>

reportDeviceGPSInfo() → {Promise}

将当前手机的定位信息作为新的设备位置进行上报,该操作会更新设备的地理位置信息。

Since:
  • 10020
Returns:
Type
Promise

reportLog(log)

上报日志,写入文件,在用户反馈时可以查看

Parameters:
Name Type Description
log string

requestAuthorizedDeviceListData(model)

获取当前设备列表中的指定model的设备列表

Parameters:
Name Type Description
model string

设备model

Since:
  • 10003