スポンサーリンク

Homebridge経由でNature Remoの反応が遅い時の対処法

HomeKit
この記事は約6分で読めます。
スポンサーリンク

無事にHomebridge経由でNature Remoをホームアプリから操作できるようになっただろうか?

今回はNature Remoの仕様なのか、しばらくNature Remoを操作していないとスリープ状態?になり、ホームアプリからHomebridge経由でNature Remoを操作する(赤外線送信)と赤または緑色に点滅し、しばらく時間が経った後に赤外線送信が行われる(稀に何度もリトライを繰り返した挙句、赤外線送信できない場合もある)現象を改善しようと思う。

Local APIを使うときに起きるようで、Cloud API経由の場合は基本的に反応が遅いことはあまりないはずだ。

スポンサーリンク

改善方法

ダミーの赤外線送信指示をNature Remoに定期的に送信し、スリープ状態に入らないようにすることで、ホームアプリから待ち時間なくすぐに操作ができるようにする。

設定方法

ラズパイにログインしてディレクトリを作る

上記の参考記事で作業を行った後で、ラズパイの名前や設定等を変更している場合は変更後の名称、設定に当て変えて作業を行うこと。
全てMacのターミナルから実行している。
以下ではほぼ初期状態での説明である。

まずはラズパイにログインしよう。

$ ssh pi@raspberrypi.local

パスワードを入力し、ログインする。
パスワードを変更していない場合は「raspberry」だ。

次はなんとなく自分で作ったファイルは纏めておきたいのでディレクトリを作成する。

$ mkdir shell

無事「shell」ディレクトリが追加された。

lsコマンドでディレクトリ一覧表示。shellディレクトリが追加されていることがわかる。

ファイルをラズパイに転送する

curl -X POST 'http://Remo-XXXXXX.local/messages' -H 'X-Requested-With: curl' -H 'accept: application/json' -d '{"format":"us","freq":38,"data":[0,0,0,0,0,0,0,0,0,0,0,597,542,601,512,601,538,1714,514,1724,516,602,531,1730,505,0,516,0,537,0,504,0,514,604,537,1723,512,0,536,1714,515,1723,0,603,539,1722,515,0,515,600,541,602,513,1724,538,0,505,608,0,1715,515,603,512,1725,0,1718,0]}'

上記を全てコピーし、テキストエディタに貼り付けた後、XXXXXXの部分を自分のRemoのホスト名に変更する。
変更後はファイル名を「dummyir.sh」にしてデスクトップ上に保存しよう。(拡張子がtxtにならないよう注意)

このdummyir.shとして保存する内容は、私が適当にその辺にあった古いリモコンから取得した赤外線情報である。

ちなみにホスト名の確認方法は新しくターミナルを開いて以下のコマンドを打つと確認できる。

$ dns-sd -B _remo._tcp

結果表示されたInstance Name欄の内容がホスト名なので、それを貼り付けたXXXXXX部分にコピペしよう。

次にファイルをSCPで転送する。
新しいターミナルを開き以下のコマンドを打とう。

$ scp ~/Desktop/dummyir.sh pi@raspberrypi.local:~/shell/

これでデスクトップにあるdummyir.shをラズパイ上のpiユーザーのshellディレクトリに転送する。
パスワードが求められたらpiユーザーのパスワードを入力する。

実行権限付与

ラズパイにログインしているターミナルに戻り、以下のコマンドでshellディレクトリに移動する。

$ cd ~/shell

このまま実行すると許可がありません。となるので、実行できるように権限を与える。

$ chmod 755 dummyir.sh

権限を与えた後、以下のコマンドでdummyir.shを実行してNature Remo本体が青く点滅すればOKだ。

$ ./dummyir.sh

反応が返ってこなかった場合は、それこそRemoがスリープ状態になっている可能性があるので、control + Cで一度キャンセルしてもう一度実行してみよう。

dummyir.shを定期的に実行させる

今回の改善方法はdummyir.shを定期的に実行させ、Nature Remoをスリープ状態に入らせないようにし、赤外線送信指示があった場合即座に反応させるようにするのが目的であるのでその設定をしていこう。

crontabコマンドで定期的にシェルを実行させるようにする。

Vimを予めインストールしておこう。
Vimは以前書いた記事の途中で念のためインストールしている為、この記事に従ってやった人は入っているはずだ。

$ crontab -e

初めてエディタを使おうとすると、エディタを選ぶように言われることがある。
Vimを使用したいので、下記のようになったら「2」と打ってEnterを押そう。

pi@raspberrypi:~ $ crontab -e
no crontab for pi - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 2

その後はキーボードの「i」を押して、エディタを挿入モードにしよう。
挿入モードの間、文字を打ったり消したり移動したりできる。
コメントが予め入っていると思うので、下キーで文末まで移動して新しい行に以下のどちらかを入力しよう。

↓毎時0分毎に実行(こちらでも反応が遅い時は30分毎に実行を試してみよう)

0 * * * * /home/pi/shell/dummyir.sh

↓30分起きに実行

*/30 * * * * /home/pi/shell/dummyir.sh

スリープ状態?に入る間隔がイマイチわからないので、反応が変わらない人や上記以外の時間間隔を設定したい人はこちらのサイト等で書式を調べて実行タイミングを調整してみるのもアリだ。

その後はESCキーを押して挿入モードを終了させる。
この時点では以下のようになっているはずだ。

水色の部分がコメントで動作に関係がない。

そしてキーボードで「:wq!」と打ってEnterを押すと保存され、エディタが終了される。

終わりに

これでRemoをホームアプリから操作する場合かつ、一定時間経過した後でもすぐに反応するようになっているはずだ。

コメント

  1. しん より:

    いつも参考にさせていただいています!
    2点ほど詰まったので共有です。
    ・windows環境ではdns-sdコマンドが利用できない
     itunesからbonjourをインスールして解決。
    ・複数台nature remoがある状態でホスト名の取得する方法がわかなかった
     下記を実行すると1つ目のホスト名が取れるが、2つ目が取れない。コマンドの利用方法が調べてもわらなかったので端末の電源を落として1つずつホスト名を取得して解決。
     >dns-sd -B _remo._tcp

    • おたくりんご おたくりんご より:

      いつもご覧頂きありがとうございます!
      そして情報共有までありがとうございます。
      参考になります。

      • しん より:

        何度もすみません!cron設定後、改善しなくてcronログを出力するように変更したところ実行に失敗していました。curlコマンドを絶対パス(/usr/bin/curl)に変更したら改善しました。

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