Raspberry Pi でRM mini 3 を操作する

#概要
自宅のIoT化のためRM mini 3をRaspberry Piで操作できるように設定
将来的には時間や室内温度等に応じて操作できるよう設定したい。

#実施環境
MCU：Raspberry Pi 3B
OS：Raspberry Pi OS（buster 2020-8-20）
リモコン：RM mini 3

#参考サイト
https://www.taneyats.com/entry/rm_mini3_on_raspberrypi
https://vogel.at.webry.info/201805/article_9.html

#Raspberry Piの初期設定
省略
OSインストール、初期設定、aptのパッケージ更新まで実施

#RM mini 3をネットワークに接続する
省略

#python-broadlinkの設定
###python-broadlinkのインストール
・必要なライブラリのインストール
・python-broadlinkをGithubからクローン
・インストール

参考サイトではpython2を使って```setup.py```を実行していたが、最新のものはpython3を使って実行しないと構文エラーとなった。

※2021/9/9追記
・apt実行時に「パッケージpipがありません」等と表示された場合は「pip --version」と入力、
　「pip from ~~~」とバージョンが表示された場合は既にインストール済み。
・broadlink等のインストール時にもpython3であることを明示するために「pip3」に変更。

```terminal
$ cd ~
$ sudo apt install git pip
$ sudo pip3 install broadlink configparser netaddr
$ git clone https://github.com/mjg59/python-broadlink.git
$ cd python-broadlink
$ sudo python3 setup.py install
```

###動作確認
下記のように表示されれば動作OK
※IPアドレスは"XX"に差し替え

```terminal
$ cd cli
$ ./broadlink_discovery
Discovering...
###########################################
RMMINI
# broadlink_cli --type 0x2737 --host XXX.XXX.XXX.XXX --mac 34ea348a36f8
Device file data (to be used with --device @filename in broadlink_cli) : 
0x2737 XXX.XXX.XXX.XXX 34ea348a36f8
```

#broadlink_cliを使って実行
###製品情報の確認と保存
※IPアドレスは"XX",MACアドレスは"YY"に差し替え

```terminal
$ ./broadlink_discovery
Discovering...
###########################################
RMMINI
# broadlink_cli --type 0x2737 --host XXX.XXX.XXX.XXX --mac 34ea348a36f8
Device file data (to be used with --device @filename in broadlink_cli) : 
0x2737 XXX.XXX.XXX.XXX 34ea348a36f8
$ ls
README.md  broadlink_cli  broadlink_discovery
$ echo '0x2737 XXX.XXX.XXX.XXX 34ea348a36f8' > device
$ cat device
0x27c2 XXX.XXX.XXX.XXX 34ea348a36f8
```

###信号をファイルに記録する
信号を保存するファイル名はZZZZに差し替え

```terminal
$ ./broadlink_cli --device @device --learnfile ZZZZ
Learning... 
(リモコンをRM mini3に向けて、リモコンのボタンを押す)
Saving to ZZZZ
$ cat ZZZZ
2600600000012493121311141114113811381238111411381114121311141114111411141212121312381114113811381139111411131238111411381114111411141138113812131100059f0001244b11000c3b0001244b11000c3c0001234b11000d050000000000000000
```

###ファイルから信号を読み取って送信
ファイル名はZZZZに差し替え

```terminal
$ ./broadlink_cli --device @device --send @ZZZZ
```

#BlackBeanControlを使って実行（作成中）
###BlackBeanControlのインストールと設定

・必要なライブラリのインストール
・BlackBeanControlをGithubからクローン
・BlackBeanControlの設定ファイルを開く

```terminal
$ sudo apt install python2.7-dev
$ sudo pip2 install broadlink
$ git clone https://github.com/davorf/BlackBeanControl.git
$ nano BlackBeanControl/BlackBeanControl.ini 
```

RM mini3の情報を設定
※IPアドレスとMACアドレスは前項の```./broadlink_discovery```で調べた値を入力

```ini:BlackBeanControl.ini 
[General]
IPAddress = XXX.XXX.XXX.XXX
Port = 80
MACAddress = 34:ea:34:8a:36:f8
Timeout = 10

[Commands]
```

###リモコンの登録
下記のコマンドを実行することで```BlackBeanControl.ini```にコマンドが登録される
※python-broadlinkとは異なり、リモコンのボタンを押しても5秒経過するまで信号を待ち続ける（設定ファイルでTimeout=5と設定した場合）

```terminal
$ python2 BlackBeanControl/BlackBeanControl.py -c コマンド名
```

※下記のエラーが出た場合はpip2でbroadlinkを再インストールする

```terminal:エラーメッセージ
Traceback (most recent call last):
  File "BlackBeanControl/BlackBeanControl.py", line 3, in <module>
    import broadlink, configparser
ImportError: No module named broadlink
```

```terminal:対処
$ sudo pip2 install broadlink
```