引き続き何も買わずにスマートホーム作戦。といってもiPhoneとAndroidTV BRAVIAがある前提ですが。iOSのショートカット を利用してAndroidTVを操作します。今度はようやくテレビのベーシック機能のチャンネル操作編。iPhoneに話しかけると希望のチャンネルに変えてくれます。
iPhoneのHey Siriはスマートホームの窓口
iPhoneだけでアンドロイドテレビを操作するコーナー(?)も三回目ですが、これまではREST APIを使用してテレビをスマートホーム化して参りました。
何故か妻からの評判は良くないものの、子供たちはキャピキャピとiPhoneに話しかけてテレビを操作しています。リモコンでポチポチするよりか楽だと思うんだけどなー。一発で操作できる利便性は抜群なのに。
で、今回の記事はようやくチャンネル操作です。何故こんな機能が3回目かというと…チャンネルはどちらかというと一発で変えられますからね…
しかしながらどのご家庭でもちょくちょく現れる「妖怪リモコン隠し」。こやつにリモコン隠された時にチャンネル変えられると便利だと思い、作るに至ったわけです。よく出ますよね、あいつ。
今回はIRCC-IPを使ってリモコンを模擬!
これまでのBRAVIA操作では、公開されていたREST APIを使っていましたが、今回はIRCC-IPを使います。全部一つのAPIで操作させてくれればいいものを、これまた違うIFを使います。何で何でしょね、こう、操作毎に分けるってのは。
IRCC-IPは、「InfraRed Compatible Control over Internet Protocol」の略で、要は普通の赤外線リモコンのコマンド操作をインターネットプロトコルで同じことさせましょってことです。
名前こそ違えど、HTTPプロトコルでやるってんならREST APIと何が違うのでしょうか。素人にゃわかりません。
これまた公式サイトに細かいことは書いてありますので、よく読んでください。実はよく読まなくても次のレシピ真似すればHey Siriでリモコン操作できるキューピー3分間クッキング形式ですけども!
iOSのショートカットのレシピ
作り方としては、これまで2STEPでしたが、今回は1STEP増えて3STEP構成となります。実はわりとはまりましたが、真似すれば皆様はスムーズにできるはずです。
全体像はこんな感じ。テキスト作って、いつものURLを指定して、POSTする。この3STEPです。
STEP1:コマンドを作成する[テキスト]
まずは+ボタンを押して、テキストのオブジェクトを作成します。
中身は以下を貼り付けてください。
<s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/” s:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
<s:Body>
<u:X_SendIRCC xmlns:u=”urn:schemas-sony-com:service:IRCC:1″>
<IRCCCode>AAAAAQAAAAEAAAAAAw==</IRCCCode>
</u:X_SendIRCC>
</s:Body>
</s:Envelope>
ここでで囲まれているタグの中身がポイントです。赤字のところですね。ここのコードを変えることでチャンネル操作を変えることができます。上記の例だと「1」ボタンを押す。東海だとフジテレビですね。「フジテレビつけて」って言うと、iPhoneがリモコンの「1」を押したフリしてAndroidTVに通信して、テレビがフジテレビに変わると言う仕組みです。
コードは公式ページに書いてありますので、都度ここを変えて実行したいリモコン操作を選んでください。
STEP2:テレビのアドレスを指定[URL]
これはいつものこれです。
最後が「IRCC」になっていることに注意してください。
STEP3:BRAVIAに語りかける[URLの内容を取得]
これもいつものですが、中身が微妙に違います。
ポイント1はヘッダ部。以下のヘッダ項目を追加します。
テキスト部の入力には「”」を忘れない様にしてください。ここで自分はハマりまくりました…
ポイント2は本文を要求部。これはファイルにして、先ほど作ったテキストを紐付けてください。
これでショートカット を実行したらテレビが勝手に変わる!テストで急に変えたら妻が怒った!!
まとめ
ということでついにはリモコンすらいらない状態になりました。変数使えばHey Siri!じゃなくてiPhoneの画面操作でリモコン代わりに使えそうです。自分は特にその需要はないのでもし需要があれば作りますが…こんな弱小サイト見てる人いないから要望なんてないでしょうね!
コメント
ntwmachineさん
めっちゃ感動しました。
今までAndroidTVなBRAVIA持ってたのに「アレクサ!テレビつけて!」しか使っておらず、
不便だなぁと思っておりました。。
まさに目から鱗です、ありがとうございます!
チャンネル変えるエントリは試せてないんですが、確かにほとんどリモコン触らずiPhoneかiPadで完結できるといいですね!
コメントありがとうございます!
AndroidTVって色々なことができる反面、そのアプリや機能に到達するのにリモコンポチポチと前時代的なんですよねー。自分の機種は若干古いので、反応速度にイライラしますし…
一発で呼び出せる便利さと、ザ・スマートホーム!って感じでいいですよねw
貴重な情報、ありがとうございます。
見よう見まねでやってみたのですが、作動させると、UPnPError〜なんたらかんたらという文字が返ってきて、チャンネルが変わりません。errorCode 401がどうとか…
REST APIの電源コントロールはうまくいったのですが…。
ちなみに文字に誤字脱字はありません。何か思い当たる原因がございましたら、ご教授いただけますか?
ntwmachineさん
かなり昔の記事に突然コメントしてすみません。先ほどこれを試してみたのですが、全く同じ手順で組んだにも関わらず以下のようなエラーが出てしまいます。原因をご教示していただけますでしょうか。
s:Client
UPnPError
401
Invalid Action
IRCCではなくREST APIを用いた操作は問題なく行えており、色々見直したのですが行き詰ってしまった状態です。。。
moby dickさんの書き込みと同じ状態のようですね。
試しにコマンドを一部破壊したところ同じエラーが返ってきました。
・テキストの中身を壊す
・SOAPACTIONの中身を壊す
ネット見てみると、20年のモデルでもIRCCコードをgetRemoteControllerInfoで取得できているみたいですし…
マニュアルにはないですが、送らなければならないコマンドが変更になったのかも知れません。