设备信息的实例 仅适用于当前插件适配的设备
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
changeDeviceName(newName, did) → {Promise}
修改设备/子设备的名字,注意不支持蓝牙网关对子设备名称的修改
Parameters:
Name | Type | Default | Description |
---|---|---|---|
newName |
String | 设备的新的名称 |
|
did |
String | null | 如果修改自身的名称,可不传,如果修改子设备的,则需要传子设备的did。如果did是其他,调用此方法会走reject |
- Since:
- 10022
checkFirmwareUpdateAndAlert() → {Promise}
检查设备固件升级弹窗。该方法会触发升级弹窗alert提示。 建议使用场景为需要屏蔽默认的插件启动检测的弹窗,自行寻找合适的时机触发该检测机制。 不支持单模蓝牙、组设备、虚拟设备、离线设备、分享设备。
Example
//首先屏蔽默认弹窗
Package.disableAutoCheckUpgrade = true;
//....
//在合适的时间触发
Device.checkFirmwareUpdateAndAlert().then(res => { }).catch(err => { })
checkHomeKitConnected() → {Promise.<boolean>}
检查当前设备是否接入了HomeKit
- Since:
- 10021
checkIsHomeKitDevice() → {Promise.<boolean>}
检查当前设备是否支持HomeKit
- Since:
- 10021
createScene(同上loadScenes的sceneType, opt) → {IScene}
创建场景
Parameters:
Name | Type | Description |
---|---|---|
同上loadScenes的sceneType |
SceneType | |
opt |
json | 同上loadScenes的opt,此处传入opt,后续获取场景时,可根据此opt来筛选 |
createTimerScene(opt) → {IScene}
创建定时场景
Parameters:
Name | Type | Default | Description |
---|---|---|---|
opt |
json | null | 同上loadScenes的opt,此处传入opt,后续获取场景时,可根据此opt来筛选 |
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 |
|
Example
const peripheralUUID4IOS = ...;
Device.getBluetoothLE(peripheralUUID4IOS).connect()
.then(ble=>{
ble....
})
.catch(error=>{
})
getCurrentDeviceValue() → {Promise}
获取当前设备的设备信息
- Since:
- 10024
getDeviceTimeZone() → {Promise}
获取当前设备的时区信息
- Since:
- 10021
getDeviceWifi() → {IDeviceWifi}
获得设备 wifi 操作对象
getLinkedBTDevices(didopt) → {Promise}
获取蓝牙网关关联的普通蓝牙和蓝牙mesh设备列表。
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
did |
string |
<optional> |
Device.deviceID | 蓝牙网关的did,可以为空,为空时默认取当前Device.deviceID |
- Since:
- 10020
getRecommendScenes(model, did) → {Promise}
获取设备定向推荐信息,展示推荐入口使用。注意:SDK_10024及其之后才可使用
Parameters:
Name | Type | Description |
---|---|---|
model |
String | |
did |
String |
- Since:
- 10024
getSubDevices() → {Promise.<Array.<IDevice>>}
获取子设备列表,一般网关才会有子设备
- Since:
- 10004
Example
import 'Device' from 'miot'
Device.getSubDevices()
.then(devices => {//get device list})
getVirtualDevices() → {Promise.<Array.<IDevice>>}
获取虚拟设备 /home/virtualdevicectr
loadRealDeviceConfig(model) → {DeviceConfig}
获取某个model设备的默认配置,例如iconurl,名称等等
Parameters:
Name | Type | Description |
---|---|---|
model |
string | 指定设备的model |
- Since:
- 10010
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:场景名字 |
loadTimerScenes(opt) → {Promise.<Array.<IScene>>}
加载定时场景
Parameters:
Name | Type | Default | Description |
---|---|---|---|
opt |
json | null | 同上loadScenes的opt |
readDeviceNetWorkInfo(did) → {Promise.<Array.<IDevice>>}
实时获取设备的网络信息包括网络强度
Parameters:
Name | Type | Description |
---|---|---|
did |
String | 设备id |
reportDeviceGPSInfo() → {Promise}
将当前手机的定位信息作为新的设备位置进行上报,该操作会更新设备的地理位置信息。
- Since:
- 10020
reportLog(log)
上报日志,写入文件,在用户反馈时可以查看
Parameters:
Name | Type | Description |
---|---|---|
log |
string |
requestAuthorizedDeviceListData(model)
获取当前设备列表中的指定model的设备列表
Parameters:
Name | Type | Description |
---|---|---|
model |
string | 设备model |
- Since:
- 10003