比较方便获得小米智能设备token的方法

如果需要将小米智能设备接入homeassistant时,在configuration.yaml中要配置host和token,其中token是通讯密钥,被隐藏在系统文件中,无法在app中直接读取。如何取得token网上有很多方法,这里介绍两种较简便的方法。

1、利用老版本的APP登录,并导出登录日志,其中是明文的各种ID信息

1.1 安装安卓模拟器,夜神试验过没有问题,mumu不知道。

1.2 运行模拟器,导入Mi Home 5.4.54APP

1.3 运行米家 app 并用帐号密码登录

这是老版本的软件,仅支持4位的手机短信,新的小米登录短信都是6位,所以直接用手机短信登录不了。

1.4 退出APP ,打开模拟器的文件管理器,从以下目录找到登录日志。

里面唯一一个txt文件就是登录日志,将其导出到操作系统下就可以直接使用了.

这个文件中的信息包括了用户ID、MAC地址、host和token,很全面。

2、利用仓库HACS中集成工具获取

2.1 进入仓库的集成中,并搜索xiaomi,安装Xiaomi Gateway 3

2.2 在配置-集成中的Xiaomi Gateway 3的选项中选添加

选择mi_cloud,输入帐号密码

2.3 再在选项中选设备,可以查到IP、MAC和token等信息。

HomeAssistant连接HomKit

Homeassistant是一个通用的智能家居平台,通过它能接入不同平台的智能设备,但接入之后如何方便地使用还是有不同的途径。苹果手机中有自己的智能家居应用HomeKit,如果能将homeassistant中的智能设备连接Homekit,则苹果用户就可以自己的手机操作了。如何接入苹果的homekit应用,网络上已经有很多文章,特别是前几年HomeAssistant中没有集成桥接插件,需要自己安装第三方插件,非常麻烦,而且很容易出错,但现在系统已经内置了HomeKit集成插件,可以很方便地将HomeAssistant中的智能设备连接到HomeKit中。

1、将智能设备接入HomeAssistant中,不同设备差异很大,按实际情况操作。

2、安装HomeKit集成插件,它将作为一个软件的桥接器把智能设备的协议在局域网内转换成HomeKit规范,这样iphone手机或平台设备在局域网内就可以直接连接控制智能设备了。

2.1 登录 HomeAssistant 进入配置,选集成

2.2 选添加集成,下翻找到HomeKit,注意不是HomeKit控制器

2.3 将想接入入的类型全部选中,点提交

3 回到HomeAssistant首页,选择通知,系统将展示二维码,这个就是接入HomeKit的凭证

4、iphone进入家庭APP,点添加配件,扫描上图的二维码,所有的智能设备将接入手机中。

几个说明:

1、通过内置的HomeKit桥接入iPhone中的智能设备只在局域网内可用,离开局域网后将显示无法连接。主要的原理是,在局域网时手机可以直接连接HomeKit软桥,离开局域网环境后手机需要连接苹果公司的服务器,通过苹果公司的服务器再接入家庭智能设备,因此,想在公网环境中连接家中的智能设备,需要在家里设置一台中心枢纽,按苹果公司的要求可以是一台AppleTV或Homepad或iPad。

2、当通过内置的HomeKit桥接入iPhone后,可以邀请家庭成员,但是只能邀请一人,当邀请第二个人时,以上设置HomeKit集成将变得不可用。

3、内置的HomeKit桥可以反复删除添加,不影响手机的使用。当手机中的智能设备在内网不可连接时,可以在HomeAssitant删除HomeKit集成,然后再按照以上步骤重新接入智能设备。

OpenWrt几个插件的使用

OpenWrt是一个开源的软路由,许多人在其之上做了二次开发,添加了很多不错的功能,我试用了几个,写几点体会,这些插件要求事先编译进去或单独安装。

1、利用Aria2挂机下载

OpenWrt中有好几个文件下载插件,qb插件没有使用过不好评价,transmission插件在处理种子文件和连接方面感觉性能不是太稳定,综合速度也不好,时有时无。使用Aria2的体验是比较好,不但支持的下载形式多,而且稳定高效,资源要求也不高。

1.1 做好外部存储的挂载

由于openwrt的主要功能是路由,本身配置的存储都比较小,如果用于下载文件,最好是把下载文件保存在其它外部的大容量磁盘上,这样就有一个在使用Aria2之前先挂载好外部存储的问题。

a 启用SMB/CIFS网络文件共享挂载

在这一步之前需要在外部大容量存储上启用文件夹SBM共享服务,网络上有很多相关教程

b 填写挂载文件数据,这个是挂载成功的关键

知道其中项目的意义就比较容易填写了,否则挂载不会成功:

服务器IP   指要挂载的外部存储的电脑地址

共享文件夹  指要挂载的外部存储上在做网络共享时命名的文件夹,用电脑打开共享网络,直接在网络上看到什么名字,这里就填什么,这个名字下面可以跟其下真实存在的子文件夹名。

挂载路径   指openwrt中某个文件夹,可以自己取名,如果系统中不存在,它会自己生成相关文件夹。

挂载参数   必须是可读写

用户、密码  是你自己可以访问外部存储上网络共享文件夹的帐户,表示openwrt用你的帐户登录外部存储来进行读写操作。

c 点击上图中的挂载路径,检查是否在挂载点列表中出现你的网络共享文件夹,有代表成功,没有表示失败,重新操作上面的数据。

1.2 做好Aria2的配置

a 用户组选root,避免文件读写权限问题

b 文件和位置中,config必须是真实存在的文件夹,位置可以随意,默认下载目录必须是前面填写的挂载路径

1.3 保存并应用之后可以看到Aria2状态变为正在运行,并且有一个”打开AriaNg“的标签

2、利用Docker插件运行web应用

一般分配给openwrt的资源较少,运行docker不是太合适,但是openwrt有独立的IP,直接面向外部网络或直接在一级路由的下面,这样当其它电脑的容器出现问题,可以利用openwrt上的容器连接,作为备用手段来处理一下内网问题。当然,如果路由性能较好,运行一些其它的应用也没有原则上的问题。

路由中有一个无脑配置教程,严格按教程内容就可以顺利启用Docker。

其中第4步是启用挂载点后要重启路由器,否则就看不到新的可用于Docker存储的空间。

之后所有的事情都用Portainer来管理,和其它Linux系统使用Docker没有什么不同。