LGのテレビ内蔵のAlexa経由でアラートを出してみた

テレビを見ていたりPCで作業しているときだとスマホに通知(リマインダ)を出しても気づかないので、テレビに通知を出せないか、調べていたのですが、所有しているLGのテレビ(2020年モデル)だとAlexaが内蔵されているので、これを通知に使えないか、試してみました。

まず最初に、昨日記事に書いたプロアクティブイベントAPIによる通知を試しました。結果、通知を送ることはできたのですが、残念ながら、画面には通知があったことを知らせてくれませんでした。本来のAlexaなら光って教えてくれるようですが、テレビ向けAlexaは特に知らせてくれないようです。ちなみに「Alexa,通知ある?」と聞いたらちゃんと送った通知の内容をしゃべってくれます。

そこで、次に試したのが、Alexaを任意のタイミングでしゃべらせるツールです。alexa_remote_controlというツールですが、このスクリプトに必要な情報を書き込んでおけば、実行すると指定した文言をしゃべらしたりできるとのことです。

早速試してみたのですが、必要な情報の中にリフレッシュトークンがあり、これを取得するのに少し手間取りました。alexa_cookie-cliというツールを使えばリフレッシュトークンを取得できる、とのことでやってみたのですが、dockerコンテナ内で認証サーバを起動し、ホストPCから接続してみたところ、ログイン画面が出ずにQRコードが出てスマホアプリで開け、と出てしまう(指示通りスマホアプリで開いても認証できない)のです。デフォルトでは認証サーバを起動したマシンから直接ブラウザでアクセスするようなので、VirtualBoxでubuntuのVMをGUIモードで起動し、npmを直接VMにインストールしてこのツールで認証サーバを起動したところ、今度はアマゾンのログイン画面が出て無事認証できました。認証サーバへのアクセスにはVM内のChromeを使用しました。

無事リフレッシュトークンが取得できたので、alexa_remote_controlのスクリプトのSET_REFRESH_TOKENにセット(それ以外の情報はこちらを参照してセット)し、以下のようなコマンドを実行しました。

./alexa_remote_control.sh -e "speak:もうすぐ地震が来るよ。気を付けよう。"

すると期待通り画面に上記の文言が表示(キャプションONにしている)され、発話しました。この方法だと、PCで作業中でも、テレビ番組視聴中でも、ゲームで遊んでいても、アラートが出せるので非常に便利です。もちろんテレビを消した状態だとアラート来ませんが。あと、なぜかスクリプトを実行してもアラートが出ないこともあったので、多少動作が不安定のようです。

Comments

Copied title and URL