Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

今年イベントブース展示用に、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 からの発話が上手くいくか動作確認

Reference


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

Mikei
Cybozu Inc. Technical Evangelist / System Engineer
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away