iPhoneだけでAndroidTVを操作する:チャンネル操作編

iPhoneだけでAndroidTVを操作する:チャンネル操作編 AndroidTV
スポンサーリンク

引き続き何も買わずにスマートホーム作戦。といってもiPhoneとAndroidTV BRAVIAがある前提ですが。iOSのショートカット を利用してAndroidTVを操作します。今度はようやくテレビのベーシック機能のチャンネル操作編。iPhoneに話しかけると希望のチャンネルに変えてくれます。

スポンサーリンク

iPhoneのHey Siriはスマートホームの窓口

iPhoneだけでアンドロイドテレビを操作するコーナー(?)も三回目ですが、これまではREST APIを使用してテレビをスマートホーム化して参りました。

iPhoneだけでAndroidTVを操作する:電源操作編
iPhoneだけでAndroidTVを操作する:電源操作編
今あるものでスマートホーム大作戦。今回は、AndroidTVをiPhoneで操作させます。スマートスピーカーなんてなくてもiPhoneにはSiriがいます。このSiriさんの力をもらって「Hey Siri!テレビつけて」編です。通信さえできればこっちのもんっす。
iPhoneだけでAndroidTVを操作する:アプリ一発起動編
iPhoneだけでAndroidTVを操作する:アプリ一発起動編
今あるものでスマートホーム大作戦。iPhoneでAndroidTVを操作します。前回は電源をON/OFFしましたが、今回は直接アプリケーションを起動させます。アプリケーションの起動って、わざわざ選ばないといけないからめんどくさいんですよねー。

何故か妻からの評判は良くないものの、子供たちはキャピキャピとiPhoneに話しかけてテレビを操作しています。リモコンでポチポチするよりか楽だと思うんだけどなー。一発で操作できる利便性は抜群なのに。

で、今回の記事はようやくチャンネル操作です。何故こんな機能が3回目かというと…チャンネルはどちらかというと一発で変えられますからね…

しかしながらどのご家庭でもちょくちょく現れる「妖怪リモコン隠し」。こやつにリモコン隠された時にチャンネル変えられると便利だと思い、作るに至ったわけです。よく出ますよね、あいつ。

今回はIRCC-IPを使ってリモコンを模擬!

Ch select

これまでのBRAVIA操作では、公開されていたREST APIを使っていましたが、今回はIRCC-IPを使います。全部一つのAPIで操作させてくれればいいものを、これまた違うIFを使います。何で何でしょね、こう、操作毎に分けるってのは。

IRCC-IPは、「InfraRed Compatible Control over Internet Protocol」の略で、要は普通の赤外線リモコンのコマンド操作をインターネットプロトコルで同じことさせましょってことです。

名前こそ違えど、HTTPプロトコルでやるってんならREST APIと何が違うのでしょうか。素人にゃわかりません。

概要 | BRAVIA Professional Displays Knowledge Center
Provides Technical Information, including Specs, Software Development Information, Software Downloads, Manuals, Instruct...

これまた公式サイトに細かいことは書いてありますので、よく読んでください。実はよく読まなくても次のレシピ真似すればHey Siriでリモコン操作できるキューピー3分間クッキング形式ですけども!

iOSのショートカットのレシピ

作り方としては、これまで2STEPでしたが、今回は1STEP増えて3STEP構成となります。実はわりとはまりましたが、真似すれば皆様はスムーズにできるはずです。

IOS ShortCut

全体像はこんな感じ。テキスト作って、いつものURLを指定して、POSTする。この3STEPです。

STEP1:コマンドを作成する[テキスト]

まずは+ボタンを押して、テキストのオブジェクトを作成します。

IOS text

中身は以下を貼り付けてください。

<?xml version=”1.0″?>
<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に通信して、テレビがフジテレビに変わると言う仕組みです。

コードは公式ページに書いてありますので、都度ここを変えて実行したいリモコン操作を選んでください。

IRCCコード | BRAVIA Professional Displays Knowledge Center
Provides Technical Information, including Specs, Software Development Information, Software Downloads, Manuals, Instruct...

STEP2:テレビのアドレスを指定[URL]

これはいつものこれです。

IOS URL

最後が「IRCC」になっていることに注意してください。

STEP3:BRAVIAに語りかける[URLの内容を取得]

これもいつものですが、中身が微妙に違います。

IOS URL Para

ポイント1はヘッダ部。以下のヘッダ項目を追加します。

SOAPACTION : “urn:schemas-sony-com:service:IRCC:1#X_SendIRCC”

テキスト部の入力には「”」を忘れない様にしてください。ここで自分はハマりまくりました…

ポイント2は本文を要求部。これはファイルにして、先ほど作ったテキストを紐付けてください。

これでショートカット を実行したらテレビが勝手に変わる!テストで急に変えたら妻が怒った!!

まとめ

ということでついにはリモコンすらいらない状態になりました。変数使えばHey Siri!じゃなくてiPhoneの画面操作でリモコン代わりに使えそうです。自分は特にその需要はないのでもし需要があれば作りますが…こんな弱小サイト見てる人いないから要望なんてないでしょうね!

コメント

  1. サリー より:

    ntwmachineさん

    めっちゃ感動しました。
    今までAndroidTVなBRAVIA持ってたのに「アレクサ!テレビつけて!」しか使っておらず、
    不便だなぁと思っておりました。。
    まさに目から鱗です、ありがとうございます!
    チャンネル変えるエントリは試せてないんですが、確かにほとんどリモコン触らずiPhoneかiPadで完結できるといいですね!

    • ntwmachine より:

      コメントありがとうございます!

      AndroidTVって色々なことができる反面、そのアプリや機能に到達するのにリモコンポチポチと前時代的なんですよねー。自分の機種は若干古いので、反応速度にイライラしますし…

      一発で呼び出せる便利さと、ザ・スマートホーム!って感じでいいですよねw

  2. moby dick より:

    貴重な情報、ありがとうございます。
    見よう見まねでやってみたのですが、作動させると、UPnPError〜なんたらかんたらという文字が返ってきて、チャンネルが変わりません。errorCode 401がどうとか…

    REST APIの電源コントロールはうまくいったのですが…。
    ちなみに文字に誤字脱字はありません。何か思い当たる原因がございましたら、ご教授いただけますか?

  3. のん より:

    ntwmachineさん

    かなり昔の記事に突然コメントしてすみません。先ほどこれを試してみたのですが、全く同じ手順で組んだにも関わらず以下のようなエラーが出てしまいます。原因をご教示していただけますでしょうか。




    s:Client
    UPnPError

    401
    Invalid Action

    IRCCではなくREST APIを用いた操作は問題なく行えており、色々見直したのですが行き詰ってしまった状態です。。。

    • ntwmachine より:

      moby dickさんの書き込みと同じ状態のようですね。
      試しにコマンドを一部破壊したところ同じエラーが返ってきました。
      ・テキストの中身を壊す
      ・SOAPACTIONの中身を壊す
      ネット見てみると、20年のモデルでもIRCCコードをgetRemoteControllerInfoで取得できているみたいですし…
      マニュアルにはないですが、送らなければならないコマンドが変更になったのかも知れません。

タイトルとURLをコピーしました