東京から、福島のラジオを聴きたい。Google Homeはまだradikoのエリアフリーには対応していないからIFTTTを使って自作する。
現状
・ラジコでエリアフリー会員になっている。
・RaspberryPi3 からラジコ(エリアフリー)を聴けるようになっている
・WebからRaspberryPiを操作できる機能を(phpで)実装している
なので、あとはIFTTTを使えば音声でラジコを再生できる。が、IFTTTはインターフェースにほんとセンスがない。
新規のIF...That条件をどの画面から作成(create)するか、とても分かりにくい。こうやる。
まずはIFTTTのサイトにいく。
右上のアカウントのアイコンをクリックして「create」を押して進む。
これでやっと「If...That画面」に行ける。
この画面を探し出すのに小1時間かかった。最初にこの画面に行って欲しい。IFTTTなんだから。
出てきた画面から「Google」で検索して Google Assistant をクリックする。
Say a simple phrase で最もシンプルなIF...that命令を作る。
「ねえGoogle、ふくしまFM」と話しかけたら「ふくしまFMを再生します」と返すように設定する。
ちなみにFM局は無数にある。自作のラジオ再生アプリつくったときのアイコンを参照にする。
これで ifにGoogle assistant の条件が入ったので
次は That にラジコ再生コマンド(RaspberryPiに投げるコマンド)を入れる。
That をクリックした画面から「web」で検索して
出てくる Webhooksから「Make a web request」 を使う。
URL欄は、自宅にあるRaspberryPi3 の外部ドメイン名で埋める。IFTTTのサーバからアクセスできるグローバルIPドメインである必要がある。
リクエストを受けるradio3.php(自作)はRaspberryPi3のApacheで動いていて、引数にラジオ局を渡せば(エリアフリー接続で)ラジオを再生し、HDMI接続したテレビのスピーカーからラジオ音声を流してくれるようになっている。ふくしまFMは「FMF」で、引数として渡している。
条件作成を完了するところで「Finish」を押し忘れるとせっかくいれた条件が保存されない。このへんもIFTTTの画面の(冗長で)センスがないところ。
条件ができた。
使ってみる。
「ふくしまFMを再生します」(テレビからラジオ音声が流れ始める)
完璧。
RaspberryPi3にwebリクエストでコマンドを流し込める機能をいろいろと作ってきたおかげで、そのコマンドをIFTTT経由で音声で流すとほぼ無限にいろんなことができる。
ホントいつも思うけど、ソフトウェア開発って「つながっていく」。一回考えて、試して、作ったものは無駄にならない。次につながる。UNIX哲学の「ソフトウェアのテコ」というやつだ。ほんと素晴らしい。
いろいろ試す。
追記)
ちなみに Amazon Echoのアレクサなら、IFTTTを使うまでもなくradikoのエリアフリーに対応している。さすがアマゾンというべきか。