おじゃまぷよ系エンジニアメモ

アプリエンジニアからサーバーとインフラエンジニアに転身しました

社内でGoogle Home使ってハッカソンしました

タイトル通り1日エンジニアの業務をストップしてハッカソンしました
作ったものは大したことないんですが、3人チームでメンバーの一人がGoogle Homeを持っていたのでそれを使っての開発が楽しかったので振り返りを

作ったもの

「我々には仕事より大切なものがある」をテーマにGoogle Homeでアイドルやアーティストのライブに遅刻しないように、逐一Google Homeに喋ってもらおうと頑張りました。
ひたすらググって出てきた参考ソースをほぼコピペしてだけなのですが…

喋ってもらうもの

  • 公式ブログ
  • 公式アカウントのツイート
  • 特定ワードのツイート
  • 「残り時間教えて!」と聞くと、ライブまでの残り時間教えてくれる
  • etc…

使用したライブラリなど

Google Homeに指定した文言を喋ってもらうのには

github.com ツイートの取得には

www.npmjs.com

以上2つお世話になりました。 また独自の音声コマンド「残り時間教えて」を実行するのにIFTTTを使いました
これらの3つはGoogle Homeでググるといっぱい先人の経験があるのでおかげさまで楽できました

ifttt.com

それらを組み合わせてこんな感じになりました f:id:masahide318:20171216005632p:plain

基本的にツイートを喋ってもらう分には問題無い作りです。StreamingAPIで流れてくるテキストをgoogle-home-notifierにcurlを投げつければいいだけなので
ただ独自の音声コマンド追加して何かさせるというのがGoogle Homeあまり向いてないんですかね…こんなめんどくさいことするとは思わなかったです。

  1. 「残り時間教えて」って言うとGoogleHomeが反応
  2. IFTTTのApplet実行し、特定のワードをTwitterに投稿
  3. 特定のワードがStreamingAPIで流れてきて、ローカルPCで取得
  4. 残り時間計算して、google-home-notifierにcurlなげて計算結果しゃべってもらう

なんじゃこりゃ…ハッカソンなので許してください

ハマったところ

google-home-notifierを使うためにGoogle Homeの固定IPを取得する必要があったのですが、スマホの端末とGoogle Homeとの接続が同一ネットワーク内にあるにも関わらずうまく接続できないということがありました。
結果社内のwifiが悪いということが判明して手持ちのiPhoneテザリングして繋いだらあっさりセットアップできたのでなんとかなりました。

改善点

  • やはりgoogle-home-notifierを常駐しておく用のラズパイなり何かが欲しかった
  • もっと別のいいやり方や連携サービス使えたかもしれないが知識が足りなかった

まとめ

  • 初めて使う言語やデバイスに触れる機会ができて楽しかった
  • 接続うまくいかないときはテザリングする
  • Google Home実際に使ってみておもったより色々なことできそうなのでおもちゃとしてほしくなった
  • もう少し普段からサービス間の連携を考えたり、何ができるかを意識しておく必要がある
  • 修行がまだまだたりないと改めて実感
  • AmazonEcho早く届いてほしい