昼間だけ新着メールを音声で教えてくれる仕組みを作ってみた

公開日:2018-10-29
最終更新:2018-10-29
※この記事は外部サイト(https://qiita.com/paming/items/eea8053669b...)からのクロス投稿です

Gmailに届いた新着メールのタイトルをスマートスピーカーで読み上げる仕組みが出来ました。未来の自分がこの仕組みを忘れても思い出せるように、記録を残します。

全体の流れ

使ったもの

  • IFTTT
  • NODE-Red
    • GUIでプログラミングできるnode.jsの実行環境
    • 夜中にメールが届くとうるさいので、ここで時刻判定を行なっている
    • IBM Cloud で動作
  • GHKit(有料)
    • スマートスピーカーに発話させるための仕組み。IFTTTや他サービスと繋ぐ事が出来る
    • Raspberry PIで動作するOSとして販売されている
  • スマートスピーカー
    • 今回はClovaを使用。
    • GoogleHomeやAlexaでもできるはず

Node-REDとIBMCloud部分

Node-REDは初めて使うので、Node-RED日本ユーザ会のドキュメントを参考にしました。この中にあるRunning on IBM Bluemixの、「ボイラーテンプレートアプリケーション」と「フローエディタにログイン認証を追加」までやりました。 ドキュメントには「IBM Bluemix」とありますが、これは今は「IBM Cloud」と名前が変わっています。(参考:BluemixはIBM Cloudとして生まれ変わりました。

時刻チェック部分は、JavaScriptでの時刻の扱いが意外にめんどくさかったので、javascriptで日本時間とハワイ時間を表示するを参考にごにょごにょしています。

GHKitのAPI呼び出しは、GHKitとIFTTTの連携手順を参考にしました。

https://gist.github.com/taktamur/00b0714bfa893a92dd6131482c10420b

IFTTTからNode-REDの呼び出し部分

Node-RED部分では、「受け取ったbodyをそのままGHKitのAPIに渡す」ようにしているので、GHKitのAPIに渡すのと同じbodyを組み立てています。このbody組み立ても、GHKitとIFTTTの連携手順を参考にしています。

GHKitとRaspberryPI部分

GHKitのセットアップは、http://ghkit.jp/ こちらに詳しく書かれています。ですがちゃんとできているのかどうかの確認がやりにくいです。 RaspberryPIにディスプレイとキーボードマウスを接続すれば、Linuxなデスクトップを操作できます。またログインユーザ/パスワードはGHKitを購入した時の書類に付いてくるので、Wifiの接続やスピーカーとの接続(Bluetooth)は、デスクトップ環境で設定する方が楽です。 (このログインユーザ/パスワードにはsudo権限が無いみたいで、かつrootパスワードは記載が無いので、rootとして何か仕込んだりするのは出来なさそう)

感想

  • Node-REDがとてもやりやすい実行環境だった
    • 作っている最中のトライ&エラーがとても簡単
      • テストしたい処理にinjectを差し込んで試して、終わったら消しても良いし残しておいても良い。
    • ネット上で動作させると、ネットサービスの糊付けに良さそう
      • IFTTTではちょっと足らない用途向け
      • Unixでのshellやperlの立ち位置
    • ハマり所もあまりなかった。「デプロイ」ボタンを押し忘れてた、ぐらい
    • ただしここで頑張ると、簡単にスパゲッティ化しそう
  • GHKitの中の仕組みは分からないけど、なかなか良さげ
    • 遅延もあまりなく、ネットワークが切れた後の再接続も良さげ
    • 一応有料の品なので、中身はあまり探る気はなし
  • インターネットから自宅内部にコールバックしたい場合の他の方法
    • MQTTという仕組みが良さそうだった
記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@taktamurの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする