-
Notifications
You must be signed in to change notification settings - Fork 188
05 智能家庭模块
智能家庭 API
Export: public
Doc_name: 智能家庭模块
Doc_index: 5
Doc_directory: service
-
miot/service/smarthome
-
~ISmartHome
.getUserInfo(uid) ⇒[ 'Promise' ].<UserInfo>
.getUserInfoList(uids) ⇒[ 'Promise' ].<Array.<object>>
-
.reportGPSInfo(deviceID, gpsInfo) ⇒
[ 'Promise' ].<object>
-
.getWeatherInfo(deviceID) ⇒
[ 'Promise' ].<WeatherInfo>
-
.checkDeviceVersion(设备did, pid) ⇒
[ 'Promise' ].<DeviceVersion>
-
.getAvailableFirmwareForDids(deviceIDs) ⇒
[ 'Promise' ].<json>
.getLatestVersion(model) ⇒Promise
- .getLatestVersionV2(did)
- ._getFirmwareOriginalUpdateInfo(did)
- ._updateDevice(did, pid)
- .getAutoUpgradeConfig(did) ⇒
- ._getFirmwareReleaseVersionHistory(did)
- .getFirmwareUpdateInfo(did)
-
.reportLog(model, log) ⇒
void
- .reportRecords(deviceID, records)
.deviceSetExtraData(params) ⇒Promise
.getDevicesConfig(params) ⇒[ 'Promise' ].<json>
.delDevicesConfig(params) ⇒[ 'Promise' ].<json>
.getDeviceTimeZone(did)-
.getUserStatistics(params) ⇒
[ 'Promise' ].<Object>
-
.getVoiceCtrlDevices(deviceID) ⇒
Promise
-
.getAiServiceProxy(params) ⇒
Promise
.getDeviceSetting(params) ⇒Promise
-
.getDeviceSettingV2(params) ⇒
Promise
-
.setDeviceSetting(params) ⇒
Promise
-
.delDeviceSetting(params) ⇒
Promise
-
.setDeviceData(params) ⇒
Promise
-
.getDeviceData(params) ⇒
Promise
- .delDeviceData(params)
- .getUserDeviceLog(params)
-
.getUserColl(params) ⇒
Promise
-
.setUserColl(params) ⇒
Promise
-
.editUserColl(params) ⇒
Promise
-
.delUserColl(params) ⇒
Promise
-
.getMapfileUrl(params) ⇒
Promise
-
.getRobomapUrl(arams) ⇒
Promise
-
.delUsermap(params) ⇒
Promise
-
.getHomeDevice(params) ⇒
Promise
- .getAppConfig(params)
.getAppConfigV2(params)-
.getCountry(params) ⇒
Promise
-
.getBleLockBindInfo(params) ⇒
Promise
-
.batchGetDeviceDatas(params) ⇒
Promise
- .batchSetDeviceDatas(params)
- .setDeviceProp(params)
-
.getThirdConfig(params) ⇒
Promise
-
.thirdSyncCall(params) ⇒
[ 'Promise' ].<json>
-
.callThirdPartyAPI(params) ⇒
Promise
-
.getMiWatchConfig() ⇒
Promise
-
.getUserDeviceAuth(string}) ⇒
Promise
-
.getInterimFileUrl(params) ⇒
Promise
.getFileUrl(params) ⇒Promise
-
.getUserDeviceDataTab(params) ⇒
Promise
-
.rangeGetOpenConfig(params) ⇒
Promise
- .bindNFCCard(params)
-
.getNFCCard(params) ⇒
json
- .insertunmodel(params)
- .getIDFY(params)
- .editIDFY(params)
.getRangeOpenConfig(params)- .createMember(type, info)
- .updateMember(type, member_id, info)
- .deleteMember(type, member_id)
- .loadMembers(type)
- .setUserPDData(params)
- .getUserPDData(params)
- .getDeviceDataRaw(params)
- .createSeSession(params)
- .replaceSEISDkey(params)
- .resetLockPrimaryKey(params)
- .handleSEResponse(params)
- .reportBLEDeviceInfo(params)
- .reportEvent(eventName, params)
- .addStat(key, value, extra)
- .getMultiSwitchName(did)
-
.createGroupDevice(name, member_dids, member_tags) ⇒
[ 'Promise' ].<object>
-
.getVirtualGroupSubDevices(group_did) ⇒
[ 'Promise' ].<array>
-
.getVirtualGroupSubDevicesTags(group_did) ⇒
[ 'Promise' ].<array>
-
.setTempUnit() ⇒
[ 'Promise' ].<array>
-
.getTempUnit() ⇒
[ 'Promise' ].<array>
-
~MemberType :
object
-
~UserInfo :
Object
- ~GPSInfo
- ~WeatherInfo
- ~DeviceVersion
- ~OTAState
- ~MemberPet
- ~MemberPerson
-
~ISmartHome
Kind: inner class of miot/service/smarthome
Export:
-
~ISmartHome
.getUserInfo(uid) ⇒[ 'Promise' ].<UserInfo>
.getUserInfoList(uids) ⇒[ 'Promise' ].<Array.<object>>
-
.reportGPSInfo(deviceID, gpsInfo) ⇒
[ 'Promise' ].<object>
-
.getWeatherInfo(deviceID) ⇒
[ 'Promise' ].<WeatherInfo>
-
.checkDeviceVersion(设备did, pid) ⇒
[ 'Promise' ].<DeviceVersion>
-
.getAvailableFirmwareForDids(deviceIDs) ⇒
[ 'Promise' ].<json>
.getLatestVersion(model) ⇒Promise
- .getLatestVersionV2(did)
- ._getFirmwareOriginalUpdateInfo(did)
- ._updateDevice(did, pid)
- .getAutoUpgradeConfig(did) ⇒
- ._getFirmwareReleaseVersionHistory(did)
- .getFirmwareUpdateInfo(did)
-
.reportLog(model, log) ⇒
void
- .reportRecords(deviceID, records)
.deviceSetExtraData(params) ⇒Promise
.getDevicesConfig(params) ⇒[ 'Promise' ].<json>
.delDevicesConfig(params) ⇒[ 'Promise' ].<json>
.getDeviceTimeZone(did)-
.getUserStatistics(params) ⇒
[ 'Promise' ].<Object>
-
.getVoiceCtrlDevices(deviceID) ⇒
Promise
-
.getAiServiceProxy(params) ⇒
Promise
.getDeviceSetting(params) ⇒Promise
-
.getDeviceSettingV2(params) ⇒
Promise
-
.setDeviceSetting(params) ⇒
Promise
-
.delDeviceSetting(params) ⇒
Promise
-
.setDeviceData(params) ⇒
Promise
-
.getDeviceData(params) ⇒
Promise
- .delDeviceData(params)
- .getUserDeviceLog(params)
-
.getUserColl(params) ⇒
Promise
-
.setUserColl(params) ⇒
Promise
-
.editUserColl(params) ⇒
Promise
-
.delUserColl(params) ⇒
Promise
-
.getMapfileUrl(params) ⇒
Promise
-
.getRobomapUrl(arams) ⇒
Promise
-
.delUsermap(params) ⇒
Promise
-
.getHomeDevice(params) ⇒
Promise
- .getAppConfig(params)
.getAppConfigV2(params)-
.getCountry(params) ⇒
Promise
-
.getBleLockBindInfo(params) ⇒
Promise
-
.batchGetDeviceDatas(params) ⇒
Promise
- .batchSetDeviceDatas(params)
- .setDeviceProp(params)
-
.getThirdConfig(params) ⇒
Promise
-
.thirdSyncCall(params) ⇒
[ 'Promise' ].<json>
-
.callThirdPartyAPI(params) ⇒
Promise
-
.getMiWatchConfig() ⇒
Promise
-
.getUserDeviceAuth(string}) ⇒
Promise
-
.getInterimFileUrl(params) ⇒
Promise
.getFileUrl(params) ⇒Promise
-
.getUserDeviceDataTab(params) ⇒
Promise
-
.rangeGetOpenConfig(params) ⇒
Promise
- .bindNFCCard(params)
-
.getNFCCard(params) ⇒
json
- .insertunmodel(params)
- .getIDFY(params)
- .editIDFY(params)
.getRangeOpenConfig(params)- .createMember(type, info)
- .updateMember(type, member_id, info)
- .deleteMember(type, member_id)
- .loadMembers(type)
- .setUserPDData(params)
- .getUserPDData(params)
- .getDeviceDataRaw(params)
- .createSeSession(params)
- .replaceSEISDkey(params)
- .resetLockPrimaryKey(params)
- .handleSEResponse(params)
- .reportBLEDeviceInfo(params)
- .reportEvent(eventName, params)
- .addStat(key, value, extra)
- .getMultiSwitchName(did)
-
.createGroupDevice(name, member_dids, member_tags) ⇒
[ 'Promise' ].<object>
-
.getVirtualGroupSubDevices(group_did) ⇒
[ 'Promise' ].<array>
-
.getVirtualGroupSubDevicesTags(group_did) ⇒
[ 'Promise' ].<array>
-
.setTempUnit() ⇒
[ 'Promise' ].<array>
-
.getTempUnit() ⇒
[ 'Promise' ].<array>
Deprecated
获取用户的昵称和头像信息
Kind: instance method of ISmartHome
Returns: [ 'Promise' ].<UserInfo>
- 用户信息
Param | Type | Description |
---|---|---|
uid | * |
获取用户信息的uid或者手机号 |
Deprecated
通过UID批量获取用户信息
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
uids | [ 'Array' ].<string> |
uid数组,仅支持uid,不支持手机号查询 |
Example
Service.smarthome.getUserInfoList([uid1,uid2]).then(res => {
console.log('user info :', res.list)
})
上报gps信息 /location/set
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
deviceID | string |
设备ID |
gpsInfo | GPSInfo |
{lng,lat,countryCode,adminArea,locality,subLocality,thoroughfare,language} 依次为 {,,,,,,,} |
Example
//获取手机地理信息,iOS必须是真机且开启定位权限
Host.locale.getLocation().then(res => {
console.log('get location: ', res)
var {longitude,latitude} = res;
})
if (latitude && longitude) {
Service.smarthome.reportGPSInfo(Device.deviceID, {})
}
获取天气 /location/weather 该API 改为私有
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
deviceID | string |
设备ID |
获取指定设备的新版本信息 /home/checkversion
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
设备did | string |
|
pid | number |
设备类型,使用Device.type,即可 |
Example
Device.getDeviceWifi().checkVersion()
.then(res => console.log('success:', res))
.catch(err => console.log('failed:', err))
// 获取可用固件更新,传参为dids。 /home/multi_checkversion
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
deviceIDs | [ 'array' ].<string> |
设备ID |
Deprecated
获取服务器中最新的版本信息,内部调用米家代理接口/home/latest_version
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
model | string |
设备的 model |
获取服务器中蓝牙设备可用的固件更新版本信息 内部调用米家代理接口/v2/device/latest_ver
Kind: instance method of ISmartHome
Since: 10004
Param | Type | Description |
---|---|---|
did | string |
设备did |
调用Device.getWifiDevice()的检测固件是否有升级的api, 内部使用,暂时不对外公开
Kind: instance method of ISmartHome
Hide:
Since: 10043
Param | Type | Description |
---|---|---|
did | * |
设备did |
调用Device.getWifiDevice()的直接升级设备的api, 内部使用,暂时不对外公开
Kind: instance method of ISmartHome
Hide:
Since: 10043
Param | Type | Description |
---|---|---|
did | * |
设备did |
pid | * |
设备pid |
调用Device.getWifiDevice()的自动升级配置信息
Kind: instance method of ISmartHome
Returns: Promise
Since: 10043
Param | Type | Description |
---|---|---|
did | * |
设备did |
调用Device.getWifiDevice()的所有的发布的固件版本的信息 (release版本,不包含白名单) 接口文档 https://wiki.n.miui.com/pages/viewpage.action?pageId=415980350
Kind: instance method of ISmartHome
Hide:
Since: 10043
Param | Type | Description |
---|---|---|
did | * |
设备did |
调用Device.getWifiDevice()的检测固件是否有升级的api, 达到与相关行为一致的目的。
Kind: instance method of ISmartHome
Since: 10037
Param | Type | Description |
---|---|---|
did | * |
设备did |
添加一条日志打点。 开发者应该在拓展程序内合适时机调用该接口,打点信息会自动写入文件,按 Model 归类,即一个 Model 生成一个日志文件。 当用户反馈问题时,勾选 “同时上传日志”,则该 Model 的日志会跟随用户反馈上传, 开发者可在 IoT 平台查看用户反馈及下载对应日志文件。用户反馈查看入口:数据中心—用户反馈,如果看不到数据中心入口,联系自己所属企业管理员修改账号权限。 查看地址:https://iot.mi.com/fe-op/operationCenter/userFeedback
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
model | string |
要打 log 到哪个 model 下 |
log | string |
具体的 log 数据 |
Example
Service.smarthome.reportLog("a.b.c", "hello");
Service.smarthome.reportLog(Device.model, `[info]test value is :${v1},${v2},${v3}`)
Package.isDebug&&Service.smarthome.reportLog(...)
上报设备数据 /device/event 会更新状态+存到历史(相当于调用setDeviceData 接口)+触发自动化
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
deviceID | string |
设备ID |
records | [ 'array' ].<map> |
[{type,key,value}] 其中:type为'prop'或'event',key,value均为自定义string |
Example
Service.smarthome.reportRecords("deviceID", [{type:"prop",key:"b",value:"c"}])
Deprecated
/v2/device/set_extra_data 写extra_data 字段,必须为map[string] string格式
Kind: instance method of ISmartHome
Since: 10002
Param | Type | Description |
---|---|---|
params | json |
参数 {did, extra_data} |
Deprecated
通过前缀分批拉取设备的配置信息
- /v2/device/range_get_extra_data
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
{did:string,prefix:string,limit:int,offset:int} |
Deprecated
删除设备上传的信息 /v2/device/del_extra_data
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
{did:string, keys:[key1,key2]} |
Deprecated
获取设备时区
Kind: instance method of ISmartHome
Param | Type |
---|---|
did | string |
提供返回设备数据统计服务,使用该接口需要配置产品model以支持使用,建议找对接的产品人员进行操作。 图表📈统计接口 /v2/user/statistics 注:由于sds限额问题,可能会出现一次拉不到或者拉不完数据的情况,会返回code:0和message:“sds throttle”
Kind: instance method of ISmartHome
Returns: [ 'Promise' ].<Object>
- {
"code": 0,
"message": "ok",
"result": [
{
"value": "[12,34]", // 为一个数组形式json串
"time": 1543593600 // 时间戳
},
{
"value": "[10,11]",
"time": 1541001600
}]
}
Param | Type | Description |
---|---|---|
params | object |
|
params.did | string |
did |
params.data_type | string |
数据类型 包括: 采样统计 日统计:stat_day_v3 / 周统计:stat_week_v3 / 月统计:stat_month_v3; |
params.key | string |
需要统计的字段,即统计上报对应的key |
params.time_start | number |
开始时间 |
params.time_end | number |
结束时间 |
params.limit | number |
限制次数,0为默认条数 |
获取支持语音的设备 可以控制的设备列表。 /voicectrl/ai_devs
Kind: instance method of ISmartHome
Param | Description |
---|---|
deviceID | 语音设备的 did |
获取小爱接口数据,内部调用米家代理接口/v2/api/aivs
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
请求参数 {path:string,params:map,header:map,payload:map,env:int,req_method:string,req_header:map} |
params.path | string |
|
params.params | string |
|
params.params.did | string |
|
params.params.client_id | string |
|
params.header | string |
|
params.env | string |
|
params.req_method | string |
|
params.req_header | string |
Example
Service.smarthome.getAiServiceProxy({
path: "/api/aivs/xxx",
params: { did : "xx", client_id: "xx"},
header: { name : "xx"},
env: 1,
req_method: "POST",
req_header: {"Content-Type":"xx"}
}).then()
Deprecated
获取服务器中 device 对应的数据,内部调用米家代理接口 /device/getsetting
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | object |
请求参数 |
params.did | string |
did |
params.settings | [ 'Array' ].<string> |
指定设置的key数组 |
获取服务器中 device 对应的数据,内部调用米家代理接口 /v2/device/getsettingv2
Kind: instance method of ISmartHome
Since: 10010
Param | Type | Description |
---|---|---|
params | object |
|
params.did | string |
设备did |
params.last_id | string |
上一次请求返回的id,用于分页 |
params.prefix_filter | string |
filter |
params.settings | [ 'Array' ].<string> |
指定设置的key数组 |
设置服务器中 device 对应的数据,内部调用米家代理接口/device/setsetting
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | object |
请求参数 {did:string,settings:map<key,value>} |
params.did | string |
did |
params.settings | object |
指定设置的key数组,保存的内容不能超过1000个字符 |
删除服务器中 device 对应的数据,内部调用米家代理接口/device/delsetting
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
请求参数 |
params.did | string |
did |
params.settings | object |
指定要删除的key数组 |
添加设备属性和事件历史记录,/user/set_user_device_data 对于蓝牙设备,params.key 可参考文档 https://iot.mi.com/new/doc/embedded-development/ble/object-definition
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | object |
参数 |
params.did | string |
设备did, |
params.uid | string |
添加到哪个用户下,一般为 Device.ownerId, |
params.type | string |
属性为prop, 事件为event |
params.key | string |
要保存的数据K, 属性或事件名,(注意:如果设备是蓝牙设备,传入的是object id, 且为十进制数据;如果是wifi设备,才传入自定义属性或事件名,可以在开发者平台-产品-功能定义中查看) |
params.value | string |
要保存的数据V |
params.time | number |
触发时间戳, |
查询用户名下设备上报的属性和事件 获取设备属性和事件历史记录,订阅消息直接写入到服务器,不需要插件添加. 通下面的set_user_device_data的参数一一对应, /user/get_user_device_data 对于蓝牙设备,params.key 可参考文档 米家BLE Object定义
error code:
code | desc |
---|---|
0 | 成功 |
-8 | 请求参数缺失或者类型不对 |
-4 | 服务器错误 |
-1 | 请求uid无权限获取did的相关数据 |
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
参数{did,type,key,time_start,time_end,limit}含义如下: |
params.did | string |
设备id。 必选参数 |
params.key | string |
属性或事件名,必选参数。(注意:如果设备是蓝牙设备,传入的是object id, 且为十进制数据;如果是wifi设备,才传入自定义属性或事件名,可以在开发者平台-产品-功能定义中查看),如果是miot-spec设备,请传入(siid.piid或者siid.eiid) |
params.type | string |
必选参数[prop/event], 如果是查询上报的属性则type为prop,查询上报的事件则type为event, |
params.time_start | number |
数据起点,单位是秒。必选参数 |
params.time_end | number |
数据终点,单位是秒。必选参数,time_end必须大于time_start, |
params.group | string |
返回数据的方式,默认raw,可选值为hour、day、week、month。可选参数. |
params.limit | string |
返回数据的条数,默认20,最大1000。可选参数. |
params.uid | number |
要查询的用户id 。可选参数 |
删除用户的设备信息(prop和event 除外). 删除对应时间戳的上报的数据,无法删除type为prop和event,删除后可用get_user_device_data校验。 如果get_user_device_data校验返回的为[]表示删除成功。 user/del_user_device_data
Kind: instance method of ISmartHome
Since: 10004
Param | Type | Description |
---|---|---|
params | object |
{did:'', type: '', key:'',time:number} did:设备ID ;type: 要删除的类型 ;key: 事件名称. motion/alarm ;time:时间戳,单位秒 |
params.did | string |
设备id。 必选参数 |
params.type | string |
type 定义与SDS表中type一致。必选参数。可参考SDS文档中的示例:https://iot.mi.com/new/doc/cloud-service/storage/sds#del_user_device_data |
params.key | string |
key 事件名,可自定义,定义与SDS表中key一致。必选参数 |
params.time | string |
指定时间戳 |
params.value | string |
指定值 |
用于按照时间顺序拉取指定uid,did的发生的属性事件 /v2/user/get_user_device_log
Kind: instance method of ISmartHome
Since: 10004
Param | Type | Description |
---|---|---|
params | object |
参数 |
params.did | string |
|
params.limit | number |
目前最大为50 |
params.time_start | number |
开始时间 |
params.time_end | number |
结束时间 |
获取用户收藏 /user/get_user_coll
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | object |
参数 |
params.did | string |
did |
设置用户收藏 /user/get_user_coll
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | object |
参数 |
params.did | string |
did |
params.name | string |
name |
params.content | string |
content |
/user/edit_user_coll 编辑用户收藏
Kind: instance method of ISmartHome
Since: 10002
Param | Type | Description |
---|---|---|
params | json |
参数 {coll_id, newname, content} |
删除用户收藏 /user/get_user_coll
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | * |
参数 |
params.did | string |
did |
params.coll_id | string |
coll_id |
石头扫地机专用 添加设备属性和事件历史记录,/home/getmapfileurl
Kind: instance method of ISmartHome
Param | Type |
---|---|
params | json |
石头扫地机器人专用,获取fds存储文件url /home/getrobomapurl
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
arams | * |
{“obj_name”:”xxx/12345678/87654321/1.0”},obj_name格式为:fds存储文件夹/did/uid/obj_name |
石头扫地机器人专用,撤销隐私时删除扫地机地图 /user/del_user_map
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
{did} 设备ID |
添加设备属性和事件历史记录,/home/device_list (仅白名单设备才允许调用此方法,如需使用,请联系插件框架) 当ssid和bssid均不为空时,表示同时搜索这个局域网内所有未被绑定过的设备
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
{pid:string ,ssid:string ,bssid:string ,localDidList:array,checkMoreWifi:bool,dids:array} |
params.pid | string |
Device.type |
params.ssid | string |
wifi 的 ssid |
params.bssid | string |
wifi 的bssid |
params.dids | string |
要拉取列表的设备的didi,如果为空表示所有设备 |
params.localDidList | string |
本地设备did列表,补充ssid和bssid的本地查询条件,会与ssid查到的本地列表一起返回其中未被绑定的在线设备 |
params.checkMoreWifi | string |
检查2.4gwifi下的本地设备列表 |
params.getHuamiDevices | boolean |
获取华米设备,如华米手环 其中,pid:设备PID,ssid:wifi名称,bssid:wifi网关mac,locatDidList:本地设备did列表,补充ssid和bssid的本地查询条件,会与ssid查到的本地列表一起返回其中未被绑定的在线设备,checkMoreWifi:检查2.4gwifi下的本地设备列表,did:要拉取列表的设备的did,如果为空表示所有设备 |
获取AppConfig配置文件,1. 插件端有一些自己的信息需要配置,可使用此接口 2. 局限性:只有小米内部有权配置,之后可能会出对外版(目前只能找米家产品经理/工程师帮忙配置) 维护起来很不方便,不建议使用。 默认获取的是release版数据, 如果需要获取preview版数据, 可以在米家APP中 我的-->开发者设置-->其他设置的界面中 “AppConfig接口拉取preview版数据” 置为选中状态
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | object |
请求参数 |
params.name | string |
configName 配置的名字 |
params.lang | string |
lang 可选: zh_CN、zh_TW、en,zh-hant,一般请使用zh_CN和en |
params.result_level | string |
正常传"0",若传“1”,则会提供一个downloadurl,而不是直接返回content,以节省流量。取得downloadurl后,通过Host.file.downloadFile下载文件,然后使用 |
params.version | string |
version 后台配置的version,大概率为"1",如果不对,可以找米家工程师帮忙查询,查询地址:http://plato.io.mi.srv/#/appconfig/client |
Deprecated
用于获取插件所需的一些默认配置信息
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
{'name':'自定义值','lang':'自定义值','version':'自定义值','model':'modelId'} /service/getappconfigv2 |
获取设备所在网络的IP地址所属国家 /home/getcountry
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
{"did": "xx"} |
获取蓝牙锁绑定的时间,/device/blelockbindinfo
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
参数 |
params.did | string |
did |
获取设备的属性,属性设置会在设备被删除时清空 api call /device/batchdevicedatas 对于蓝牙设备,params.props 可参考文档 米家BLE Object定义
error code:
code | desc |
---|---|
0 | 成功 |
-7 | 没有找到注册的设备 |
-6 | 设备对应uid不为0 |
-4 | server err |
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
params | [ 'Array' ].<object> |
参数 |
params[].did | string |
did |
params[].props | [ 'Array' ].<string> |
props 列表,属性需要以"prop.s_"开头 e.g ["prop.s_aaa","prop.s_bbb"],如果设备是蓝牙设备,传入的是object id, 且为十进制数据,如prop.4100 |
Example
let params = {'did':Device.deviceID, 'props': [
"prop.s_push_switch"
]}
Service.smarthome.batchGetDeviceDatas([params]).then(...)
设置设备属性, 属性设置会在设备被删除时清空 备注: props最多20个,最多同时300个设备(目前max设备数),属性需要以prop.s_ 开头
error code: 0 - 成功 7 - 没有找到注册的设备 6 - 设备对应uid为0 4 - server err
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
params | [ 'Array' ].<object> |
{did: string, props: json} |
params[].did | string |
did |
params[].props | object |
props 键值对, 属性需要以"prop.s_"开头 |
Example
let params = {'did':Device.deviceID, 'props': {
"prop.s_push_switch_xxx":"0"
}}
Service.smarthome.batchSetDeviceDatas([params]).then(...)
设置设备属性,e.g 配置摄像头/门铃设备的属性 props最多20个, 属性需要以"prop.s_"开头。
error code: 0 - 成功 -7 - 没有找到注册的设备 -6 - 设备对应uid不为0 -4 - server err
Kind: instance method of ISmartHome
Since: 10004
Param | Type | Description |
---|---|---|
params | object |
参数 |
params.did | string |
did |
params.props | object |
props 键值对, 属性需要以"prop.s_"开头 |
Example
let params = {'did':Device.deviceID, 'props': {
"prop.s_notify_screen_dev_enable":"0", //0,关; 1,开
"prop.s_notify_screen_dev_did":"123456789" // 接收rpc的音响设备
}}
Service.smarthome.setDeviceProp(params).then(...)
从服务器获取配置文件,/device/getThirdConfig
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
参数 {"name":"config_version","version":1,"lang":"en","app_id":"XXX"} |
params.name | string |
configName |
params.model | string |
device model |
params.app_id | string |
app_id |
params.lang | string |
lang e.g: zh_CN |
params.result_level | string |
值为1,则不返回content来节省流量, 默认为0 |
params.version | string |
version |
/v2/third/synccall. 兼容三方厂商使用
Kind: instance method of ISmartHome
Returns: [ 'Promise' ].<json>
- {"code": 0, "policy": <POLICY_NUMBER">, ...}
Since: 10003
Param | Type | Description |
---|---|---|
params | json |
{"uid": , "did":, "api_name": , ...} |
异步调用第三方云接口 /third/api
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
参数 {"app_id":"123","dids":["1","2"],"params":json} |
华米watch配置使用 Android not support yet
Kind: instance method of ISmartHome
获取authCode来做鉴权
Kind: instance method of ISmartHome
Param | Description |
---|---|
string} | did 设备的 did |
获取InterimFileUrl 获取临时文件。
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
参数 {obj_name : '{ownerId}/{deviceId}/{index}'} |
Deprecated
获取文件下载地址
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
params | json |
参数 {obj_name : '2018/06/08/123456/xiaomi123_181030106.mp3'} |
日志分页拉取
Kind: instance method of ISmartHome
Since: 10001
Param | Type | Description |
---|---|---|
params | object |
参数 |
params.did | string |
|
params.key | string |
|
params.type | string |
|
params.timestamp | number |
|
params.limit | number |
/v2/home/range_get_open_config 通过appid、category、configid获取对应的配置,请参考文档文档:https://iot.mi.com/new/doc/cloud-service/storage/kv-openconfig
Kind: instance method of ISmartHome
Since: 10002
Param | Type | Description |
---|---|---|
params | json |
参数 {did,category,configids,offset,limit} |
门锁米家APP上传Cid,Did,Uid,返回处理结果。函数内部与金服APP建立http连接签名传输配置信息与NFC卡片信息 Service.smarthome.BindNFCCard(params)
Kind: instance method of ISmartHome
Since: 10003
Param | Type | Description |
---|---|---|
params | json |
{did:'', uid:'', cid:''} |
米家app查询NFC卡信息,使用did查询did下绑定的NFC卡列表信息
Kind: instance method of ISmartHome
Returns: json
- 卡片结果数组
Since: 10003
Param | Type | Description |
---|---|---|
params | json |
{did:''} |
Example
response:
ret={
"code":0,
"message":"ok",
"result":{
"list":[{
"did":"1234567",
"uid":123456789,//设备owner的用户id
"cid":"111122223333444455",
"name":"家",//用户设置的卡名称
"type":1, //卡片类型,1:手机NFC卡,2:实体卡
"status":1,//卡片状态,1:有效, 0: 无效
"issuer_id":"666666",
"time_stamp":1234567890,// 开卡时间
"extra":{
"deviceModel":"RedMi 4X",
"OS":"MIUI 9.5"
}
},
{
...
}]
}
}
/yaokan/insertunmodel
Kind: instance method of ISmartHome
Since: 10004
Param | Type | Description |
---|---|---|
params | json |
{device:int, id: int, brand: string, model: string} |
call api /scene/idfy_get
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
params | object |
json params |
params.indetify | string |
唯一标识符,场景的id,一般填did |
Example
let params = {identify:Device.deviceID}
Service.smarthome.getIDFY(params)
call api /scene/idfy_get
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
params | object |
json params |
Example
let params = {"identify":"554011","st_id":7,"setting":{"aqi_link":"0","exception_alert":"1","blue_sky_alert":"0"},"authed":["554011"]}
Service.smarthome.editIDFY(params)
Deprecated
call api /v2/home/range_get_open_config
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
params | json |
json params {did:string, category:string, configids:array, offset: int, limit:int}, did: 设备did。 category 配置类别, configids: 配置id 为空时返回所有配置,不超过20个,不为空时没有数量限制, offset 偏移;limit 数量,不超过20 |
创建 成员, 参考 MemberPerson 或者 MemberPet 的内容,按需填写。
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
type | MemberType |
成员类型 pet or person |
info | MemberPerson |
MemberPerson 或者 MemberPet |
更新成员信息
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
type | MemberType |
|
member_id | string |
|
info | MemberPerson |
MemberPerson 或者 MemberPet 只填写需要更新的项目 |
删除成员
Kind: instance method of ISmartHome
Since: 10005
Param | Type | Description |
---|---|---|
type | MemberType |
|
member_id | Array |
成员id列表 |
加载指定种类的成员列表
Kind: instance method of ISmartHome
Since: 10005
Param | Type |
---|---|
type | MemberType |
设置用户信息 call /user/setpdata, 其中的time为关键信息,在getpdata使用时将利用此值。
Kind: instance method of ISmartHome
Since: 10010
Param | Type | Description |
---|---|---|
params | object |
params |
params.time | long |
setpddata的时间戳 |
params.key | string |
key 字串 |
params.value | string |
value值 |
获取用户信息 call /user/getpdata 此接口的时间戳范围是反的,即:time_start > time_end ,否则获取不到。
Kind: instance method of ISmartHome
Since: 10010
Param | Type | Description |
---|---|---|
params | object |
params |
params.time_end | object |
筛选结果的时间戳 |
params.time_start | object |
筛选结果的时间戳 |
params.key | object |
获取的key |
App获取设备上报操作记录 request /v2/user/get_device_data_raw
Kind: instance method of ISmartHome
Since: 10011
Param | Type | Description |
---|---|---|
params | object |
参数 |
params.did | string |
设备did |
params.uid | string |
用户UID |
params.type | string |
查询事件;当查询属性时使用 'prop', 否则使用 'store'操作 |
params.key | string |
事件名称;当查询属性时value填具体属性,比如"aqi" |
params.time_start | string |
开始UTC时间 |
params.time_end | string |
结束UTC时间 |
params.limit | string |
最多返回结果数目,上限500。注意按需填写,返回数据越多查询越慢 |
透传米家APP与小米支付创建session request /v2/nfckey/create_se_session
Kind: instance method of ISmartHome
Since: 10011
Param | Type | Description |
---|---|---|
params | object |
params |
params.did | string |
did |
params.reqData | object |
// 透传给Mipay的数据 |
params.reqData.userId | string |
// 透传给Mipay的数据 |
params.reqData.cplc | string |
// 透传给Mipay的数据 |
params.reqData.deviceType | string |
// 透传给Mipay的数据 |
params.reqData.deviceId | string |
// 透传给Mipay的数据 |
params.reqData.timestamp | string |
// 透传给Mipay的数据 |
params.reqData.sign | string |
// 透传给Mipay的数据 |
透传替换ISD key request /v2/nfckey/replace_se_isdkey
Kind: instance method of ISmartHome
Since: 10011
Param | Type | Description |
---|---|---|
params | object |
params |
params.did | string |
did |
params.reqData | object |
// 透传给Mipay的数据 |
params.reqData.sessionId | string |
// 透传给Mipay的数据 |
params.reqData.partnerId | string |
// 透传给Mipay的数据 |
params.reqData.userId | string |
// 透传给Mipay的数据 |
params.reqData.cplc | string |
// 透传给Mipay的数据 |
params.reqData.timestamp | string |
// 透传给Mipay的数据 |
params.reqData.sign | string |
// 透传给Mipay的数据 |
透传锁主密钥重置 request /v2/nfckey/reset_lock_primarykey
Kind: instance method of ISmartHome
Since: 10011
Param | Type | Description |
---|---|---|
params | object |
params |
params.did | string |
did |
params.reqData | object |
// 透传给Mipay的数据 |
params.reqData.sessionId | string |
// 透传给Mipay的数据 |
params.reqData.partnerId | string |
// 透传给Mipay的数据 |
params.reqData.userId | string |
// 透传给Mipay的数据 |
params.reqData.cplc | string |
// 透传给Mipay的数据 |
params.reqData.timestamp | string |
// 透传给Mipay的数据 |
params.reqData.sign | string |
// 透传给Mipay的数据 |
处理芯片返回 request /v2/nfckey/handle_se_response
Kind: instance method of ISmartHome
Since: 10011
Param | Type | Description |
---|---|---|
params | object |
params |
params.did | string |
did |
params.reqData | object |
// 透传给Mipay的数据 |
params.reqData.sessionId | string |
// 透传给Mipay的数据 |
params.reqData.userId | string |
// 透传给Mipay的数据 |
params.reqData.cplc | string |
// 透传给Mipay的数据 |
params.reqData.seResps | [ 'Array' ].<object> |
// 这是一个数组透传给Mipay的数据 |
params.reqData.seResps[].data | string |
// 这是一个透传给Mipay的数据 |
params.reqData.seResps[].statusWord | string |
// 这是一个透传给Mipay的数据 |
params.reqData.timestamp | string |
// 透传给Mipay的数据 |
params.reqData.sign | string |
// 透传给Mipay的数据 |
Example
let param = {
"did":"1234567",
"reqData":{ // 透传给Mipay的数据
"sessionId":"999999999",
"userId":"12340000",
"cplc":"asdghjklmnbvd",
"seResps":[
{"data":"","statusWord":"9000"},
{"data":"","statusWord":"6A80"}
],
"timestamp":1234567890,
"sign":"shaddgkldsjlkeri"
}
}
上报蓝牙设备信息 call: /v2/device/bledevice_info 等效于: /v2/blemesh/dev_info
Kind: instance method of ISmartHome
Since: 10020
Param | Type | Description |
---|---|---|
params | object |
参数 |
prarms.did | string |
设备did |
prarms.fw_ver | string |
设备当前固件版本号 |
prarms.hw_ver | string |
设备的硬件平台 |
prarms.latitude | string |
纬度,number字符串 |
prarms.longitude | string |
经度,number字符串 |
prarms.iternetip | string |
app/网关IP地址 |
since 10036
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
eventName | string |
事件名 |
params | map |
kv键值对,key必须是string类型,value是基础类型(int,strig,float,boolean) |
Example
let eventName = 'testEvent';
let params = {'key1':'value1','key2':'value2','tip':'tips'};
Service.smarthome.reportEvent(eventName,params);
since 10053 打点上报接口,同原生插件的addRecord接口;如非必要,请使用reportEvent接口
Kind: instance method of ISmartHome
Param | Type | Description |
---|---|---|
key | string |
事件名 |
value | string |
上报的值 |
extra | json |
需要上报的额外内容 |
Example
let key = 'testEvent';
let value ="123";
let extra = {'key1':'value1','key2':'value2'};
Service.smarthome.addStat(key,value,extra);
获取多键开关名称 调用接口 /device/deviceinfo
Kind: instance method of ISmartHome
Since: 10039
Param | Type | Description |
---|---|---|
did | string |
设备id |
创建组设备,(窗帘组设备)
Kind: instance method of ISmartHome
Returns: [ 'Promise' ].<object>
- 成功时:返回
{
"group_did":"group.123456xxx",
"need_alter_device":false //与mesh组相关,窗帘组可以忽略
}
失败时:返回
{ "code":xxx,"message":"xxx" }
Since: 10046
Param | Type | Default | Description |
---|---|---|---|
name | string |
设备的名称,可选 | |
member_dids | array |
子设备的们id | |
member_tags | json |
|
since 10049,可选,tags内容客户端自定义,服务器只做存储不理解tags含义,一般用于记录子设备之间的关系 已知使用场景:保存窗帘组下的子设备的左右信息,例: tags={ "did1":"left", "did2":"right" } |
获取组成组设备的子设备们的did(窗帘组)
Kind: instance method of ISmartHome
Returns: [ 'Promise' ].<array>
- 成功时:返回
[
{
"did":"group.123456xxx",
"status":"1",
"membership":{ //key为子设备did
"1041565620":"1",
"1041565621":"1"
}
}
]
失败时:返回
{ "code":xxx, "message":"xxx" }
Since: 10046
Param | Type |
---|---|
group_did | string |
获取组设备下与子设备相关的tags 返回的是createGroupDevice 方法的第三个参数member_tags
Kind: instance method of ISmartHome
Since: 10049
成功时(以窗帘组的左右窗帘信息为例): 返回
[
{
"did":"group.123456xxx",
"member_tags":{ //key为子设备did
"did1":"left",
"did2":"right"
}
}
]
失败时:返回 { "code":xxx, "message":"xxx"}
Param | Type |
---|---|
group_did | string |
切换用户米家温度单位信息
Kind: instance method of ISmartHome
Returns: [ 'Promise' ].<array>
- 成功返回参数:
{"code":0, "message":"ok", "result":""}
失败返回参数:
{ "code":xxx, "message":"xxx"}
Since: 10055
请求参数:
{
"configInfos":[
{
"key":"xxx", //string 非空,属性key:1、米家温度单位:miot_temperature_style
"value":"c" //string,非空,属性value:1,当 key=miot_temperature_style 时,value取值:摄氏度:c,华氏度:f
}
]
}
获取用户米家温度单位信息
Kind: instance method of ISmartHome
Returns: [ 'Promise' ].<array>
- 成功返回参数:
"configInfos":[
{
"key":"xxx", //属性key
"value":"f" //属性value: 1、当key=miot_temperature_style时,value值:摄氏度:c,华氏度:f,未设置:空字符串
}
]
失败时:返回
{ "code":xxx, "message":"xxx"}
Since: 10055
请求参数:
{
"keys":["xxx"], //要查询的属性key数组,1、温度单位切换:miot_temperature_style
}
成员类型
Kind: inner namespace of miot/service/smarthome
-
~MemberType :
object
人
Kind: static constant of MemberType
宠物
Kind: static constant of MemberType
Kind: inner typedef of miot/service/smarthome
Properties
Name | Type | Description |
---|---|---|
uid | number |
user id; since 10010 |
nickName | string |
user nick name |
avatarURL | string |
user avatarURL |
Kind: inner typedef of miot/service/smarthome
Properties
Name | Description |
---|---|
lng | 经度 |
lat | 维度 |
adminArea | 省 |
countryCode | 国家代号(CN等) |
locality | 城市 |
thoroughfare | 街道 |
language | 语言代号(zh_CN等) |
subLocality | 区 |
Kind: inner typedef of miot/service/smarthome
Properties
Name | Description |
---|---|
city | 城市名称 |
city_id | 城市ID |
pub_time | 发布时间 |
aqi | 空气指数 |
pm25 | PM2.5 |
pm10 | PM1.0 |
so2 | 二氧化硫 |
no2 | 二氧化氮 |
src | 数据来源,eg:中国环境监测总站 |
设备固件版本信息
Kind: inner typedef of miot/service/smarthome
Properties
Name | Type | Description |
---|---|---|
isUpdating | boolean |
是否ota升级中 为true时,otaState才有效 |
isLatest | boolean |
是否是最新版本 |
isForce | boolean |
是否强制升级 |
hasNewFirmware | boolean |
是否有新固件 |
curVersion | string |
当前固件版本 |
newVersion | string |
新固件版本 |
description | string |
描述 |
otaState | OTAState |
设备OTA状态, since 10011 |
设备固件otaState
Kind: inner typedef of miot/service/smarthome
Since: 10011
Param | Type | Description |
---|---|---|
state | string |
ota 状态 |
startTime | number |
开始时间 |
progress | number |
进度 |
failedReason | string |
失败原因 |
failedCode | number |
失败code |
Kind: inner typedef of miot/service/smarthome
Properties
Name | Type | Description |
---|---|---|
id | string |
成员id(必填且不可为空) 标识用户下成员id,若设置小米id则为对应小米id |
name | string |
名称 成员昵称(必填且不可为空) 不得加入emoji及米家命名标准以外的特殊字符,长度定义为20中文或40个英文 |
sex | string |
性别 公:male 母:female 未选择:unknown |
birth | string |
生日 格式:xxxx-xx |
weight | double |
重量 |
species | string |
物种 |
variety | string |
品种 |
food_cate | string |
食品 |
active_rate | int |
活跃度 |
castrated | int |
阉割 定义:-1:否 0:未设定 1:是 |
special_mark | int |
特殊标志 |
Kind: inner typedef of miot/service/smarthome
Properties
Name | Type | Description |
---|---|---|
id | string |
成员id(必填且不可为空) 标识用户下成员id,若设置小米id则为对应小米id |
name | string |
姓名 成员昵称(必填且不可为空) 不得加入emoji及米家命名标准以外的特殊字符,长度定义为20中文或40个英文 |
sex | string |
性别 成员性别(必填且不可为空) 男性:male 女性:female 未选择:unknown |
birth | string |
生日 格式:xxxx-xx-xx |
height | double |
身高 |
weight | double |
体重 |
relation | string |
关系 与主账号关系 |
icon | string |
预留项,暂不支持设置 |
xiaomi_id | int |
小米uid |
region | string |
国家区域 |
special_mark | int |
特殊标志 |