Homebrige 教程:Belkin WeMo 结合 Homekit 智能家居,Homebridge 开机启动

我一直想在家里做的一件事就是,有能力以合理的成本控制手机的设备电源。我终于用 Belkin WeMo 和 Apple HomeKit 实现了这一点,能够控制两套灯,而我的空调非常方便。当我每天离开工作,并说 “Hey Siri, turn on my AC”,然后回到冰冷的房间里,或者直接从我的 Apple Watch 控制我的灯,我就没有什么更满意的了。

步骤0:材料清单

硬件要求

  • 支持 Apple Homekit 的 Apple 设备 - 我使用我的 iPhone 6 和 Apple Watch 2
  • 在某处安装一个 Ubuntu 服务器,作为我们从 Belkin 到 Apple HomeKit 的桥梁。它也可以安装在Rasberry Pi
  • Apple TV 第三代或者更新的版本 - 仅当您希望能够控制您的设备,而不在本地 Wi-Fi 网络
  • Belkin WeMo 设备控制 - 我有一个 Wemo Switch 控制我的灯和还有一个用于我的空调的 Wemo Insight Switch,Insight 让我能跟踪空调的用电量

Homebridge

关于这种情况的一些背景知识,对于支持 HomeKit 的设备来说,他们需要一个集线器或者一个新的硬件,然后用某些认证方法与 HomeKit 进行通话。幸运的是,一些非常棒的人创建了他们称之为 Homebridge 的东西,它作为您的设备和 HomeKi 之间的中枢。有了一个完全开放的源代码基础,加上创建自己的插件的能力,可能性是无止尽的。在这里阅读 Github 页面上有关 Homebridge 项目的更多信息。

步骤一:安装

在我们需要安装 Homebridge、编译器、Node.js、包管理器 npm 之前,我们需要安装一些依赖项。

首先通过运行以下代码来安装 C++ 编译器:

sudo apt-get install g++-4.9

然后我们可以通过输入以下的命令,来确认它已经安装:

g++-4.9 -v

如果安装失败,你会得到一个错误,说该程序可以在下面的包中找到...

现在,我们安装 Python:

sudo apt-get install python

现在我们将安装Node.js,在撰写本文时,这些说明是正确的,因为最新的 Node.js 的版本是 6.x,请参阅此处了解最新的安装说明。

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

再安装最后所需的依赖项:

sudo apt-get install libavahi-compat-libdnssd-dev

现在,我们可以安装 Homebridge:

sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
 cd /usr/lib/node_modules/homebridge/
 sudo npm install --unsafe-perm bignum
 cd /usr/lib/node_modules/hap-nodejs/node_modules/mdns
 sudo node-gyp BUILDTYPE=Release rebuild

您现在已经准备好运行 Homebridge,来测试目前为止所有的工作。

homebridge

如果一切都已经成功,你应该在控制台中看到类似于下面的内容。

安装成功页面

按下 Ctrl + C 来退出 Homebridge,我们现在需要安装 Homebirdge 下的 WeMo 插件。

sudo npm install -g homebridge-platform-wemo

现在再次启动 Homebridge,如果您已经配置了它们,您应该会看到 Homebridge 检测您的 Belkin 设备。

Homebridge Belkin

步骤2:配置

在我们配置 Homebridge 之前,请在 WeMo 应用程序中配置您的 WeMo 设备。我建议您在 WeMo 应用程序中命名与您希望在 HomeKit 中调用相同名称的设备。 以下是我的三个设备:

Wemo 设置列表

我们需要创建一个文件夹来存储我们的 Homebridge 配置:

sudo mkdir /var/lib/homebridge

然后,我们可以创建我们的 Homebridge 配置文件:

sudo nano config.json

下面是一个示例配置文件,这是我在家中使用的文件,你可以为你的任何作品设置引脚和名称。

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "031-45-154"
    },

    "description": "This is our Homebridge configuration file",

    "platforms": [
        {
            "platform": "BelkinWeMo",
            "name": "TV Lights",
            "description": "TV Lights",
            "BelkinWeMo_name": "TV Lights"
        },
        {
            "platform": "BelkinWeMo",
            "name": "Bed Lamp",
            "description": "Bed Lamp",
            "BelkinWeMo_name": "Bed Lamp"
        },
        {
            "platform": "BelkinWeMo",
            "name": "AC",
            "description": "AC",
            "BelkinWeMo_name": "AC"
        }
    ]
}

保存 config.json 配置文件。

现在,我们可以通过运行下面的命令,来测试我们的配置来启动具有指定配置的 Homebridge。

sudo homebridge -U /var/lib/homebridge/

你应该看到 Homebridge 检测你在控制台中配置的设备,如下所示:

Homebridge 检测设备

您现在可以将 Homebridge 添加到手机上的 Home 应用程序,它可能会提示您说设备未通过认证,只需单击添加:

iPhone 添加 Homebridge

然后它将通过设备的设置,然后您可以定义设备类型,我有我的 AC (空调)作为开关,我的灯/灯看起来更清洁。 确保将您的设备添加为收藏夹,以便在下面的 Home Control Center 中显示。 你现在也可以用Siri来控制设备! 搏一搏!

如果一切正常,我们现在可以开始使用 Homebridge 作为自动启动服务。

步骤三:配置 Homebridge 自启动

感谢 johannrichard 在 GitHub 上提供的原始 Homebridge 服务配置。

首先我们需要告诉 Homebridge 读取位于 /var/lib/homebridge 下的配置文件,我们通过创建 homebridge 文件来完成。

sudo nano /etc/default/homebridge

然后将下面的内容粘贴到文件中并保存:

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/lib/homebridge

# If you uncomment the following line, homebridge will log more 
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*

其次,我们需要创建服务文件:

sudo nano /etc/systemd/system/homebridge.service

然后,将下面的内容粘贴到文件中并保存:

[Unit]
Description=Node.js HomeKit Server 
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
# Adapt this to your specific setup (could be /usr/bin/homebridge)
# See comments below for more information
ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

然后,我们需要创建服务运行所在的 home 用户,并授予配置文件夹权限:

sudo useradd -M --system homebridge

将 homebridge 用户设置为 /var/lib/homebridge/ 文件夹的所有者:

sudo chown -R homebridge /var/lib/homebridge/

现在,我们可以启用该服务并启动它:

systemctl daemon-reload
systemctl enable homebridge
systemctl start homebridge

您可以通过输入以下的内容,来检查服务是否正在运行:

systemctl status homebridge

就这样!我们完成了!我建议重新启动您的机器,以确保服务自动成功启动。

尚未评分
您的评分将帮助我们做出更好的玩法

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.