アリスとホームブリッジを友達にする方法

画像






UPD 2019年6月6日:それは起こりました、アリス自身に明かりをつけるよう頼むことが可能になりました。 プロジェクトはgithubにあります。 彼のホームブリッジで確認すると、すべてが機能しています。 私のスキルのさらなるサポートは適切ではないと考えています。



私は、スマートホームに加えて、ロシア語を理解して話す音声アシスタントを長く望んでいました。 その結果、私はチャンスをつかんで、若いが既に愛されているアリスと一緒に、 粗雑な新しいコラムYandex.Stationを撮ることにしました。 第一印象は素晴らしかったが、冗談をたくさん聞き、十分に話したとき、コラムの実際的な側面を学び始めた。 何よりも、私はアリスとスマートホームの相互作用の問題に興味がありました。



問題の説明
私の家はHomeBridgeサーバーに基づいています。 多くの記事( 1、2、3 )がハブと他のリソースでのその構成と使用について書かれているので、私はこれにこだわらないでしょう。 質問を徹底的に研究することなく、アリスのスキルカタログにはスマートホームコントロールシステムとやり取りするための多くのソリューションが既にあると確信しました。 執筆時点では、トピック「スマートホーム」に関するスキルのほとんどは、仕事に適したディスプレイを備えたデバイスを必要とすることが判明しました。 要件を満たしていると思われ、ディスプレイなしで働くことができた唯一のスキルはアルフレッドでした。 IFTTTというサービスに関連しているため、このスキルは私には向いていませんでした。 スマートホームシステムで動作し、スクリプトを現在の状態にバインドできる仮想スイッチを作成するとします。 AlfredはIFTTTのWebHookサービスを使用します。IFTTTでは、 IFTTTアプレットで作成されたトリガーのみを操作できますが、アプレットの現在の状態を取得する方法はありません(スイッチをオンまたはオフにすることはできますが、スイッチの現在の状態を確認することはできません)。



上記の問題を解決するために、Yandex.Alice音声アシスタントとさまざまなスマートホームコントロールシステムを接続するように設計されたAlice-HomeBridgeサービスが作成されました。 さらに、設定の例として、HomeBridgeの構成を検討しますが、このアプローチはHome AssistantopenHABなどの他のシステムにも適用できます。



このサービスにより、ユーザーはサイトに登録した後、仮想スイッチ作成できます。







特別に生成されたGETサービス要求を使用して、スイッチの状態を変更または確認できます。







サービスが音声アシスタント「Alice」と対話するために、スキル「Lazy Jimmy」が作成されました。



怠zyなジミー

アリスに言う:「スキル怠Jimなジミーを実行してください」と彼はあなたがあなたの個人アカウントで見つけることができるアクティベーションコードを通知するためにあなたを提供します。







アクティブ化後、Turn OnまたはTurn Offコマンドを使用して、スイッチの状態を変更できます。 たとえば、「ライトをオンにする」と言うと、「ライト」スイッチのステータスがポジティブに変わります。 「Light」とだけ言うと、スイッチの状態は反対に変わります。



ダイアログをより自然に聞こえるようにするために、「With Utrechk」など、わかりやすい名前のスイッチを作成する機会があります。その後、アリスに「Trem Jimmy With Utrechk」と伝えると、スイッチの状態が変わります。



HomeBridgeの構成は残ります。 たとえば、 cmdswitch2拡張機能を使用します。 「Alice Button 1」というHomeKitのスイッチを作成します。



{ "platform": "cmdSwitch2", "name": "CMD Switch", "switches": [ { "name": "Alice Button 1", "on_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=set&val=true\"", "off_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=set&val=false\"", "state_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=get\" | grep -oh \"true\"", "polling": true, "interval": 2 } ] }
      
      





不要なリクエストでサーバーを過負荷にしないために、intervalパラメーターを少なくとも2秒に設定してください。



すべて準備完了です。







ここで、「アリスが怠け者のジミーに朝の言葉で伝える」と言うと、「アリスボタン1」スイッチの状態が変わります。 以下は、カスタマイズされたHomeKitスクリプトと連携してすべてがどのように機能するかのデモです。





HomeBridge設定ファイルのフルバージョン



PS HomeKitなどのほとんどのスマートホーム管理システムは、スクリプトをサポートしています。 特定の状況で使用したいスクリプトを作成できます。たとえば、目を覚まして「Utrechokスイッチをオンにする」イベントにコールを割り当てた場合などです。



PS私のサービスはまだ発展途上であり、まだ理想的とは程遠いものです。 しかし、アリスは特定のフレーズを時々受け入れることも拒否します。 たとえば、彼女は「光を当てる」というフレーズをスキルに完璧に伝えていますが、「おはよう」というフレーズは通しません。 Yandexが問題について知っており、すぐに修正することを願っています。 あなたのコメントを待っています。



All Articles