如何在小桴智能管家上使用米家(miio协议)设备功能


  • administrators

    主要是指米家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”照下面格式填入获取到的信息:
    

    0_1530930651192_微信图片_20180707102806.png
    0_1530930663181_微信图片_20180707102758.png

    也可以使用下面方式获取token,更简单(安卓手机测试通过)
    0_1551619168614_ok1.png
    配置样本

    [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配置是否已经生效呢
    0_1533273760015_log.jpg

    通过上图所示的步骤,打开日志。搜索如下内容的日志:

    -- 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

  • administrators


  • administrators

    com.xiaomi.smarthome_5.0.29

    米家com.xiaomi.smarthome_5.0.29下载地址:
    链接:https://pan.baidu.com/s/11-gWRc7Wea1S7tHSsjoplQ 密码:hy8o

    源地址【可能被墙】
    https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-29-release/mihome-5-0-29-android-apk-download/



  • 意思就是小米所有的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}