スマートリモコン eRemote mini を Raspberry Pi から使う方法です。
Raspberry Pi から eRemote mini に対して、リモコンボタン登録や、登録したリモコンコードの送信の指示をおこなえます。
これにより、Raspberry Pi のスクリプトなどで、家電製品をコントロールできます。
準備
eRemote mini のセットアップを行っていない場合は、セットアップを行なっておいてください。以降の手順は、Raspberry Pi で実施します。
必要なライブラリをインストールします。
sudo apt-get install python2.7-dev sudo pip install broadlink configparser netaddr
Python control for Broadlink RM2 IR controllers を取得します。
git clone https://github.com/mjg59/python-broadlink.git
スクリプト BlackBeanControl を取得します。
git clone https://github.com/davorf/BlackBeanControl.git
eRemote のIPアドレスとMACアドレスを調べるために、次のコマンドを実行します。
python-broadlink/cli/broadlink_discovery
次のように表示されます。
Discovering... ########################################### RM2 # broadlink_cli --type 0x2737 --host xx.xx.xx.xx --mac 0123456789ab Device file data (to be used with --device @filename in broadlink_cli) : 0x2737 xx.xx.xx.xx 0123456789ab temperature = 0.0
xx.xx.xx.xx と 0123456789ab の部分は、皆さんの環境で異なります。
xx.xx.xx.xx はIPアドレス、0123456789ab はMACアドレスのバイト順が逆になったものです。
BlackBeanControl/BlackBeanControl.ini を編集します。
[General] IPAddress = xx.xx.xx.xx Port = 80 MACAddress = ab:89:67:45:23:01 Timeout = 10 [Commands]
IPAddress は先ほどの python-broadlink/cli/broadlink_discovery の実行結果の xx.xx.xx.xx 、Port は 80 を指定します。
MACAddress は、先の実行結果の表示を後ろから2文字ずつ、:で区切って記述します。
例えば、0123456789ab だった場合は、ここでの記述は ab:89:67:45:23:01 です。
Timeoutは、後述の BlackBeanControl.py 実行時に、リモコンコード受信を待つ時間(秒)です。
長くすると、リモコンボタン登録時に、ひたすら待つことになるので、適度な時間にしておいて下さい。
次に、BlackBeanControl/BlackBeanControl.py を修正します。
これは、現時点(2018年5月26日)のBlackBeanControl.py では、実行すると、下記のようにエラーになる為です。
Traceback (most recent call last): File "BlackBeanControl/BlackBeanControl.py", line 167, in <module> RM3Device = broadlink.rm((RealIPAddress, RealPort), RealMACAddress) TypeError: __init__() takes exactly 4 arguments (3 given)
修正は、BlackBeanControl.py の 167行目を次のようにします。
修正前 RM3Device = broadlink.rm((RealIPAddress, RealPort), RealMACAddress) 修正後 RM3Device = broadlink.rm((RealIPAddress, RealPort), RealMACAddress, RealTimeout)
これで準備は完了です。
リモコンボタンの登録と送信
リモコンボタンの登録は、次のように実行します。
“コマンド名” の部分は、リモコンボタン1つ1つで違うものを指定します。
python2 BlackBeanControl/BlackBeanControl.py -c コマンド名
実行後、eRemote のLED が光るので、eRemote に向けて登録したいリモコンボタンを押します。
「準備」の項で、BlackBeanControl.ini に指定した Timeout 秒経過すると、BlackBeanControl.py から返ってきます。
リモコンボタンを押してもすぐ返ってくる訳ではないので、待って下さい。
Timeout 秒経過しても、リモコン受信できない場合は、Command not received と表示されます。
もう一度、ちゃんと eRemote にリモコンを向けて、Timeout秒以内にボタンを押してください。
または、リモコンが赤外線リモコンでないと eRemote で使えません、
例えば、FireTV のリモコンは Bluetoothリモコンなので、eRemote では登録できません。
登録が成功すると、BlackBeanControl/BlackBeanControl.ini の [Commands] セクションに、指定したコマンド名でリモコンコードが挿入されます。
この状態で、再度下記のコマンドを実行すると、今度は eRemote から、登録したリモコンコードが送信されます。
python2 BlackBeanControl/BlackBeanControl.py -c コマンド名
つまり、初回実行時は BlackBeanControl.ini に登録され、次回以降はリモコンコード送信になります。
登録したものを削除するには、BlackBeanControl/BlackBeanControl.ini の [Commands] セクションから、該当コマンド名の行を削除して下さい。
これで、スマートリモコン eRemote mini を Raspberry Pi から使うことができます。
参考
Raspberry PiとBroadlink RM mini3で赤外線リモコンを制御 | Alexaとラズパイで遊ぶ!
Raspberry PiからコマンドラインでRM mini3(スマートリモコン)を制御する – Qiita
Echosim.ioを使うと日本でもAlexaでSmart Homeを実現できるので、安価なBlack Beanで照明やエアコンを制御してみた – 知的好奇心 for IoT
[PYTHON]How-to integrate (cheap)Broadlink RM3 MINI IR blaster with Pimatic | pimatic home automation forum
コメント