Google HomeからIFTTT経由でGoogleスプレッドシートに書き込んだ時、日付が記入されない

毎朝薬を飲んだかよく忘れるので、Google Homeに「OK, Google。薬を飲んだ!」って言っておけば日時をGoogleスプレッドシートに記録しておいてくれるレシピをIFTTTに作りました。

IFTTTのGoogle Driveアプレットで「Add row to spreadsheet」を選べば指定したファイル名の表計算ファイルの一番下に行を足してくれますが、その内容として、日時を書き込んでくれるはずの[CreatedAt]というコマンドが効きませんでした。本来は、「Formatted row」欄に「CreatedAt ||| 朝の服用完了」などとしておけば、|||がセルの区切りを意味するので、1列目に日時、2列目に「朝の服用完了」という文字が入るはずなのですが、1列目が空のままです。

ググったところ英語の掲示板で同様の疑問が呈されていて、どうもバグというか現時点の使用っぽいです。MESHなど他のトリガから呼び出した時にはちゃんと動いていたので、Google Assistantアプレットのバグか相性なんでしょう。

で、Google Spreadsheet側でのワークアラウンド(バグ回避方法)としてスクリプトを使って「表が更新されたら一番下の1列目に日付を入れる」という動作をさせるやり方が紹介されていました。

ちょっと動画とメニューの位置が違っていたり(スクリプトエディターのトリガ関連の項目が動画では「Resources」ですが実際には「編集」にあったり)、初回にスクリプトを実行させる許可ダイアログが出たりと動画の通りにはいかなかったですが一応できましたので参考にご紹介。

あとコピペ用にコードも貼っておきます。

地味に不便なので治るといいですね。

Google Homeのマルチユーザ機能を使いつつ、ショッピングリストは共有する

Google Homeでは「○○をショッピングリストに追加」と言うと、https://shoppinglist.google.com/というサービスの存在すら知らなかったリストに追加してくれます。おそらくGoogleサービスの中でも1,2を争うシンプルなサービスなんじゃないかとw。とはいえこういう買い物メモって料理中とか手が塞がってる時に気付くことが多くて、音声でメモできるのはなかなかに重宝します。

 

さて、一方Google Homeは複数のGoogleアカウントと紐付けて、それぞれ音楽のプレイリストを別個に利用するマルチユーザ機能があります。登録時に「OK, Google」と「ねぇ、Google」を2回ずつ言わされ、声を記憶されると、あとは特に名乗らなくても別人として認識され、それぞれのアカウントでサービスをしてくれます。

しかしこと我が家ではことショッピングリストについては共有できた方が便利。どうしたものかと悩みましたが、割とあっさり解決しました。ショッピングリスト自体に共有機能があり、Google Homeでもきちんとをそれを把握、反映してくれたのです。

やり方は簡単。写真右上に移っている「+」と人型のアイコンをタップし、共有したい人のgmailアドレスを入れ保存します。相手にメールが届き、リンクをタップして開くと共有したリストが見えます。さらに左上のハンバーガーアイコンを開き、「管理」をタップ。デフォルトの自分の「ショッピングリスト」と今共有されてきた「ショッピングリスト」が並び、おそらく前者に「メイン」とついています。共有されてきた方(たぶん下)の右端の三点アイコンをタップし、「メインのリストに設定」を選ぶ。これで文字通り、共有リストが「メイン」になるので、Google Homeからの書き込みもこちらに入っていくという寸法です。これで家族の誰が追加しても単一のショッピングリストに集約されるようになります。

Google Home日本上陸。衝動買いしてみた。IFTTTで家電制御も。

スマートスピーカーの大手御三家の日本一番乗りはGoogle Homeとなりましたね。トレッキーこじらせた音声認識マニアとしてあらゆる音声認識製品を何十年も買い続けてきましたが、なぜかいまいちスマートスピーカーは盛り上がらず(まぁ日本からは指をくわえてみてるだけだったせいもありますが)、国内発売の報せがきても即予約とかはしなかったんですが、発売日の今日、ビックカメラで2台2万円のアプリ通知が来ていて、友達と買えば実質1万円か!(定価は1.4万円)ということで急に買っても良いかという気になり、心当たりに打診したら一発同意。早速近所のビックxコジマで買ってきました。

「できること」はありこちの記事で書かれてますが、色々トラップもあったりなので、実際にできたこと、できなかったことをまとめてみます。

■できたこと

・基本操作

まぁ天気聞いたりは普通にできます。ただ月曜日が祝日なので何の日か聞こうとするも、「月曜日ななんの日」とかいうと「4」とか意味のわからない返事が返ってきたり、まぁちょっと複雑な質問はまだまだです。

感動したのはマイクの感度。リビングと寝室が隣り合った我が家で、リビングに設置して寝室ベッドに寝たまま問いかけてみたところ普通に認識しました。Future Home Controllerではマイクの感度がダメダメで実用性が大きく損ないましたが、これはバッチリです。「良かったら寝室にminiを追加」とか思ってましたが当面不要っぽいです。

また音楽が鳴っている最中でもちゃんと「OK, Google」というとミュートになってくれるのが立派。基本的な音声認識ハードとしては今まで試した中で最高の出来な気がします。

・Google Play Musicの曲を再生

これも問題なくできます。音質も期待よりは良いです。同居人はaccessのシンセの音が一部聞こえないと不満げでした。Blueairの空気清浄機(中身はけっこスカスカの鉄の箱)の上に置いたら低音が増しました(笑)。

ただしアルバムだのプレイリストだの細かい注文をコマンドに入れ込むと若干誤認識が増えて思いがけない曲がかかったりします。「アクセス」が「あくせく」になったりw。お気に入りのアーティストやアルバム名は優先的に認識辞書に入れてほしいものですが、クラウド音声認識は共通辞書なので難しいのかも知れません。

・Chromecastへのキャスト

後述のBRAVIA(AndroidTV)へのキャストができなかったので引き出しの奥から第2世代のChromecastを引っ張り出して来て試しました。さすがにこちらはあっさり動きました。「テレビ」という名前にしたとして、「テレビでNetflixのスタートレックディスカバリーを再生」などと言えば最新話が流れます。ちょっと長いですね?しかしスマホのGoogle Homeアプリからショートカットを設定できます。テキストからテキストへのユーザ辞書みたいなもので、「スタートレックを見る」と言えば上記のコマンドと同じ結果が得られます。「テレビでYoutubeの猫の動画」とか言えば、たぶん「猫」で検索した一位の動画かなにかでしょうが、とりあえず猫の動画が映ります。

・SONY SRS-HG1へのキャスト

 

同じくChromacst対応のSONYのWi-Fiスピーカー、h.ear goシリーズのSRS-HG1があったのでそちらへ音楽をキャストを試しました。結果的には動きましたが以下の点に注意が必要なようです。

・注意点1:部屋名とデバイス名を同じにしない

例えば「オフィスで(曲名)を再生」としたくてスピーカー名を「オフィス」にしたんですがなかなか認識してくれません。色々検証した結果、部屋名(という名前をつけていくつかのデバイスをまとめることができる)とかぶってたのが原因のようでした。「(部屋名)の(デバイス名)で…」のような言い方もできるのかも知れませんが、日本語ヘルプをみてもいまいちそのへんのコマンド例がのってなく)。

・注意点2:「(デバイス名)で」ではなく「(デバイス名)に」?

この辺りも経験則です。「オフィスに(曲名)を再生」の方が成功率が高い気がします。英語ではデバイスがon 〜、サービスがfrom 〜とわかりやすいんですが(例:Play Startrek from Netflix on TV)、日本語ヘルプではその辺の項目がごっそり抜けています。実はまだ実装されてないのかも知れません。

公式ではないにしろ、以上2点と気をつければ一応、Google Home本体とSRS-HG1に出し分けはできている気がします。単に「(曲名)を再生」でGoogle Home本体、「オフィスで(曲名)を再生」でSRS-HG1という感じです。ただし、再生状態でOK, Googleした時に本体はミュートになりますがSRS-HG1はなってくれないぽいです。

またスピーカーは「グループ」という機能でまとめて操作できます。これも「家中」と名付けて「家中で(曲名)を再生」としてみたところ「“やじゅうで(曲名)”はみつかりません」的なエラー。日本語は単語間に区切りがないので音声認識は難しいといいますが、やはりこういうところが不利ですね。意識して空白をあけるとそこで言い終わったと思われてやっぱり認識エラーになります。第三のポイントとしては、

・注意点3:認識名をあまり短くしすぎない

というのもありそうです。グループ名を「両方の部屋」にしたところ成功率が上がった気がします。まぁ、SONYのSongpalにも昔からグルーピング機能あるけどあんまり使ったことないので、これも結局使わないかも知れません。

・IFTTTで家電操作

Google Homeから操作できる家電製品としてApple Homekitなどでもメジャーなスマート電球のHueがプッシュされていますが、電球ソケットより直管やリングの蛍光灯器具の多い日本ではいまいち使いどこが難しいですよね。しかも結構いい値段する。

我が家ではもともとクラウドファンディングで先行販売されたNature Remoが配備済みです。この製品は主にエアコンをスマートに制御することを売りにしたスマートデバイスですが、実はまだそこらへんの制御ソフトの出来は必要最低限のことしかできません。しかしエアコン以外の赤外線信号も学習してスマホアプリから制御できます。そしてこのNature RemoもGoogle HomeもIFTTT(イフト)というサービスに対応しており、これを介することで、Google Homeに向かってしゃべった内容に応じてNature Remoから赤外線信号をとばすことができます!一般発売は10月半ばとあとちょっとだけ先ですが、Hueより安く汎用性も高いのでオススメです。

参考に実際の設定画面を貼っておきます。IFTTTはif this then thatの頭文字で、もしこうなったら(if this)と、あれしろ(that)のように条件と操作に色々なWebサービスを組み合わせて、自動的になにかを成すための条件として「Google Homeに特定の言葉で話しかけたら」を設定し、操作として「Nature Remoから指定の信号を発する」を設定するわけですね。写真はステップ毎の手順ではなく、設定完成後の画面を1枚で載せてます。

まずIFTTTの条件側アプレットにGoogle Assistantを選びます(初回にGoogleアカウントでログインして連動許可はしてあるものとします)。いくつかパターンがありますが「Say a simple phrase」を選びます。他に台詞中の数字やキーワードを操作側に渡せるパターンもあるみたいですが、たぶんNature Remoアプレット側が対応してないんじゃないかと思って試してません。「Say a simple phrase」は文字通り単純な固定フレーズを指定するだけのものです。ただし言い換えを2パターン含められます。つまり1つのやりたいことに対して3つの言い方を指定することができます。例えば「照明を消して」「電気を消して」「灯りを消して」など言い違いを登録しておけば、正確に登録した言葉を思い出せなくてもなんとかなるわけです。関係ないですが現在のiOS版のIFTTTアプリは日本語入力にひどいバグがあります。心が折れそうになりますが頑張って入力するか、メモかなにかで書いてコピペするといいでしょう。

「What do you want the Assistant to say in response?」欄は聞き取ったGoogle Homeになんと返事させたいかです。そしてLanguageでは当然Japaneseを選んでおきます。

次に操作側のアプレットにNature Remoを登録します。こちらも初期使用時にログインして許可を出すなど手続きが必要です。最初に「Turn off air conditioner」、「Turn on air conditioner」、「Control home appliances」という選択肢がでます。エアコンのオンオフ以外は3つ目を選ぶと、学習させた信号の一覧が出ますので、写真のように目的のものを選びます。

IFTTTは条件側、操作側たくさんのアプレットがありますので、Google Homeへの音声指示をトリガーにもっと色々なことができますし、逆に他の条件でNature Remoの操作もできます(ウチでは時刻やNetatomo Weather Stationで測っている室温に応じてエアコンの強弱を制御したりしています)。自分でAPIを叩くプログラムを書けるスキルがない人でも、ある程度応用範囲を広げられるので、オススメです。

■できなかったこと

・Android TVなBRAVIA(X9300c)にキャスト

これが最高に痛い。スタートレック・ディスカバリーも始まったし、前述のようなコマンドでぶりばり活用しようと思ったのに。これは明確に音声で「Android TVにはまだキャストできません」的なことを言われます。海外の掲示板で昨年末に対応したという記述もみるのですが日本版は別なんでしょうかね。ヘルプにも「Chromecast or built-in chromecast」みたいに書かれているのに。先行してる海外ではGoogle Cast ReceiverというAndroidTVアプリを1.2以上にあげろ、とありますが既にそれ以上のバージョンでした。またNetflixアプリが非対応なのかと思いきやYoutubeなどでも上手くいかないです。うーむ、時が解決するんでしょうか。

それまでのしのぎでChromecast Ultraを買うべきか悩みます。どのみち2014年BRAVIAはメモリも少なくAndroidTVとしての動作はもっさり&不安定なので、それがすべて改善するならと前々から気にはなってたんですが、ただUB90、BXT970、PS4Proと4K HDMIデバイスが多くもう飽和状態なんですよね。4ポートのあつ1つはAVアンプがつながってセレクタも兼ねてるし。これ以上セレクタかましたりしたら操作がややこしくなって同居人に怒られそうだし、、

 

発売発表時点では「いまさらかー」と萎え気味だったGoogle Homeですが、たまたま利用していたGoogle Play Music、Nature Remo、IFTTTといったサービス/デバイスとの相性の良さを発見し、かなり評価が上がってきました。現在ビックカメラグループなどで2台2万円で買って複数台で使うもよし、友達と割り勘で得するも良し、ちょっと高いなぁという人は下旬に出るGoogle Home miniを待つも良し。ともあれこれから来るといわれるポストスマホ時代、No UI時代の先行体験として一度触ってみるのをオススメします。