系列文章

米家接入HomeKit系列一:接入基本原理与开篇

米家接入HomeKit系列二:通过群辉NAS的Docker搭建HomeAssistant

米家接入HomeKit系列三:HomeAssistant接入米家网关

米家接入HomeKit系列四:HomeBridge搭建、配置与接入米家设备

米家接入HomeKit系列五:Sir控制米家设备


一、前言

通过前面的文章米家接入HomeKit系列二:通过群辉NAS的Docker搭建HomeAssistant我们已经知道了如何将通过群辉NAS基于Docker搭建HomeAssistant了。那么本文我们将为大家讲解HomeAssistant的简单实用。

HomeAssistant的功能非常多也有很多组件,具体大家可以通过官网进一步学习(官方地址:https://www.home-assistant.io/docs/)。本文我们重点讲解解米家网关的接入方式和Device_tracker组件的接入方式。如果大家对其他使用感兴趣,可以私信楼主,后期可以考虑出一系列HomeAssistant进阶使用的相关文章。

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

二、设置api_password

在开始之前,我们需要设置一个叫做api_password的密码。很多朋友会好奇,我们前面在登录的时候明明已经创建过了登录用户名和密码,那么为什么要要设置一个api_passoword呢?大家通过名称可以看出,这个密码叫做api,即它是提供给其他服务通过api的方式访问HomeAssistant的时候使用的。后续我们的HomeBridge就需要使用该密码连接到HomeAssistant。

这个密码的配置比较简单,我们直接在configuration.xml文件中按下述方式配置即可。注意层级结构:它配置在homeassistant:的下一级,即比homeassistant缩进两格(修改之后要重启服务才会生效)。

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

三、HomeAssistant的基本使用

1、device_tracker的使用

device_tracker就是设备追踪器,即可以实时探测设备是否在线。我们可以通过探测家庭成员的手机是否在线来判断该成员在家与否。

device_tracker组件提供了以下几种追踪设备位置信息的方法:

  • 通过ping、nmap等网络探测的手段,确定设备是否在家中——例如nmap_tracker、ping等平台。
  • 通过与局域网中路由器通讯,确定设备是否连接在局域网中——例如xiaomi路由器、Netgear路由器等平台。
  • 通过与云端通讯获得手机的位置信息——例如TrackR、iCould等平台。
  • 通过手机端APP上报获得手机的位置信息——例如HomeAssistant IOS APP、OwnTracks等。

本文将重点介绍基于nmap_tracker的探测方式。其他探测方式其参考https://www.hachina.io/docs/3058.html

使用nmap_tracker很简单,它核心实现是基于ip进行探测,所以我们只需要在configuration.xml中做如下配置即可(注意定格配置,前面不留空格)。

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

上述参数解释:

platform: nmap_tracker 表示使用nmap进行探测;

hosts: 192.168.168.0/24 表示对哪个IP段进行探测

interval_seconds:60 表示多久进行一次扫描,单位为秒

consider_home:180 表示多久没有探测到就标记为不在家状态,单位为秒

tranck_new_devices 是否主动将探测到的设备添加到HomeAssistant中展示

hide_if_away: 是否无论怎样都隐藏设备

配置完成之后,我们只需要重启HomeAssistant服务tracker就会立即生效。他会将探测到的设备添加到配置文件目录(和configuration.xml统计目录)下的known_devices.xml文件中。打开文件其内容如下图:

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

大家能够看出来这里展示的是探测到的设备的Mac地址。那么为了看起来舒服我们可以给设备去别名,同时也可以设置icon。只需要对known_devices.xml中的内容直接修改即可,修改完后如下:

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

这里的图片我们使用了HomeAssistant内置的MDI图标库,具有由哪些MDI可用,大家可以百度下MDI图标库。或者访问MDI官网http://materialdesignicons.com/查看。为了方面使用楼主将MDI基本展示植入到了HomeAssistant中,方便平时使用查看。

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

将设备的图标名称等修改完成之后,在HomeAssistant中就能够添加到对应的设备展示了。展示效果如下图。这里的添加涉及到HomeAssistant的基本操作,大家进去稍微操作下应该就会了。

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

2、小米网关的接入

小米网关的接入首先我们需要开启小米网关的局域网通信协议,简单来说就是进入网关的关于界面然后连续点击很多次就可以打开局域网通信协议菜单。具体可以参考:https://blog.ixcv.com/posts/2769.html。

然后进入局域网通信协议菜单,进去打开协议即可。此时可以看到通信秘钥。

PS:有朋友@启元2020反馈说最新的绿米网关固件关闭了局域网通信协议,所以如果使用了最新的绿米网关固件,则需要降级固件!

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

然后我们在HomeAssistant的configuration.xml中做如下配置即可。

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

填写完成之后,重启HomeAssistant服务,然后再HomeAssistant中就可以看到对应的米家设备了。然后将所有设备配置展示出来即可。

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网

 

本期文章就介绍到这里,下一篇我们将给大家讲解如何通过群辉NAS基于Docker安装HomeBidge。

四、惯例

如果你对本文有任何疑问或者高见,欢迎添加公众号共同交流探讨(添加公众号可以获得”Java高级架构“上10G的视频和图文资料哦)。

米家接入HomeKit系列三:HomeAssistant接入米家网关-编程知识网