如何在小桴智能管家上使用米家(miio协议)设备功能
-
主要是指米家APP连接设备的局域网访问功能,由于使用米家设备必须配置设备ID和TOKEN才能访问,本文主要讲述如何获取到这些信息。
获取方法也可以参考论坛上的其他文章。准备工作:
在开始之前,您需要准备一台已经越狱root的安卓手机,等于或者低于版本5.0.29米家APP(com.xiaomi.smarthome_5.0.29). SQLITE数据库查看工具http://sqlitebrowser.org/, adb命令工具。1. root安卓手机,安装前述版本米家App,登录您的米家账户,取得所有的设备列表。 2.将手机通过USB线接入到PC。通过adb devices命令查看是否连接成功。 3.执行adb root 切换到超级用户,pwd查看当前工作目录。 4.执行adb pull /data/data/com.xiaomi.smarthome/databases/miio2.db 5.启动SQLiteManager,在菜单“文件”->"打开数据库",选择刚刚下载的miio2.db 6.选择“浏览数据”标签页,在“表”下拉选择"devicereocrd" 7.如下图所示,记录每个设备的did和token数值。 进入smart home插件,在“设置米家设备访问token”照下面格式填入获取到的信息:
也可以使用下面方式获取token,更简单(安卓手机测试通过)
配置样本[mijia-0] #设备1 did = 50249335 token = 2d25da8d6fa549c84ab597728b209e97 [mijia-1] #设备1 did = 49488855 token = 2d25da8d6fa549c84ab597728b209e97 [mijia-2] #设备2 did = 93678105 token = d830ce6faf538bb3b610ef461fd97dca [mijia-3] #空调伴侣。 did = 113916294 token = d830ce6faf538bb3b610ef461fd97dca #空调伴侣有heatercooler/switch/thermostat三种模式, #默认是thermostat,如果填写heatercooler支持开关空调 #switch仅支持lumi.acpartner.v3设备,不产生上面两种设备,模拟成插座设备 param = heatercooler [mijia-4] #设备2 did = 88217014 token = d830ce6faf538bb3b610ef461fd97dca [switch0] enableAutoOff = yes onDuration = 2 on = JgBQAAABJ5UTEhMSExMSExUQExMSExM3EzgTEhMSEzgTOBITExITEhMTEhMTEhMTEjgTEhMTEhMTNxM4EzgSOBMSEzgTOBI4EwAFqwABJ0oTAA0FAAAAAAAAAAA= off = JgBQAAABJ5UTEhMSExMSExUQExMSExM3EzgTEhMSEzgTOBITExITEhMTEhMTEhMTEjgTEhMTEhMTNxM4EzgSOBMSEzgTOBI4EwAFqwABJ0oTAA0FAAAAAAAAAAA= [switch1] type = light host = 07:69:c7:34:ea:34 enableAutoOff = yes onDuration = 2 on = JgBQAAABJ5UTEhMSExMSExUQExMSExM3EzgTEhMSEzgTOBITExITEhMTEhMTEhMTEjgTEhMTEhMTNxM4EzgSOBMSEzgTOBI4EwAFqwABJ0oTAA0FAAAAAAAAAAA= off = JgBQAAABJ5UTEhMSExMSExUQExMSExM3EzgTEhMSEzgTOBITExITEhMTEhMTEhMTEjgTEhMTEhMTNxM4EzgSOBMSEzgTOBI4EwAFqwABJ0oTAA0FAAAAAAAAAAA=
注解:
每行以"did token<换行>"格式书写, did 为数字类型,token固定是32字节,否则非法。did和token之间必须保留一个空格。
允许在配置的首字节开头#做行备注信息。
iron/iroff 为小米空调伴侣红外开关发射码,可以通过红外学习获取到这个数据内容。我如何知道token配置是否已经生效呢
通过上图所示的步骤,打开日志。搜索如下内容的日志:
-- did[57635813], token: '9e6725cdf36761d3ca74e6d964b063b7'
这个是从WEB读到的配置,如果配置正确,会发现搜索到小米的设备:
MIIO Device ID : 57635813, token : 00000000000000000000000000000000
关键来了,如果能搜索到下面内容的日志,说明已经成功的找到了米家设备:
miio_mulcast_recv() First: {"result":XXXXXXXXXXXXX*
打开iPhone家庭APP,会发现响应的设备节点已经在里面展示出来了!
我搜索到了上面找到设备的日志,但是iPhone没有自动产生相关设备节点
有部分的米家设备可能暂时不支持或者未经测试,请将miio的相关日志复制,并贴到这里,我们会尽快更新版本。屏蔽单个MIIO设备
可能有的MIIO设备响应不好,所以我们需要屏蔽它,以避免影响体验,
屏蔽插件只需要在所在did的token写32个f,比如我们要屏蔽did为12345678的设备,则可以写入下配置:[mijia-0] #屏蔽12345678 did = 12345678 token = ffffffffffffffffffffffffffffffff
-
-
com.xiaomi.smarthome_5.0.29
米家com.xiaomi.smarthome_5.0.29下载地址:
链接:https://pan.baidu.com/s/11-gWRc7Wea1S7tHSsjoplQ 密码:hy8o
-
意思就是小米所有的miio都可以通过这个插件被接入HomeKit,而不是小米网关而已,是这个意思不?
-
小米的踢脚线取暖器1s,按说明配置还是不能显示,感觉是需要适配下
英文名称:Mi Smart Baseboard Heater 1S
log信息供参考:
com.wifi-town.homekit[5912]: miio_mulcast_recv() First: {"id":2,"result":{"life":658409,"uid":172508122,"model":"leshow.heater.bs1s","token":"9998c8bc97e5f3a95e03d003abc34720","ipflag":1,"fw_ver":"2.1.3","mcu_fw_ver":"3008","miio_ver":"0.0.9","hw_ver":"esp32","mmfree":62312,"mac":"54:48:E6:B8:F0:6E","wifi_fw_ver":"cef6c0945","ap":{"ssid":"sxxxxx","bssid":"B4:AB:E4:94:71:11","rssi":-67,"primary":11},"netif":{"localIp":"192.16.2.8","mask":"255.255.255.0","gw":"192.16.2.1"}},"exe_time":50}