この記事では、ホームオートメーションデバイスとやり取りするためのSiriのゲートウェイのインストールと構成について説明し、異なるバージョンのいくつかの機能について説明します。
私のスマートホームのメインコントローラーはVera3です。 オーディオ/ビデオコンポーネントとZ-waveデバイスをそれぞれ制御します。 さて、「魔法の杖」はNode-JSアプリケーションのVeraHomeKitBridgeになります。 以下に、このアプリケーションを選んだ理由を書きます。
GitHubからアーカイブをダウンロードします。 それをどこかにデプロイする必要があります。 これには仮想マシンがあります。 サーバーを自宅に置いていない人は、このビジネスにRaspberry Piを使用できます。
インストールプロセス
プロジェクトページに簡単なインストールマニュアルがあります。 さらに、GitHubの近隣プロジェクトの指示を使用することをお勧めします(私の意見では、より理解しやすいです)。
ここでチームを完全にはコピーしません。 ポイントを説明します。
- 必要なパッケージをインストールします: nodejs、npm、git-core、libnss-mdns、libavahi-compat-libdnssd-dev
- HAP-NodeJSをlib /にコピーします。 ここから別のアーカイブにダウンロードしてください 。
- アプリケーションで動作するプラグインをインストールします。
- config.jsonを編集します。 VeraコントローラーのIPアドレスを入力します。また、ピンコードを独自のものに変更することもできます。
- node app.jsコマンドを使用してアプリケーションを実行しようとしています
nodejsの最新バージョンをすぐにインストールすることをお勧めします。 標準のDebianリポジトリからバージョン0.10.29をインストールしました。 エラー「エラー: 'REPLACE_INVALID_UTF8'は...のメンバーではありません」が原因で、何かが起こりました。 別のリポジトリを接続し、そこからインストールします。
curl -sL https://deb.nodesource.com/setup | sudo bash - apt-get install nodejs
その後、バージョンは0.10.44になります。
起動プロセス中であっても、欠落しているプラグインに関するエラーが表示されます。 私たちは置きます:
npm install _
エラー「... invalid ELF header」が引き続き発生する可能性があります。 動作するには、 lib / HAP-NodeJSに移動して、
npm rebuild
その結果、VeraのHomekitを正常に起動し、コントローラーが認識するシーンとスイッチを自動的に取得する必要があります。 これが起こった場合-仕事の半分が完了しました。
将来、エラーがなければ、コマンドを使用してバックグラウンドでアプリケーションを実行できます。
forever start app.js
プラグインのプレインストール
npm install forever
もちろん、これを行う必要があります。VeraHomeKitBridgeディレクトリにいることを確認してください。
iPhoneでHomeKitをセットアップする
Insteon +アプリケーションをインストールします。 必要に応じて、他の有料アナログを選択できます。 主なものは、HomeKitで動作することです。
[設定]-> [プライバシー]->インストールしたHomeKitプログラムをオンにします。
iCloud設定では、キーチェーンを作成する必要があります。
Insteon +プログラムに行きます。 Add Deviceを作成します。 次に、HomeKitと互換性のあるアクセサリを検索します。 HAP-NodeJSを実行するサービスを実行しています。これは、iPhoneと同じローカルネットワーク上にある必要があります。 アクセサリを1つ見つけて追加します。 config.jsonで指定されたPINコードを入力します。 追加が最初に約1分間続く場合。 すべてがうまくいけば、VeraのすべてのアクチュエータとシーンがInsteon +で表示され、押しても動作します。
しかし、私はVeraからアプリケーションを持っています。 そこでオフにすることができます。 Insteon +は音声制御に必要です。 これを行うには、アプリケーション設定で[デバイスの編集]を選択します。 デバイスを選択し、「Siriコントロール」フィールドに移動します。 そこで、アクチュエータまたはスクリプトの人間の名前を入力する必要があります。 たとえば、照明リレーの場合、「電球」または「照明」と呼びます。 一般に、「光」-Siriにはより一般的な概念があります。 したがって、特定の名前を作成してください:鉄、やかん、テレビ、床暖房...
アプリケーションのデバイスを部屋に置いたら、コマンドを与えることができます:「キッチンの照明をつける」Siriは部屋の名前を「見ます」。 デバイスの設定でそのタイプを指定することもできます。 今、光とファンがあります。 将来、他のタイプが追加される可能性があります。 これで、ライトリレーに対してライトであることを示すことができます。 その後、デバイスは「キッチンの照明をオンにする」に応答し、タイプがファンの場合は応答しません。 以下のビデオでは、音声制御のデモを行います。 しかし、すべての音声制御オプションを表示するデバイスはあまりありません。 これまでのところ、行動の原則のみ。 そして、Insteon +のデバイスと機能の拡張によってのみ。
前に書いたように、シーンを通して作業できます。 これにより、Veraのインターフェースで利用できるほぼすべてを管理する機会が与えられます。 シーンはすべてアプリケーションに表示され、音声コマンドで使用できます。 したがって、2つのシーンを作成して、レシーバーまたはテレビを制御できます-レシーバーのオンとオフを切り替えます。 Scene Faithでは、Receiver-OnおよびReceiver-Offを呼び出す必要があります。 その後、「受信機をオンにする」と「受信機をオフにする」のではなく、「受信機をオンにする」と「受信機をオフにする」コマンドをそれぞれ与えることができます。
他に何?
HomeKitは、ほとんどすべてのホームオートメーションシステムの音声制御への扉を開きます。 このためのより広い概念があります-ホームブリッジ。 他のメーカーの自動化を詰め込める場所。 同じGitHubの音を立てて、他のコントローラーとプラットフォームの制御メカニズムを見つけることができます:WeMo、PhilipsHue ...私はほぼ1年前にVeraのプラグインに出会いましたが、この間に彼はより良く動きました。
いくつかの機能を強調します。コードを見ると、httpプロトコルを介して相互作用が発生していることがわかります。 アナログよりも高速に動作します。 すべてのデバイスは、単一のアクセサリとして一度に追加されます。 必要に応じて、システム全体を上下に拡張できます。
いくつかの歌詞または翻訳の難しさ
ここでは、Siriのチームに少し焦点を当てます。 デバイスの名前が明示的に入力されていない場合、Siriはリクエストに応じてインターネット上でクロールし、このデバイスにコマンドを送信しません。 そして、チームは、異なる方法で理解します。 「オンにする...」が必要な場合がありますが、「オフにする...」それ以外の場合、たとえば「暖かい床をオフにする」クエリでは、インターネットで暖かい床をオフにする方法を検索します。
「…の照明をオンにする」、「…のすべてをオンにする」、「カーテンを下げる」などの一般的なコマンドがあります。 「閉じる」、「開く」のコマンドがあります。 しかし、私の場合、ハイドロロックではこのコマンドは機能しませんでした。 彼はこの装置を「水」と「クレーン」の両方として説明しました。 コマンド「トイレの蛇口を閉じる」は頑固にデバイスを表示しません。 部屋の「トイレ」が定義していますが。 少し逆説的な状況:私はハイドロロックを「鉄」と呼び、「鉄をつける」コマンドを与えます-それは水を遮断します。 私は「水」、「タップ」と呼びます-タップを閉じる方法を探すためにインターネットをクロールします。 一般的に、閉じた場合、このバンドルはロックなどの特定のデバイスでのみ機能すると思われます。 しかし、その後、デバイスのタイプで適切に説明する必要があります。 そして、「フロントドアを閉じる」コマンドSiriは正しく理解します。
ビデオは動作原理を示しています。 水の重複は、HomeKitではハイドロロックまたはクレーンとして説明することができなかったリレーから機能します。
一般に、それを使用し、他のデバイスでどのように機能するか試して、ホームオートメーションの音声制御を改善します。