Google Homeのスクリプトエディタを使ってみる

📅
ついに来ましたね😋。

Google Homeがスクリプトエディタを実装しました(公開された2023.6.13時点ではまだパプリックプレビュー版ですが)。

このスクリプトを用いると様々なトリガー、アクションに対応できることが期待できます。Google Homeを使ったスマートホームで出来る範囲が今後大幅に広がると思います(個人の感想です)。
Google Homeのスクリプトとは

Google Homeのスクリプトエディタ(ブラウザ画面)

スクリプトですからコーディングが必要なので時代に逆行しているようにも思いますが、ノンプラミング(ノーコード)が信条の私としても、こればかりは使ってみない訳にはいきません😤。

という訳で早速使ってみました。今回はこのレビューになります。


■Google Homeのスクリプトエディタを使ってみる

●スクリプトエディタの使い方

・スクリプトエディタの場所(在り処)

スクリプトエディタの場所(在り処)はココ(home.google.com)です(PCから開けます)。

このホーム画面で右上の『+新たに追加』をクリックします。
リンク:スクリプトエディタ(home.google.com)

するとスクリプトエディタの編集画面になります。
スクリプトエディタ編集画面

スクリプトエディタ編集画面にはスクリプトのテンプレートがあらかじめ用意されています。このテンプレートを利用すればスクリプトの作成は比較的容易に出来ると思います。

以下、スクリプトの書式を紹介します。


・スクリプトの書式(概要)

スクリプトエディタの編集画面のテンプレートを見ると、何十行にも渡ってスクリプトが記載されていますが、そのほとんどは説明のためのコメント(行)です。
スクリプトの本体は以下の10行だけです。

ーーーGoogle Homeスクリプトの本体ーーー
 (" # ... "部分はコメントです。)
metadata:      # スクリプトの名称など
  name: Untitled                      # 本スクリプトの名称
  description: Scripted automation    # 本スクリプトの詳細(説明)

automations:  # スクリプトの本文
  starters:        #トリガー1
    - type: 
  condition:       トリガー2(付帯条件)
    type:
  actions:         # アクション
      - type: 
ーーーGoogle Homeスクリプトの本体 [おわり]ーーー

スクリプトの本体はいたってシンプルですね😋。

本スクリプトには
  • トリガー1:"starters"
  • トリガー2(付帯条件):"conditions"
  • アクション:"actions"
の3つのモジュールがあり、フローチャート風に表現すると以下のような感じになります。

以下それぞれのモジュールの概要です。


- トリガー1: "starters"の書式

そもそもです。Google Homeをどういうきっかけ(トリガー)で動かすかという出だしです。
Google Homeスクリプト:starters

編集画面の『- type:』にカーソルを当てると使用可能なトリガーが表示されるので、使いたいトリガーを選択し詳細を設定する事になります。
startersで使用可能なトリガー

ここから必要なトリガー1を選択し詳細を設定します。


- トリガー2(付帯条件): "conditions"の書式

上記トリガーが起きたときに、さらに条件(例えば時間帯)を付加したいときにこのconditionsを使用します。(この項目は増やすこともできますし、省略も可能です。
Google Homeスクリプト:conditions

トリガー1同様に編集画面の『- type:』にカーソルを当てると使用可能なトリガーが表示されるので、使いたいトリガーを選択し詳細を設定する事になります。
conditionsで使用可能なトリガー

ここから必要なトリガー2を選択し詳細を設定します。


- アクション: "actions"の書式

で、トリガー1・2の条件が揃ったときに何をするかがactionsです。
Google Homeスクリプト:actions

トリガー1・2同様に編集画面の『- type:』にカーソルを当てると使用可能なアクションが表示されるので、使いたいアクションを選択し詳細を設定する事になります。
actionsで使用可能なアクション

ここから必要なアクションを選択し詳細を設定します。


以上がスクリプトの概要ですが、これだけでは説明が不十分だと思いますので、実際にスクリプトを作ってみましたので以下紹介します。


●スクリプトの作成例

ここでは
  • トリガー1:"starters"『Google Nestに「こんばんは」と言ったら』
  • トリガー2(付帯条件):"conditions"『時刻が19:00-21:00の間なら』
  • アクション:"actions"『Google Nestに「はい、こんばんは」と喋らせる』
というスクリプトをお試しで作成してみました。


・スクリプトの作成

- トリガー1 :"starters" の作成

startersの『- type:』からGoogle Nestに話しかけるための『assitant.event.OKGoogle』を選択します。
startersの設定1:『- type:』で『assitant.event.OKGoogle』を選択

続いて『is:』欄にGoogle Nestに話しかける言葉『こんばんは』を入力します。
startersの設定2:『is:』で『こんばんは』の入力

以上で『starters』の設定は完了です。


- トリガー2(付帯条件) :"conditions" の作成

conditionsの『- type:』から時間帯を設定する『time.between』を選択します。
conditionsの設定1:『- type:』で『time.between』を選択

続いて『before:』欄から時刻単位を選択します。ここでは24時間表示の『HH:MM(24 hours)』を選択しました。
conditionsの設定2:『before:』で時刻単位の選択

終了時刻『before:』、開始時刻『after:』、適用曜日『weekdays:』を入力・選択します。
conditionsの設定3:『before:』『after:』『weekdays:』で適用時間帯・曜日を入力・選択

以上で『conditions』の設定は完了です。


- アクション: "actions" の作成

actionsの『- type:』からGoogle Nestに喋らせる(ブロードキャスト)ための『assistant.command.Broadcast』を選択します。
actionsの設定1:『- type:』で『assistant.command.Broadcast』を選択

続いて『message:』欄にGoogle Nestに喋らせる言葉『はい、こんばんは』を入力します。
actionsの設定2:『message:』で『はい、こんばんは』の入力

次は喋らせるデバイスの選択です。『device:』にカーソルを置くとGoogle Homeに登録しているデバイスが表示されるので、我が家のGoogle Nest『リビング- リビング』を選択します。
actionsの設定3:『devaice:』で『リビング - リビング(我が家のGoogle Nest)』の選択

以上で『actions:』の設定完了です。
『actions:』の設定完了


- スクリプト全体

以上で作成したスクリプトの全体はこんな感じです。

ーーー今回のスクリプト(お試しスクリプト)ーーー
 (" # ... "部分(黄色)はコメント(行)なので削除可能です。)
# ------------------------------------------------------------------------------------------ #
# Lines starting with “#” are comments and will be ignored by the automation.
# Indentation determines hierarchy within the script.
# Visit g.co/home/script-editor-docs for full documentation.
# ------------------------------------------------------------------------------------------ #

metadata:
  name: Untitled # Choose a short name that summarizes important starters and actions, like “Sunset lights”.
  description: Scripted automation # Write a detailed description that includes everything the automation does, like “At sunset, on weekdays, close blinds, turn on lights to 50%, and play the sunset playlist on certain speakers.”

automations:
  # “starters” and “actions” are required; “condition” is optional.
  # Use Ctrl + Space to see autocomplete suggestions.

  # ---- STARTERS ---- #
  # Starters describe events that will start the automation.
  # To add more than one starter, duplicate the "- type" section under "starters".
  # If you add multiple starter events, any one of them happening will start the automation
  starters:
    - type: assistant.event.OkGoogle
      eventData: query
      is: こんばんは

  # ---- CONDITIONS ---- #
  # Conditions are optional. Delete this section if it’s empty.
  # Conditions will prevent an automation from starting if the conditions aren’t met.
  # See g.co/home/script-editor-docs for documentation about how to use logical operators like “and”, “or”, “not”.
  condition:
    type: time.between
    # Optional. Accepts either clock time (10:00:00 AM, with seconds optional, or in a 24 hour format), or 'sunrise' or 'sunset', with an optional offset ('sunrise+10m', for instance)
    before: 19:00 # HH:MM (24 hours format). Adjust time as needed
    # Optional. Accepts either clock time (10:00:00 AM, with seconds optional, or in a 24 hour format), or 'sunrise' or 'sunset', with an optional offset ('sunrise+10m', for instance)
    after: 21:00 # HH:MM (24 hours format). Adjust time as needed
    # Optional. Days of the week to apply condition on.
    weekdays:
      - MON
      - TUE
      - WED
      - THU
      - FRI
      - SAT
      - SUN

  # ---- ACTIONS ---- #
  # Actions will start when a starter event takes place and all conditions are met.
  # Actions will start in the order they appear in the script, and with any delay specified.
  # To add more than one action, duplicate the "- type" section under "actions".
  actions:
    - type: assistant.command.Broadcast
      message: はい、こんばんは
      devices: リビング - リビング
ーーー今回のスクリプト [おわり]ーーー


・スクリプトのデバッグ(検証)

作成したスクリプトをデバッグ(検証)するにはスクリプトエディタの左下の『検証』をクリックします。
スクリプトのデバッグ(検証)

デバッグ(検証)結果は左下に表示されます(上図の黄色部)。今回はエラーなしですね。


・スクリプトの名称設定・有効化・保存

- スクリプトの名称設定:"metadata"

作成したスクリプトの名称はスクリプトのテンプレートの上の方にある『metadata:』欄に入力します。
metadata欄

この『Untitled』と『Scripted automation』のところに好きな名称と詳細(説明)を記載します。

で、今回はこんな感じにしてみました。

ーーースクリプトの"metadata"部分ーーー
 (" # ... "部分はコメントです。)
metadata: # スクリプトの名称など
  name: スクリプト『こんばんは』 # 本スクリプトの名称 
  description:Google Homeのスクリプト例 # 本スクリプトの詳細(説明)
ーーースクリプトの"metadata"部分 [おわり]ーーー

これでスクリプトの名称の設定は完了です。


- スクリプトの有効化

作成したスクリプトを有効化(実行)するにはエディタ画面右下の『有効にする』を選択します。
スクリプトの有効化


- スクリプトの保存

作成したスクリプトを保存するにはスクリプトエディタの左下の『保存』ボタンをクリックします。
スクリプトの保存

保存後にGoogle Homeのホーム画面に戻るとmetadataの『name:』に記載した名称(ここでは”スクリプト:『こんばんは』”)でスクリプトが表示されます。
Google Homeのホーム画面


- スクリプトの実行

スクリプトの保存後にGoogle Nestに「こんばんは」と話しかけれると19:00-21:00の間の時間帯であれば「はい、こんばんは」と応えてくれます♪


●使用感

スクリプトと言う割には簡単な使い勝手です😋。

まだ使える範囲(トリガー・アクション等)が従来のGoogle Homeのルーティンで出来ている範囲を越えていなような感じ(というかパブリックプレビュー版なので出来ることがまだ少ない?)ですが今後に期待ですね。


●改善要望点

サクッと使っただけなのでまだまだ分かっていないところが多いのですが、せっかくスクリプトに対応したので以下は実現して欲しいところです。
  • トリガーとしてWebhooksに対応して欲しい
  • 他のヒトが作ったスクリプトをインポートできるようにして欲しい
  • ノーコード風のUIにして欲しい
    • このスクリプトの構造は簡単だと思うのでフローチャート風のUIにして欲しいなぁ、と思います。
フローチャート風UIの例(リンク(本ブログ内):『スマホ自動化:TaskerではなくてAutomateを使ってみる』)

以上、既に実現できていることもあるかもしれませんが😅。


●まとめ

パブリックプレビュー版なのでまだ完成度が低いところはありますが)使い勝手も良く、とにかくスマートホームをより便利にするためには期待大です!
今後も引き続きウォッチしていきますし、良い使い方を思いついたら紹介しますね😋。


本記事を書くに当たっては以下の記事(Webサイト)をとてもとても参照しています🙇🏻‍♀️🙇🏻‍♀️🙇🏻‍♀️。
私の本記事で分かりづらいところはぜひ参照ください。

参照リンク:


0 件のコメント: