こんにちは。今回紹介するTaskerレシピは、任意のGoogleアシスタントのコマンドを実行する方法です。
TaskerからGoogleアシスタントのコマンドを直接実行する方法を調べたところ、AutoVoice(有料プラグイン)や2014年の古い記事しか見つからなかったため、記事にしました。この方法では、少々アナログチックですがプラグインを使わずに実行できます。
※2023/10/7 アシスタントのデフォルト入力をキーボードにした場合にうまく動作しなくなったため、AutoInputのプラグインを使った方法に修正しました。
※2023/10/9 いただいたコメントより、アシスタントを起動した際に、真ん中に「Googleレンズ」「マイク」「キーボード」が統合されたアイコンが出てくる場合の対応方法についてアシスタントの挙動が異なる場合
として追記しました。
※2023/12/04 いただいたコメントより、キーボードを優先にする設定項目が削除された場合の対応レシピ
を追記しました。
他のTaskerレシピについては以下を参照ください。
はじめに
Taskerから任意のGoogleアシスタントコマンドを実行することで、Googleホームに登録している照明やエアコンなどのスマートデバイスを操作することができます。帰宅時、外出時のルーティンはデフォルトの機能でありますが、Taskerを用いることで更に複雑な条件をトリガーにすることができます。
必要なもの
- Androidスマートフォン
- Tasker(有料アプリ)
- AutoInput(有料プラグイン)
作り方
タスクの作成
以下のタスクを作成します。
- ボイスコマンド(アシスタント)を起動します
- AutoInputプラグインを用いて、右下のキーボードボタンを押します
- 1秒待ちます(端末の環境に応じて変更してください)
- 任意のコマンド(例:電気つけて)をキーボードで打ち込み、エンターを押します
それでは作成の手順です。まずはTaskerを開いて、TASKS
タブを選択します。
+ボタンをタップして任意の名前を入力してチェックマークをタップします。(記事では例としてTurnOn
としました)
+ボタン > Input > Voice Commandを選択します。
次に、アシスタントが起動した後に右下のキーボードを押すコマンドを作成します。
+ボタン > Plugin > AutoInput > Actionを選択します。
Configurationのボタンを押します。
Easy Setup
を選択します。
するとホーム画面に戻り、上記の通知が表示されるので、Add
を押したあとにアシスタントを起動します。(Pixelのデフォルトは電源ボタン長押しです)
右下のキーボードアイコンをタップします。
すると、上記の通知が表示されるので、Accept
をタップします。
アプリ履歴から、Taskerを再度開きます。
フィールド選択画面が表示されるので、Element Id~
をタップします。
Click
をタップします。
AutoInput Actionが上記のような設定になっていればOKです。これでキーボードのアイコンがタップされるようになりました。
+ボタン > Task > Waitを選択して、1 Secondsに設定します。(遅延時間は端末の環境に応じて変更してください)
+ボタン > Input > Keyboardを選択して、Inputの虫眼鏡アイコンから、Enter Text
をタップします。続いてダイアログにGoogleアシスタントで実行したいテキストを入力します。(例:電気つけて)
以下に参考動画を貼ります。
再びInputの虫眼鏡アイコンから、Enter
をタップします。Key Modifierが出ますが、何も選択せずに、適当な場所をタップして戻ります。Input
には、write(コマンド),Enter
と入力されていればOKです。
以下に参考動画を貼ります。
概要コード
作成したタスクのコードは以下です。
Task: TurnOn
A1: Voice Command
A2: AutoInput Action [
Configuration: Type: Id
Value: com.google.android.googlequicksearchbox:id/nga_input_plate_right_icon
Action : Click
Timeout (Seconds): 5
Structure Output (JSON, etc): On ]
A3: Wait [
MS: 0
Seconds: 1
Minutes: 0
Hours: 0
Days: 0 ]
A4: Keyboard [
Input: write(電気をつけて),Enter
Time Between Inputs: 500 ]
活用例
作成したタスクの活用例を紹介します。
NFCタグと組み合わせる
NECタグにスマホをかざすことで、任意のGoogleアシスタントコマンドが実行できます。
プロファイルから、+ボタン > Event > Net > NFC Tagを選択します。
IDの虫眼鏡アイコンからNFCタグをスキャンして設定します。タスクは先程作成したものを設定します。ただし、スマートフォンがロック解除された状態でないとNFCタグが読み込まれないため注意してください。
私は10枚セットで1000円以下のものを購入しました。意外と安いです。
ウィジェットの作成
作成したタスクはホーム画面からウィジェットして呼び出すことができます。
ウィジェットを作成して実行するまでの操作を動画にしました。
まず、ホーム画面上でロングタップして、Taskerのウィジェットを追加します。
タスク1×1を選択します。
ロングタップして、配置する際に以下のエラーが出ることがあります。指示通り、Taskerアプリを開いて戻る
を実行してアプリを終了しましょう。
ショートカットが配置できたら、タスクの選択画面が出ます。先程作成した、タスクを選択しましょう。ホーム画面にアイコンが追加されたら完了です。
アシスタントの挙動が異なる場合
いただいたコメント(アンドレ日本様)より、アシスタントを起動した際に、真ん中に「Googleレンズ」「マイク」「キーボード」が統合されたアイコンが出てくる場合の対処法を紹介いただきました。
統合されたアイコンをAutoInputのEasySetupで押した際の要素はcom.googleandroid.googlequicksearchbox:id/opa_chat_ui
と表示され、キーボードを起動できなかったそうですが、以下のタスクで動作確認したとのことです。
タスク: テスト
A1: アプリ起動 / Launch App [
パッケージ/アプリ名: アシスタント ]
※アシスタントを起動することで、音声入力ではなくキーボード入力が
優先になるのでこちらにしました。
A2: AutoInput Action [
設定: Type: Text
Value: メッセージを入力
Text to Write : リビング照明をつけて
Action : Write
タイムアウト (秒): 23
構造を出力 (JSONなど): オン ]
※アシスタントを起動した際に入力エリアに記載されている”メッセージを入力”を
ターゲットとして選択させ、さらにコマンドをセットさせています。
A3: キーボード / Keyboard [
入力: Enter
入力間の時間: 500 ]
※最後に確定させるためにEnterを入力。タスクの2でEnterも同時に設定できれば
この項目は不要ですがやり方がわかりませんでした・・・。
有益な情報をありがとうございました。
キーボードを優先にする設定項目が削除された場合の対応レシピ
いただいたコメント(こと様)より、アシスタント起動した時、キーボードを優先にするという設定項目が削除されて表示されない場合の対応レシピについて紹介いただきました。TaskerプラグインのTouchTaskを使い、画面の座標を指定してキーボード入力を実行しています。(他のTasker記事で使っているAutoInputでも代用可能です)
1. Launch App
Package/App Name アシスタント
2. Wait
1 Second
3. Actions
Configuration Action: Tap Method: Point (x,y)…
4. Keyboard
Input write(電気つけて), wait (1000),Enter,Back
座標値「Point(x, y)」は画面の表示サイズや、端末の解像度に依存することにご注意ください。
有益な情報をありがとうございました。
おわりに
Googleアシスタントに任意のコマンドを実行することで、スマートデバイスを間接的にTaskerから簡単に操作することができます。スマートフォンの操作だけではなく、家電の操作ができるようになるため、かなりできることが広がったと思います。ぜひ活用してみてください。
google検索から来ました。
ずっとNFCで家電を操作したくて試行錯誤してましたが漸く同じ志の記事を見つけて
設定してみましたが、VoiceCommandが起動すると音声入力となってしまいコマンドが
実行できず。
アシスタントの優先入力はキーボードにしていますが、VoiceCommandで呼び出した際のデフォルトの仕様が変更となってしまったんですかね。
何か対策・回避策あればご教授していただけませんでしょうか・・・。
アンドレ日本様
コメントいただきありがとうございます。
当方でもキーボードで入力できなくなったことを確認しました。
AutoInputプラグインを使った方法にはなってしまいますが、アシスタントを起動した後に右下のキーボードアイコンを押すように記事を修正いたしました。
よろしくお願いいたします。
回答ありがとうございます!
自分の場合はアシスタントを起動した際、
右下ではなく真ん中に「Googleレンズ」「マイク」「キーボード」が統合された
アイコンが出てきてしまい、AutoInputのEasySetUpの際Element IDには別のもの
(com.googleandroid.googlequicksearchbox:id/opa_chat_ui)が表示されるので
うまくキーボードを起動できませんでした。機種は機種はPxcel7aです。
代わりに入力エリアを選択するよう、以下のように組んでみたところ
無事動作したのでご報告です。
<タスク設定内容>
タスク: テスト
A1: アプリ起動 / Launch App [
パッケージ/アプリ名: アシスタント ]
※アシスタントを起動することで、音声入力ではなくキーボード入力が
優先になるのでこちらにしました。
A2: AutoInput Action [
設定: Type: Text
Value: メッセージを入力
Text to Write : リビング照明をつけて
Action : Write
タイムアウト (秒): 23
構造を出力 (JSONなど): オン ]
※アシスタントを起動した際に入力エリアに記載されている”メッセージを入力”を
ターゲットとして選択させ、さらにコマンドをセットさせています。
A3: キーボード / Keyboard [
入力: Enter
入力間の時間: 500 ]
※最後に確定させるためにEnterを入力。タスクの2でEnterも同時に設定できれば
この項目は不要ですがやり方がわかりませんでした・・・。
アンドレ日本様
ご丁寧にタスク内容をご教授いただきありがとうございます。
タスク内容を記事に追記いたしました。
ちなみに、私もPixel7aでタスクを動作させており、Androidのバージョンが原因かと推測して14にアップデートしましたが、アシスタント上に統合されたアイコンは表示されませんでした…
無事に動作したようで何よりです。
はじめまして。
NFCで操作してくて色々検索してたどりつきました。
さっそくtaskerをインストールして試してみましたがAndroid13Xperia5IVなんですが、どうやっても無理そうな感じです。
まずkuimalさんのレシピをやってみましたが統合されたアイコンで不可能でした。
それでアンドレ日本さんのやり方をやろうとしましたがアシスタント起動した時、キーボードを優先にするという設定項目が削除されてるみたいで再現不可能でした。
tasker入れてから3日くらいで今日始めてTASKSをいじりました。
taskerのこと調べていたらTouchTaskの存在を知ってそれを使ってみました。
それでアンドレ日本さんのを参考にして、こんなふうに組んでみました、一応動くんですけどもうちょっと軽量化出来そうな気がするんですけど、なにせTASKSをいじったのは今日始めてなので私にはこれが限界です、軽量化出来るようでしたら、お願いします。
1. Launch App
Package/App Name アシスタント
2. Wait
1 Second
3. Actions
Configuration Action: Tap Method: Point (x,y)…
4. Wait
1 Second
5. Keyboard
Input write(電気つけて), Enter Time Between I…
6. Wait
1 Second
7. Back Button
ちょっと自分でいじってみました。
4と6番目のWaitなくても動くのがわかったので削除
それで4番目の命令文の後に1秒置いてからエンター押すようにしました。
命令した後すぐエンター押すと偶に決定されないことがあるので入れました。
7番目のBack Buttonでアシスタント終了させていたのを削除して、4番目のキーボード命令の最後にBackを入れてアシスタント終了させるようにしました
機種の処理速度によってアシスタントの起動時間とか変わると思うのでWaitは自分の機種に合わせないと駄目な気がします。
1. Launch App
Package/App Name アシスタント
2. Wait
1 Second
3. Actions
Configuration Action: Tap Method: Point (x,y)…
4. Keyboard
Input write(電気つけて), wait (1000),Enter,Back
こと様
コメントいただきありがとうございます。
キーボードを優先にする設定項目も削除されていたのですね。
それに対するレシピを載せてくださり感謝します。
入力ボタンのUI名ではなく、TouchTaskプラグインで画面の座標を指定してキーボード入力する方法ですね。記事の内容を更新しました。
ご存知だとは思いますが、座標値は画面の表示サイズや、端末の解像度に依存することにご注意ください。
また、遅延時間についてですがおっしゃるとおり、waitの時間は端末のスペックやメモリの使用状況によっても変わるので、適宜調整する必要があります。想定よりも長めに遅延時間を設定すると失敗するパターンが減ると思います。
キーボード優先のやり方調べると、その項目がなくなってるって感じでした。
最初Wait0.5秒でやってみたんだけど、結構動いてたんですけど、偶に失敗するので1秒に落ち着きました。
AutoInputまだ使い方よくわからないんですよね、とにかくキーボードを選択する方法を調べていたらTouchTaskで画面をタップできるのがわかり使ってみました。
出来上がったせいかAutoInputの使い方を調べる気力が現在なくなってますw