HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

栏目: IT技术 · 发布时间: 4年前

内容简介:在这篇文章将从零开始,向你介绍如何通过在树莓派安装 HomeBridge,将几个典型的米家设备接入到 HomeKit 中。准备好了吗?那我们话不说,直接开始吧。在开始之前,我们首先得购买对应的硬件设备。在这个方案中,你需要准备的有这些东西:

如何让米家设备轻松接入 HomeKit? 这篇文章中,我看到了大家对于 HomeKit 的热情,不少小伙伴都表示,文章里主要介绍了不同的方向,但在实际操作过程,想要一份更清晰的「说明书」。想来上一次写接入 HomeKit 的文章已经是 2016 年,正好就趁着这个机会来更新一下。

这篇文章将从零开始,向你介绍如何通过在树莓派安装 HomeBridge,将几个典型的米家设备接入到 HomeKit 中。准备好了吗?那我们话不说,直接开始吧。

你需要准备的东西

在开始之前,我们首先得购买对应的硬件设备。在这个方案中,你需要准备的有这些东西:

  • 一台电脑(此处以 Mac 为例子)
  • 一个树莓派(建议 3B+ 及以上)
  • 一张 16GB 以上的 TF 卡和读卡器(用来给树莓派装系统)
  • 一根 MicroUSB 线(给树莓派连接电源,如果是树莓派 4,则需要准备一根 USB-C 线)
  • 一个安卓模拟器
  • 有了这些硬件设备之后,我们就可以开始在电脑上进行操作了

当然了,这里只是以我的环境作为例子,如果你想在其他平台上安装 HomeBridge 肯定也是没问题的,官方也给出了对应的安装指南。只不过考虑到要保持接入家居的实时可用性,就需要一台常开的设备来运行 HomeBridge,所以树莓派无论是在功耗还是性价比上,都是再合适不过的选择。

macOS 和 Linux 的小伙伴可以用系统自带的终端进行操作,而 Windows 的小朋友们可以选择刚推出不久的 Windows Terminal。

给树莓派安装系统

首先自然是给树莓派安装 Raspbian 系统。打开 这个网站 ,并选择「Raspbian Buster with desktop」进行下载。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

至于为什么选择它的原因,主要有两点:一是「Raspbian Buster with desktop and recommended software」解压之后的系统镜像比较大,会占用更多空间,而它所推荐的软件都是我们不需要的;二是我并不确定 lite 版的系统是否缺失一些必要的支持,因此最保险的还是选择「Raspbian Buster with desktop」版本的系统。

下载好 zip 文件之后解压,可以获得一个 img 格式的镜像文件。这时候将我们的 TF 卡连接到电脑上,打开 balenaEtcher 这款软件,选择刚刚解压好的 Raspbian 系统,将它刷进 TF 卡中。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

大约十分钟之后,你就拥有了一张能够让树莓派启动的「系统盘」了。不过这时候先不要着急着给树莓派开机,因为我们还需要做一些设置,好让电脑能够直接无线远程连接到树莓派,省去插拔 HDMI 和键鼠的麻烦。

将 TF 卡重新连接到电脑,可以看到一个名为 boot 的磁盘。接着,我们打开终端,依次输入下面的代码:

cd /Volumes/boot touch ssh touch wpa_supplicant.conf sudo nano wpa_supplicant.conf

输入完之后,会提示你需要密码。这里输入你电脑的登陆密码即可。 需要提醒的是,输入密码的过程中终端不会显示任何内容,输入完回车就行了。 完成之后,你会在终端进入到一个文本编辑器中。在编辑器内复制以下内容,并将对应 Wi-Fi 的 SSID 和密码改成你家的。

country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1
 network={ ssid="你家Wi-Fi的名称" psk="你家Wi-Fi的密码" key_mgmt=WPA-PSK priority=1 }

需要提醒的是,如果你家的 ssid 是隐藏的,那么就需要在 priority=1 的后面加入一条  scan_ssid=1 的参数。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit
就像上面这样

设置完成后,按下 ⌃control+X ,然后输入  y 并按下回车键进行保存,就可以将 TF 卡插入树莓派,连接电源开机启动了。回到 Mac 上,我们继续用终端进行操作。

安装 HomeBridge

要正式开始安装 HomeBridge 了。跟着下面的步骤一步一步来,你也可以在一杯咖啡的时间里,将 HomeBridge 轻松地安装在树莓派上。

不过在此之前,你需要到路由器后台,找到树莓派的局域网 IP 地址。接着在终端内输入

ssh pi@树莓派的IP地址

随后,电脑可能会向你问一个问题,不用管它问什么,直接输入 yes ,然后输入连接树莓派的 ssh 默认密码: raspberry

再次需要提醒的是,输入密码的过程中终端不会显示任何内容,输入完回车就行了。如果出现了下面的界面,说明连接就成功建立了。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

第二步,是对树莓派内置软件源进行更换。由于众所周知的原因,Raspbian 在更新软件包时可能会遇到速度缓慢甚至是无法更新的问题,因此我们将国外的软件源更换为国内的清华镜像源,加快连接速度。替换软件源的很简单,按照下面的操作步骤执行即可。

sudo nano /etc/apt/sources.list

将原有的内容删除,或是加 # 进行注释,并替换为下面的内容:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

完成后,按下 ⌃control+X ,然后输入  y 回车进行保存。接着,继续修改 /etc/apt/sources.list.d/raspi.list 文件,输入:

sudo nano /etc/apt/sources.list.d/raspi.list

将里面内容用下面的内容取代,然后同样用上面的方法进行保存:

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

完成后,先进行一遍软件源更新。在终端中依次输入以下代码:

sudo apt-get update
sudo apt-get upgrade

中途会询问你,是否进行更新,输入 y 之后回车即可。好了,等待十分钟左右,你就可以将树莓派里的软件包都更新到最新的版本了。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

现在,我们可以正式开始安装 HomeBridge,话不多说,直接依次在终端中执行下面的代码:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt-get install -y nodejs gcc g++ make python
node -v
sudo npm i -g npm
sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x
sudo hb-service install --user homebridge

需要注意,第二步和第五步由于需要从国外的服务器下载对应的软件包,因此建议大家配置一下网络环境,不然可能会十分慢。其次,第三步中, node -v 的含义是为了查看安装的 node 版本。如果输入之后得到类似 v12.X.X 的结果,那就说明 node 安装成功,可以进行下一步。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

跑完所有代码之后,HomeBridge 便已经成功部署在了树莓派上,接下来我们就可以安装对应的插件,将米家设备接入到 HomeKit 中。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

安装插件,编写 config.json

得益于安装了 homebridge-config-ui-x 这一款插件,现在你可以打开一个浏览器,输入上面返回的任意一个 IP 地址,进入 HomeBridge 后台管理界面(默认的账户密码都是 admin )。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

进入到这里之后,我们就可以在插件页面搜索对应的米家插件进行安装。这里我推荐来自「 deserteagle 」(GitHub 用户名为 银行码 YinHangCode)的米家插件,不仅种类较多,而且基本上都能长期稳定工作。这里我们以米家空气净化器和米家空调伴侣作为例子,演示如何将它们接入 HomeKit 中。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

首先,在插件页面用关键词搜索到对应的插件,点击安装。两款插件安装完成后,来到配置页面,开始编写 config.json。

HomeBridge 操作指南:从零开始,将你的米家设备接入 Homekit

说到编写 config.json 这个文件,就到了新手最头疼的地方。但其实不用害怕,都是四级水平不到的英语,理解起来并不困难。 但请一定一定要认真阅读一遍作者的 Readme 和 config 例子,不然你必然会出现错误。

这里我贴出我的一部分 config.json,对里面的内容进行细致的讲解。不过需要注意的是,json 格式的文件并不支持注释,如果需要使用这份 config.json 文件,除了需要将对应内容更改为你的设备之外,还需要 删除掉  #  和后面的中文注释

另外还需要提醒大家的是,json 文件的 {}[], 等符号一定不能弄错,否则一定会报错。如果是运行时提示 config 文件出现错误,首先检查自己是不是哪里打多了一个 , ,或者是哪里遗漏了一个括号,再检查语法是否正确。

{
    "bridge": { #homebridge基础设置,大部分都不需要修改
        "name": "HomeBridge",
        "username": "00:00:00:00:00:02",
        "port": 58888,
        "pin": "199-71-226" #你在家庭应用进行配对时的配对码,支持自定义
    },
    "platforms": [
        {
            "platform": "MiAirPurifierPlatform", #插件平台名称,固定不可更改
            "deviceCfgs": [
                {
                    "type": "MiAirPurifier2S", #型号名称,固定不可更改
                    "ip": "192.168.1.195", #空气净化器的IP地址
                    "token": "b5d7120997c45761f3adac05887c5fc2", #空气净化器的token
                    "airPurifierDisable": false, #是否在家庭应用中不显示空气净化器
                    "airPurifierName": "空气净化器", #在家庭应用中显示的名称
                    "silentModeSwitchDisable": false, #是否在家庭应用中不显示空净睡眠模式开关
                    "silentModeSwitchName": "空净睡眠模式", #在家庭应用中显示的名称
                    "temperatureDisable": false, #是否在家庭应用中不显示空净检测的环境温度
                    "temperatureName": "温度", #在家庭应用中显示的名称
                    "humidityDisable": false, #是否在家庭应用中不显示空净检测的环境湿度
                    "humidityName": "湿度", #在家庭应用中显示的名称
                    "buzzerSwitchDisable": true, #是否在家庭应用中不显示空净的静音开关
                    "buzzerSwitchName": "MiAirPurifier2S Buzzer Switch", #在家庭应用中显示的名称
                    "ledBulbDisable": true, #是否在家庭应用中不显示空净的屏幕显示开关
                    "ledBulbName": "空气净化器显示屏", #在家庭应用中显示的名称
                    "airQualityDisable": false, #是否在家庭应用中不显示空净检测的空气质量
                    "airQualityName": "空气质量" #在家庭应用中显示的名称
                }
            ]
        },{
            "name": "Config", #这部分不需要修改,是homebridge UI插件自动生成的
            "port": 8581,
            "auth": "form",
            "theme": "pink",
            "tempUnits": "c",
            "platform": "config"
        }
    ],
    "accessories": [ #是使用「platform」还是「accessories」,需要根据插件的说明进行选择
        {
            "accessory": "MiHeaterCooler", #插件名称,固定不可更改
            "name": "空调", #在家庭应用中显示的名称
            "address": "192.168.1.146", #空调伴侣的IP地址
            "token": "5ff11db226e994e41a4b7653cd713c6f", #空调伴侣的token
            "ratedPower": 735 #空调的额定功率,非必须参数
        }
    ]
}

其中,获得 token 的操作相对麻烦一些,但却又是米家设备接入 HomeKit 必不可少的一项参数。那么,要如何获取对应设备的 token?如果你不了解,可以跟着下面的步骤操作:

  • 第一步,我们打开准备好的安卓虚拟机,安装一个旧版的米家 app( 必须要旧版 ,建议找 2017 年左右的版本);
  • 第二步,打开米家 App,登陆你的账号,检查你需要接入的设备是否显示在 App 中,然后简单进行操作,确定设备能够响应;
  • 第三步,安装 RE 浏览器,进入到 /data/data/com.xiaomi.smarthome/databases/ 目录下,找到  miio2.db  文件,并将它复制到电脑上;
  • 第四步,打开  这个网站 ,将  miio2.db  文件上传,然后点击 submit,就可以获取到所有设备的 token 了。建议将这份表格保存好,以备后期万一出现 bug 时进行修复。

至此,将米家设备接入 HomeKit 的所有操作完成。你终于可以拿起 iPhone,将设备加入到家庭应用中,享受 Siri、快捷指令和家庭自动化带来的便利体验了。

总结

文章的篇幅看起来有一些长,但实际上莫过于就是三大步:「装系统 - 装 HomeBridge - 装插件并适配」,熟练之后,你可以轻松在半小时不到的时间里接入数个米家设备。

但落实到每一步来说,都需要你的细心和耐心,如果中途出错,不要急于放弃,好好阅读返回的报错内容,并学会用 Google、百度搜索一下,或者是再仔细阅读插件开发者所写的 Readme 文件,看看问题是出在了哪里,对症下药进行解决。

当然,如果实在是有一些你无法找到的 config.json 错误,私信我,带上你的 config 文件和报错内容,我也很乐意提供帮助。

也是不禁回想起过去,为了折腾一个 YeeLight 彩光灯,而耗费的一天时间。虽说现在 HomeBridge 已经默默为我服务多年,但当年成功点亮灯泡那一刻的喜悦,至今都记忆犹新。

> 下载少数派客户端、关注 少数派公众号,让你的生活更精彩 :tada:

> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java程序员修炼之道

Java程序员修炼之道

[英] Benjamin J. Evans、[荷兰] Martijn Verburg / 吴海星 / 人民邮电出版社 / 2013-7 / 89.00元

本书分为四部分,第一部分全面介绍Java 7 的新特性,第二部分探讨Java 关键编程知识和技术,第三部分讨论JVM 上的新语言和多语言编程,第四部分将平台和多语言编程知识付诸实践。从介绍Java 7 的新特性入手,本书涵盖了Java 开发中最重要的技术,比如依赖注入、测试驱动的开发和持续集成,探索了JVM 上的非Java 语言,并详细讲解了多语言项目, 特别是涉及Groovy、Scala 和Cl......一起来看看 《Java程序员修炼之道》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具