週休3日サラリーマンのブログ

空気を読まないサラリーマンをやってます。1980生まれ男です。既婚。2011年生まれ息子、2013年生まれ娘あり。

(Nature Remo)(iPhone)アプリ起動を待たずにリモコン信号を送出する

中学受験を控えた息子が休憩時間の10分間を超えてテレビを見続けようとするため、テレビのリモコンの電源ボタンが効かないように細工をし、スマホから電源を消す運用にした話を昨日の記事で書いた。

しかし、スマホの「Nature Remoアプリ」の起動が意外と遅くてイライラするという問題が発生した。アプリでテレビを操作した直後ならまたすぐにテレビの操作ができるのだが、しばらく時間を置くとホーム画面に戻ってしまい、「Nature Remoのタイトル画面表示」と「機器選択画面」を経てやっとテレビの操作が可能になる。この間、約10秒(体感)。これは地味にキツい。

そこで、「Nature Remoアプリ」を介さずスマホのホーム画面やウィジェット画面から直接テレビの電源ボタンの信号を送出することができるようにした。とても快適だ。

【前提条件】
・パソコン:Mac (Windowsでも良いが、curlコマンドが使えること)
スマホ機種:iPhone
・スマートリモコン機種:Nature Remo

調べてみると、「ローカルAPI」というのを使えばいいらしく、このページを参考にやってみた。
https://blog.yuu26.com/nature-remo-local-api/

まず、MacでRemoの「ローカルAPI」動作をテストする。

(なお、RemoのIPアドレスは我が家では「192.168.200.3」だが、これは環境により読み替える必要がある。)

(1)Remoに向けて、テレビのリモコンで「電源」信号を送る。(青く光ればOK)

(2)RemoのIPアドレスに向けて、次のcurlコマンドを実行する。

$ curl http://192.168.200.3/messages -H "X-Requested-With: local"

すると、次のように直前のリモコンの「電源」信号データがJSON形式で得られる。

{"format":"us","freq":38,"data":[8884,4540,496,625,493,623,499,621,503,618,550,563,550,570,504,1742,497,625,497,1745,492,1746,501,1742,497,1746,584,1661,492,1748,496,619,500,1747,545,575,495,1743,532,605,479,642,477,1747,497,617,500,625,496,623,496,1749,497,619,501,1744,494,1747,499,621,495,1749,495,1742,498,1745,497,40075,8882,2301,494]}

(3)先ほどの手順で得たリモコンの「電源」信号のデータをJSON形式でPOSTし、テレビのオン・オフができることが確認できればOK。

$ curl -XPOST http://192.168.200.3/messages -H "X-Requested-With: local" -d '{"format":"us","freq":38,"data":[8884,4540,496,625,493,623,499,621,503,618,550,563,550,570,504,1742,497,625,497,1745,492,1746,501,1742,497,1746,584,1661,492,1748,496,619,500,1747,545,575,495,1743,532,605,479,642,477,1747,497,617,500,625,496,623,496,1749,497,619,501,1744,494,1747,499,621,495,1749,495,1742,498,1745,497,40075,8882,2301,494]}'

次に、iPhoneの「ショートカット」機能で「電源オフ」のアイコン(ショートカット)を作るまでの手順。

・テキストモジュールに先ほどの手順で得たJSONデータを格納
・URLモジュールに”http://192.168.200.3/messages”を格納
・ネットワークモジュールでPOSTメソッドを送信する(テキストモジュールとURLモジュールに格納した値を使い、ヘッダには"X-Requested-With: local"をセットする)
・アイコンと名前を分かりやすいものにする(ここではアイコンを電源ボタンっぽいやつにして、名前を「テレビ電源リモコン」にした)

アプリ起動を待つ時間がなくなり、とても快適で満足だ。しかし、以下の2点だけちょっと心残りだ。
・「Nature Remo」製品の問題なのでどうしようもないのだが、送出する赤外線信号の強度が非常に弱いため、外来光が多い昼間だとテレビが応答しない場合が多い。
・RemoのIPアドレスを固定したかったので、RemoのMACアドレスに対してDHCPで配布するIPアドレスを予約する設定をしたのだが、なぜか何度やってもうまくいかなかった。SynologyのNASに対してはうまくいっている設定がなぜRemoに対しては働かないのか謎だ。IPアドレスがいつか変わってしまう可能性があり、そのときはスマホのショートカットの設定値を変えなければならない。