3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[ローカル > IBM Cloud に移行] Google Home でイベントスケジュールを自動アナウンス

Posted at

今年イベントブース展示用に、Google Home, Node-RED, kintone 連携でこんなカスタマイズを作りました。

📣Google Home でイベントスケジュールを自動アナウンス

当初、ローカルに Node-RED インストールして実行という方法で作ったので、毎回デモしようにもセットアップが大変...
ということで、IBM Cloud に乗せ換えたver. も備忘録として書いておきます!

他環境に移植しやすいようにするためであれば docker で構築する手もありますが、結局ローカル実行になるので、今回は持ち運び便利なクラウドを選びました。

Overview

kintone に登録しているイベントのタイムテーブルデータを一定時間おきにチェックして、今から10分後までに始まるセッションを Google Home でお知らせします。
シナリオ.png

  • 10分後までに始まるセッションがある場合は、そのセッション名をお知らせ
  • 10分後までに始まるセッションがない場合は、その他のコンテンツをお知らせ

Customization

以下の設定は元記事を参考にしてください。
今回は IBM Cloud 設定部分のみ書きます。

  • kintone アプリ作成
  • Google Home アプリのインストールと設定
  • Node-RED の処理フロー設定
Node-RED.png

IBM Cloud Setting

Node-RED は IBM社が開発しているので、セットアップも楽ちんです。
IBM Cloud 上の Node-RED では、Cloudant データベースインスタンスや、各種 IBM クラウドサービスに簡単にアクセスできるノード一覧も提供されるので、やはり本家でやるのが良いなという感じです。

以下設定手順です。

  • こちらより IBM Cloud にログイン(Lite アカウントを利用)1
  • Node-RED Starter をカタログで検索
  • Cloud Foundry アプリ の作成(* ライトプランのアプリは無料)
    作成手順の詳細はこちら
  • Node-RED を立ち上げて、こちらを参考にフローの詳細設定を行う
    • GetNextSessions function にて、JST に時刻を合わせる(リージョンが違う場合)
      .zone('+0900') を追記
// moment.js のインストール
const moment = require('moment');

// 現在時刻
const now = moment().zone('+0900').format('HH:mm');

// 10分後の時刻
const afterTenMins = moment().zone('+0900').add('minutes', 10).format('HH:mm');
  • 右上の デプロイ ボタンでデプロイ実行
NodeRED.png
  • デバッグ欄 にて HTTP リクエストや Google Home からの発話が上手くいくか動作確認
  • フローは flow.json で書き出せるので、ローカルに保存しておくと安心。
flow書き出し.png flow.png

Reference

  1. IBM Cloud Lite アカウントで作成したインスタンスには、「10日間開発なしでアプリの自動停止」, 「30日間活動なしでサービスの自動削除」 というルールがあるので要注意

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?