はじめに
スマートホームの中核となるスマートホームハブ用のソフトウェアとしては、有名なNode-red、Home Assitatnt、Mozilla IoTと、OpenHABというものがあるのは前回の記事でご紹介した通りです。
前回の記事では、IKEAのスマート電球をTRADFRI Gateway経由で利用する方法をご紹介しました。今回はRaspberry PiにZigbee通信用のモジュールを挿し、Raspberry Piに直接スマート電球やリモコンをペアリングして、操作する方法をご紹介します。
少し記事が長くなりそうなので、2回に分けて書く予定です。
第1回:OpenHABとアドオンのインストール <–この記事
第2回:IKEAスマート電球のペアリングと操作
用意するもの
①Raspberry PI
まずは、OpenHABを動作させるRaspberry Piを用意します。今回は、最近新しく買ったRaspberry Pi 4Bを使います。
②TRADFRIスマート電球
OpenHABから操作するTRADFRIスマート電球が必要です。
③TRADFRIリモコン
次に、電球をOn/Offにしたり明るさを調整するためのリモコンが必要です。
④CC2531 USBスティック
Raspberry Pi単体ではZigbee通信(IEEE802.15.4)はできないので、Zigbee通信のためのCC2531 USBスティックが必要です。また、新規に購入するのであれば、下のCC Debuggerと接続するためのケーブルがセットになっているものがお勧めです。
⑤CC Debugger
これは最終的には不要ですが、CC2531のファームウェアを書き換えるために必要です。
必要なハードウェアは、以上の5点です。
第1回:OpenHABとアドオンのインストール
CC2531のファームウェアの書き換え
購入したばかりのCC2531は、Zigbee通信のキャプチャ用のファームウェアが入っているので、Zigbee機器と通信するためには、ファームウェアの書き換えが必要です。
①SmartRF Flash programmerのダウンロード
Windows PCのWebブラウザを用いて、ファームウェア書き換え用のツール「SmartRF Flash programmer」を、Texas Instrumentsのサイトからダウンロードします。v2もありますが、うまく動かないようなので、v1をお勧めします。
②ユーザ登録
ダウンロードするためには、ユーザ登録が必要なので必要事項を入力してユーザ登録します。
③輸出管理事項への同意
ユーザ登録が完了するとSmartRF Flash programmerのダウンロード画面に戻ります。ここで、輸出管理の画面が表示されます。「U.S. Government」と出ているとビックリ‼️しますが、内容をよく確認しましょう。そして、このブログを読んでいる人は軍事利用の人はいないと思いますので「Civil(民間利用)」を選択して、画面下の「Submit」ボタンを押します。
すると、SmartRF Flash programmerのZipファイルがダウンロードされます。
④インストール
ダウンロードしたZipファイルを解凍し「Setup_SmartRF_Flash_Programmer-1.12.8.exe」を実行してインストールします。
⑤ファームウェアのダウンロード
次に、CC2531のコーディネータ用ファームウェアCC2531_DEFAULT_20190608.zipをダウンロードします。ダウンロードが完了したら、zipを解凍しておきましょう。
⑥CC2531とCC Debuggerを接続
次に、CC2531 USBスティックとCC Debuggerを以下の図のように接続します。コネクタには向きがあるので十分に注意して接続して下さい。また、PCのUSBポートに挿す前に2つを接続しておく必要があります。
⑦PCに接続
CC2531 USBスティックとCC DebuggerのUSBポートを、両方ともPCに接続します。正常に接続されると、CC Debuggerのランプが緑色に光るので確認して下さい。
⑧ファームウェアの書き換え
SmartRF Flash programmerを起動し、Flash Imageの選択で、ダウンロードした「CC2531ZNP-Prod.hex」を選択します。そして「Retain IEEE・・・」のチェックを外し、Actionから「Erase. program and verify」を選択して、「Perform action」ボタンをクリックします。
⑨書き換え確認
1分ほど待っていると、以下の画像のように「CC2531- ID0100: Erase. program and verify OK」と表示され、ファームウェアの書き換えが完了します。
OpenHABのインストール
次に、Raspberry PiにOpenHABをインストールします。
①OSイメージのダウンロード
OpenHABのRaspberry Pi用OSであるOpenHABianをGitHubサイト「https://github.com/openhab/openhabian/releases」からダウンロードします。私は、2019年8月5日にリリースされたものが最新だったので、これを使いました。
②OSイメージの書き込み
ダウンロードが完了したら「openhabian-pi-raspbian-201908050414-gitca0976f-crc6a66b5a1.img.xz」をbalenaEtcherを使って、SDカードに書き込みます。ちなみにbalenaEtcherは、xzファイルを直接書き込みできます!
③Wifiの設定
OSイメージの書き込みが完了したら、Wifiの設定を行います。SDカードをPCに再接続して、SDカード内の「openhabian.conf」のWi-Fi Settingの箇所にWifiのSSIDとパスワードを追記します。
④Raspberry Piの起動
Raspberry PiにSDカードを挿し、モニターと電源をつないで起動しましょう。OpenHABは、モニターレスでも利用できますが、初回はモジュールのアップデートなど、起動に30〜50分かかります。このため、起動の途中経過が見えないと不安になるので、モニターに接続する事をお勧めします。
モジュールのアップデートが完了し、コンソールにユーザログインのプロンプトが表示されたら起動完了です。起動が完了したら、PCのブラウザから「http://openhab:8080」にアクセスします。「openhab」の名前解決ができない場合は「http://<Raspberry PiのIPアドレス>:8080」にアクセスしましょう。
すると以下のような、OpenHABの初期画面が表示されます。
⑤初期セットアップ
OpenHABの初期画面で「Standard」をクリックしましょう。Standardを選択すると、以下の3つのUI(ユーザインタフェース)がセットアップされます。
・管理者用の設定画面:PaperUI
・利用者用のデフォルト画面:BasicUI
・利用者用のパネル風画面:HABPanel
また、OpenHABでどんなことができるか知りたい人は、Demoを選択するもの良いでしょう。
⑥PaperUIを開く
OpenHABを設定するために、まずはPaperUIを選択します。
PaperUIを開くと以下のような画面になります。この画面から、いろいろ設定していきます。
アドオンのインストール
OpenHABからスマート電球を直接操作するためには、MQTT環境を構築する必要があります。具体的には、以下の2つのアドオンのインストールが必要です。
・MQTT Broker Moquette・・・MQTTメッセージをやり取りするブローカ
・MQTT Binding・・・OpenHABからMQTTメッセージを送受信するアダプタ
①アドオン画面の表示
画面左側メニューから「Add-ons」を選択し、MISCタブをクリックします。
②MQTT Brokerアドオンのインストール
検索欄に「MQTT」と入力し、検索結果に出てきた「MQTT Broker Moquette」のINSTLLをクリックします。
しばらく待つと、アイコンがカラーになり、インストールが完了したことが確認できます。
③MQTT Bindingアドオンのインストール
次に「BINGINGS」タブを選択し、検索欄に「MQTT」と入力して検索します。その後、検索結果に出てきた「MQTT Binding」のINSTALLをクリックします。
しばらく待つと、アイコンがカラーになり、インストールが完了したことが確認できます。
④MQTT BrokerのThings登録
次に、MQTT BrokerをOpenHABのThingとして登録します。左メニューの「Inbox」を選択し、Inbox画面に出てきた「MQTT Broker」の「✔︎」アイコンをクリックします。
以下のような確認画面が表示されるので「ADD AS THING」をクリックします。
⑤Thingsの確認
左メニューから「Configuration」→「Things」を選択して、Things画面を表示すると、以下のようにMQTT Brokerが追加されていることが確認できます。
以上でアドオンのインストールは完了です。
MQTT Brokerの動作確認
次に、上でインストールしたMQTT Brokerの動作確認を行います。
①SSHログイン
まずは、OpenHABにSSHでログインします。PCのコンソールから以下のようにして、SSHログインします。デフォルトのユーザID・パスワードは共に「openhabian」です。
OpenHABはデフォルトでSSHが有効になっているので、特に事前の設定は不要です。
$ ssh openhabian@192.168.2.180
The authenticity of host '192.168.2.180 (192.168.2.180)' can't be established.
ECDSA key fingerprint is SHA256:5V0Tg2wPb/LwfmQdOdH4mtu8g43gPFc12k13YzZhE2g.
Are you sure you want to continue connecting (yes/no/[fingerprint])?yes
・・・中略・・・
Welcome to __ _____ ____ _
____ ____ ___ ____ / / / / | / __ )(_)___ _____
/ __ \/ __ \/ _ \/ __ \/ /_/ / /| | / __ / / __ `/ __ \
/ /_/ / /_/ / __/ / / / __ / ___ |/ /_/ / / /_/ / / / /
\____/ .___/\___/_/ /_/_/ /_/_/ |_/_____/_/\__,_/_/ /_/
/_/
openHAB 2.5.6-2 (Release Build)
Looking for a place to get started? Check out 'sudo openhabian-config' and the
documentation at https://www.openhab.org/docs/installation/openhabian.html
The openHAB dashboard can be reached at http://openhab:8080
To interact with openHAB on the command line, execute: 'openhab-cli --help'
openhabian@openhab:~$
②MQTT Clientのインストール
MQTT Brokerの動作確認を行うために、MQTT Clientをインストールします。具体的には以下のコマンドを入力して「mosquitto-clients」をインストールします。
openhabian@openhab:~$ sudo apt-get install mosquitto-clients
openhabian@openhab:~$
③MQTT Brokerの動作確認
インストールが完了した、PCでもう一つターミナルのウィンドウを開き、OpenHABにSSHログインしておきます。
1つ目のコンソールで、以下のコマンドを入力し、MQTTメッセージの受信を待機します。
openhabian@openhab:~$ mosquitto_sub -d -t test
Client mosqsub|3272-openhab sending CONNECT
Client mosqsub|3272-openhab received CONNACK (0)
Client mosqsub|3272-openhab sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0)
Client mosqsub|3272-openhab received SUBACK
Subscribed (mid: 1): 0
2つ目のコンソールで、以下のコマンドを入力し、テストメッセージ「TEST」を送信します。
openhabian@openhab:~$ mosquitto_pub -d -t test -m test
Client mosqpub|3813-openhab sending CONNECT
Client mosqpub|3813-openhab received CONNACK (0)
Client mosqpub|3813-openhab sending PUBLISH (d0, q0, r0, m1, 'test', ... (4 bytes))
Client mosqpub|3813-openhab sending DISCONNECT
openhabian@openhab:~$
すると、以下のように1つ目のコンソールに「TEST」が表示され、MQTT Brokerが正しく動作していることが確認できます。
openhabian@openhab:~$ mosquitto_sub -d -t test
Client mosqsub|3272-openhab sending CONNECT
Client mosqsub|3272-openhab received CONNACK (0)
Client mosqsub|3272-openhab sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0)
Client mosqsub|3272-openhab received SUBACK
Subscribed (mid: 1): 0
Client mosqsub|3272-openhab sending PINGREQ
Client mosqsub|3272-openhab received PINGRESP
Client mosqsub|3272-openhab received PUBLISH (d0, q0, r0, m0, 'test', ... (4 bytes))
test
以上でMQTT Brokerの動作確認は完了です。
おわりに
今回は、CC2531 USBスティックの準備を行った後に、Raspberry PiにOpenHABをインストールし、MQTT BrokerおよびMQTT Bindingのアドオンをインストールしました。次回は、zigbee機器をペアリングして、OpenHABから操作する方法をご紹介します。
第1回:OpenHABとアドオンのインストールと設定
第2回:IKEAスマート電球のペアリングと操作 <–次の記事
なお、技適マークがない機器を利用する時は、Web申請をお忘れなく!
コメント
素晴らしい。
YouTube で OpenHAB から Hue Lampを操作していたのを見て興味を持ったことがあったが、そのまま手付かずになっていたことを思い出した。
現在は Hue bridge を使って Hue Lamp を操作している形になってます。
このブログを参考にして、IKEA TRADIFRI スマート電球を操作できるようにしてから、Hue Lamp の操作に取り組むのが早道と思いました。
ありがとうございます。