让 iPhone 与 Siri 控制你家中的设备:Intel Edison + Node.js

我以为这是非常酷,决定做一个指导,所以你也可以做到这一点。

这个指导的基本思想是要求siri同时关掉你的灯或多个灯。

开发环境是一个 Intel Edison 和 Node.js。

由于它使用 Node.js 服务器,因此可以从几乎任何系统运行。而我决定使用爱迪生,因为它已经是我的家庭自动化基础(包括网络流媒体,Pebble 智能手表应用程序和 iOS 应用程序(即将推出))

材料

  • 计算机,如 Raspberry Pi、Intel Edison
  • Node.js
  • 控制家庭用品或智能产品的链接。
  • 对终端环境的了解

笔记

  • 仅适用于本地网络。 一个例外是需要一个苹果电视的特殊转发。
  • 仅适用于iDevices
  • 由于Siri支持通过HomeKit添加的设备,这意味着使用HomeBridge可以让Siri控制对HomeKit不支持的设备。 例如,使用已有的短句,如:
    • Siri,解开前门。(Lockitron)
    • Siri,打开车库门。 (LiftMaster MyQ)
    • Siri,打开叶子。 (Carwings)
    • Siri,关闭音箱。(SONOS)
    • Siri,打开除湿机。(WeMo)
    • Siri,打开离开模式。 (Xfinity Home)
    • Siri,打开客厅灯。 (Wink,SmartThings,X10,Philips Hue)
    • Siri,设置电影场景。 (Logitech Harmony)

Credit:

感谢 Khaos Tian 的 Hipp-NodeJS 和 Nick Farina 的 Homebridge

步骤1:设置 Intel Edison

在下一步之前,我假设你已经设置了 Edison(使用最新的 Image,至少可以工作),如果没有的话,这里有两个链接可以帮助你完成搭建:

一旦完成上面的设置,通过进入终端并输入 configure_edison 来配置您的 Edison,您可以在其中选择一个名称(建议:留空,只使用root,更容易记住),密码并连接到wifi。

步骤2:设置 Intel Edison 2

Windows 用户需要下载:WinSCP

在你的 Home 目录下执行:

vi /etc/opkg/base-feeds.conf

你会看到一个空白的黑色屏幕,您将在其中复制并粘贴下面的内容:

src/gz all http://repo.opkg.net/edison/repo/all 
src/gz edison http://repo.opkg.net/edison/repo/all

src/gz core2-32 http://repo.opkg.net/edison/repo/all

确保内容正确后,然后按下 Esc;再输入 :wq 保存并退出。

步骤3:安装 Node.js 0.12x 版本

如果你安装好了 Node.js 0.12 版本,你可以跳过这个步骤。没有的话,可以按下面的脚本安装:

wget https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz --no-check-certificate
tar xvf node-v0.12.7.tar.gz
cd node-v0.12.7
./configure
make
make install

笔记:

  • 执行 'make' 命令进行编译大概需要 2 个小时。这基本上是编译刚才下载的二进制文件,换句话说就是将它们变成了 Edison 真正能理解的东西。
  • 如果你想看看你的 Edison 需要多长时间,你可以使用 'time make' 而不是 'make'
  • 如果 Node.js 0.12.8或 0.12.9出来,只需切换上面的数字即可。
  • 确认您的 Node.js 版本确实是0.12.x,这个通过键入 node -v 完成。 我第一次编译,我的 Node.js 版本其实没有改变,重新启动修复了这个问题。
  • 如果所有其他的都失败了,在下面的链接里包含了我的预编译版本(这样做可能会更快),而且先使用 WinSCP 来传输它。你必须'./configure,使安装和使我的经验,需要不到一分钟的时间来配置和配置。
  • 我已经尝试使用 n&nvm 在 2个单独的 Edison 机器上,但是无效。 你可以试试你的运气

Node.js 0.12 编译版下载地址:https://cdn.instructables.com/ORIG/FHM/9M6L/IDED3LCA/FHM9M6LIDED3LCA.zip

步骤4: 安装 Homebridge

在终端中输入下面的内容(下载时请耐心等待):

$ git clone https://github.com/nfarina/homebridge.git
$ cd homebridge
$ npm install
$cd homebridge
$node app

如果一切顺利,你应该会得到这个错误:

Starting HomeBridge server...
Couldn't find a config.json file [snip]

这只是意味着您尚未配置任何链接。

使用 WinSCP 或您选择的任何其他程序,导航到 homebridge,并查看配置示例为 'inspiration'。 我个人设置了控制灯,我已经设置了与 Express (Node.JS)和Arduino的链接。

我的个人 homebridge 文件夹是附加的,以防您在设置自己的家庭网路上遇到麻烦,在这时候就奇妙这个。 随时将 Winscp 连接到您的 Edison,但请记住,您需要更改链接。

如果你没有一个 brightness 链接,你应该放一个虚拟链接,根据我的经验,siri 讨厌不能控制亮度。

LINK(链接)

设置一个服务器,来监听和控制事情已经花费了很多时间,事实上,最高的观察一个指标就是这样做。

有一个简单的创建链接方法是,直接使用下面的代码(如果没有 Express,进入终端并键入“npm install express”)

var express = require('express');
var app = express();
var mraa = require('mraa')

var LED = new mraa.Gpio(13); //13 is notoriously the pin number for the onboard LED(assuming arduino-board)

LED.dir(mraa.DIR_OUT); //LED.write(1) turns it on!!

app.get('/', function (req, res) {
    res.send('Hello World!');
});

app.get('/on', function (req, res) {
    res.send('LED on');
    LED.write(1);
});

app.get('/off', function (req, res) {
    res.send('LED off');
    LED.write(0)
});

var server = app.listen(1111, function () {
    var host = server.address().address;
    var port = server.address().port;
    console.log('Example app listening at http://%s:%s', host, port);
});

我不记得 Edison 的一些细节,但你可能必须不断地发送一个 LED 来保持它点亮(我默认的是关闭)。 不过这只是猜测。

步骤5: 设置 iOS

注意:默认密码为031-45-154

  1. 下载Insteon +。 我发现这是最简单和最干净的设置。你可以试试别的应用
  2. 导航到应用程序
  3. 单击加号按钮并添加设备
  4. 几秒钟之后,扫描应该会提供您能添加的任何设备
  5. 使用上面的密码添加它
  6. 要求它控制你的灯光
  7. "lamp" 不是一个好的词。如果是我的口音,但是每当你真的说“turn on my alarm”,你几乎总是会“turn on my lampt”

步骤6:结束

That's it.

原文链接:Get Siri to Control Your Home

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

观光\评论区

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