はじめに
スマートホームの中核となるスマートホームハブを構築するソフトウェアとしては、Node-red、Home Assitatnt、Mozilla IoTなどが有名ですが、もう一つOpenHABというものがあるのを発見しました。なかなか日本では知られていないものですが、結構いい感じです。
今回はOpenHABをRaspberry Piにインストールして、IKEAのTRADFRI Gatewayを経由でスマート電球を操作できるか試してみました。
ちなみに、TRADFRI Gatewayにスマート電球とリモコンがペアリング済みであることを前提に話を進めるので、説明書などを参考に事前にペアリングしておいて下さい。
用意するもの
①Raspberry PI
まずは、Home Assistantを動作させるRaspberry Piを用意します。今回は、家にあったRaspberry Pi 4Bを使います。
②TRADFRI電球・リモコン・Gatewayセット
私が購入したのは、TRADFRIの電球×2個、リモコン、Gatewayがセットになったものです。
用意するものは、この2点(4点)だけです。
設定手順
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分かかります。このため、起動の途中経過が見えないと不安になるので、モニターに接続する事をお勧めします。
また、私の場合は、初回起動時はWifiアクセスポイントへの接続に失敗してしまいましたが。再起動したら接続できました💦
モジュールのアップデートが完了し、コンソールにユーザログインのプロンプトが表示されたら起動完了です。起動が完了したら、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からIKEAのTRADFRI Gatewayを操作するためにはアドオンが必要です。画面左側のメニューから「Add-ons」を選択し「BINDINGS」タブを開きます。

⑤TRADFRI Bindingのインストール
検索欄に「TRADFRI」などと入力すると「TRADFRI Binding」が見つかるので「INSTALL」をクリックします。

インストールが完了すると、以下のようにTRADFRI Bindingのアイコンがカラーになり、インストール済みであることが確認できます。

以上で、OpenHABのインストールは完了です。
Thingsの追加
ここからは、TRADFRI Gateway、スマート電球、リモコンを、OpenHABの「Things」として登録します。
OpenHABは、用語が独特で分かりにくいですが「Things」は、いわゆる”デバイス”のイメージです。また「Items」はOpenHABが扱う、デバイスの設定項目・取得情報の単位でです。例えばスマート電球の場合には、電球1つがThing、「電球色の設定」「明るさの設定」という設定項目がそれぞれItemになります。
①TRADFRI Gatewayの追加
左メニューから「Things」を選択し、画面上部の「+」をクリックします。

②Bindingの選択
利用可能なBindingの一覧が表示されるので、TRADFRI Bindingの「>」をクリックします。

③TRADFRI Gatewayの追加
同じネットワーク内のTRADFRI Gatewayが検出され画面に表示されるので、「✔️」アイコンをクリックします。ちなみに、TRADFRI Gatewayが検出されない場合は、OpenHABを再起動すると良いです(私も一度再起動しました)。

以下のような確認画面が表示されるので「ADD AS THING」をクリックしましょう。

④TRADFRI Gatewayの設定
以下の画面のように、TRADFRI GatewayがThingsとして追加されます。しかし、ステータスが「OFFLINE」になっています。これは、まだTRADFRI Gatewayのセキュリティコードを設定していないからです。
そこで、画面の鉛筆アイコンをクリックし、設定画面を表示させます。

セキュリティコードの入力欄が表示されるので、ここにTRADFRI Gatewayの裏側に貼ってあるシールに記載のセキュリティコードを入力して、画面上部の「✔️」をクリックします。

⑤Onlineの確認
左メニューから再度「Things」をクリックし画面を更新すると、TRADFRI Gatewayが「ONLINE」になっていると思います。

⑥スマート電球・リモコンの追加
TRADFRI Gatewayがオンラインになると、TRADFRI Gatewayに接続済みのスマート電球とリモコンが自動的に検出されます。
左メニューの「Inbox」をクリックすると、「TRADFRI bulb」と「TRADFRI remote control」が表示されていると思いますので、まずは「TRADFRI bulb」の「✔︎」をクリックします。

確認画面が出るので、「ADD AS THINGS」をクリックします。

同様に「TRADFRI remote control」も追加します。
⑦Thingsの確認
左メニューから「Things」を選択し、追加したスマート電球(TRADFRi bulb)とリモコン(TRADFRI remote control)が追加されている事を確認します。

以上でThingsの追加は完了です。
Itemsの追加
ここからは、Thingsに紐づくItemsを追加していきます。
①スマート電球の設定画面の表示
Thingsの画面から、上で追加したTRADFRI bulbを選択します。

②チャネルの選択
TRADFRI bulbの設定画面を開くと、明るさ調整用のBrigtnessと、電球色調整用のColor Temperatureの2つのチャネルがあることが確認できます。このうち、Brigtnessの右にある上下矢印のアイコンをクリックします。

③Itemsへのリンクを追加
画面にLinked Itemsの表示が出てくるので「+」アイコンをクリックします。

④Linkの設定
Link Channelの設定画面が出てくるので、Please select the item to linkの欄にある下矢印のアイコンをクリックします。

「+Create new Item」が表示されたら、これをクリックします。

⑤Itemの作成
Itemの作成画面が表示されたら「Link」をクリックします。ここで、Itemの名前などを変更できるので、適宜名前を変更しても良いでしょう。

同様にColor Temperature用のItemも作成しましょう。
⑥リモコンのItemの作成
同様にリモコンのItemも作成します。

リモコンにも2つのチャネルがあり、1つ目は電池残量を示す「Battery Level」、2つ目は電池残量が少なくなった時に通知する「Low Battery」です。
あれ?ボタン操作に関するチャネルがない!そうなんです、TRADFRI Gateway経由ではボタンイベントは扱えないようです💦
今回は、Battery LevelのItemを追加します。


⑦Itemsの確認
3つのItemsを追加したら、左メニューから「Items」を選択します。すると、以下のように追加したItemsが画面に表示されます。

⑧Itemsの動作確認
左メニューから「Control」を選択します。すると上で追加した3つのItemsが表示されます。
この画面で、Brightnessのスライドバーをドラッグするとスマート電球の明るさが変わります、またColor Temperatureのスライドバーを動かすと電球色が変わります。どうですか?正しく動作しましたか⁉️

以上で、Itemsの追加は完了です。
HABPanelの設定
PaperUIだけでもスマート電球の操作はできますが、OpenHABの利用者向けパネル風画面のHABPanelを設定していきます。HABPanelを使うことで、スマホやタブレットから操作可能な美しいインタフェースを構築可能です。
①メイン画面の表示
ブラウザのURL欄に「http://openhab:8080」もしくは「http://<Raspberry PiのIPアドレス>:8080」と入力して、メイン画面を表示させ、今回は「HABPANEL」を選択します。

②HABPanelの初期画面の設定
HABPanelの初期画面は、以下のような画面になります。まだ、何も設定していないので真っ黒な画面です。パネルの設定を行うために、画面右上の設定アイコンをクリックします。

③ダッシュボードの追加
画面左側に「新規ダッシュボードの追加」のリンクが表示されるので、これをクリックします。ダッシュボードとは、HABPanelに表示する画面の事をいいます。HABPanelでは、複数のパネルを作成し、リビング用のダッシュボード、寝室用のダッシュボードなどを作ることができます。

ダッシュボード名の入力を求められるので、リビングなど任意の名前を入力し「OK」ボタンをクリックします。

④ダッシュボードの設定
ダッシュボードが追加され、画面に表示されます。次に、ダッシュボードにウィジェットを追加するために、画面の右上にある「設定」アイコンをクリックします。

⑤照明On/Offウィジットの追加
まずは、スマート電球をOn/Offするためのスイッチウィジェットを追加します。画面右上の「ウィジェットを追加」のボタンをクリックします。

ウィジェットの一覧から「スイッチ」を選択します。

⑥ウィジェットの設定1
ダッシュボードにウィジェットが追加されるので、ウィジェットの右上の「・・・」アイコンをクリックしメニューを表示します。

表示されるメニューから「編集」をクリックします。

⑦ウィジェットの設定2
ウィジェットの設定画面で、以下を設定し、「保存」ボタンをクリックします。
・名前:IKEA照明 ※任意の名前でOKです
・openHABアイテム:TRADFRIBulb_Brigtness
・表示オプション:☑️名称を非表示、☑️アイコンを非表示
・背景アイコン:Bultin:Freepik_Houseehold
→light_bulb
☑️背景を水平に中央揃え

⑧照度調整スライダーウィジェットの追加
次にスマート電球の明るさを調整するスライダーウィジェットを追加します。「ウィジェットを追加」ボタンより「スライダー」を追加します。

ウイジェットの設定画面を表示し、以下のように設定して「保存」ボタンをクリックします。
・名前:明るさ調整 ※任意の名前でOKです
・openHABアイテム:TRADFRIBulb_Brightness

⑧電球色調整スライダーウィジェットの追加
次に、電球色を調整するスライダーウィジェットを追加します。照明調整スライダーと同様に、スライダーウィジェットを追加し、以下のように設定します。
・名前:電球色調整 ※任意の名前でOKです
・openHABアイテム:TRADFRIBulb_ColorTemperature

⑨ウィジェットの配置の調整
3つのウィジェットを追加したら、ウィジェット配置を整えます。ウィジェットの右下をドラッグするとウィジェットの大きさを調整できます。また、ウィジェットの左上の移動アイコンをドラッグすると配置を変更できます。私は以下のように配置してみました。

⑩ダッシュボードの保存
ダッシュボードの設定ができたら、画面左上の「保存」ボタンをクリックします。

11.ダッシュボードの実行
それでは、画面左上の「実行」ボタンをクリックしましょう!

12.HABPanelの実行確認
HAPPanelが実行モードになると、以下のようにパネルが表示されます。
この画面で、電球のアイコンをクリックしたり、明るさ調整のスライダーを動かしてみて下さい。スマート電球がOn/Offしたり、明るさが変わればOKです‼️PaperUIと比較すると、分かりやすい画面が構築できます。

以上で、OpenHABの設定は完了です。
おわりに
今回は、OpenHABを使ってIKEAのスマート電球をTRADFRI Gateway経由で利用してみました。OpenHABはThingsやItemsなど特殊な用語が多いので、用語や操作に慣れるまでは大変ですが、基本的な操作はGUIでできるので楽チンです。
ただ、やはりTRADFRI Gateway経由の場合は、リモコンのボタンにOpenHABからアクセスできず電池残量のみでした。次回は、Zigbee通信用のUSBスティックを使って、TRADFRI Gatewayを介さずにOpenHABから直接電球やリモコンを操作してみたいと思います。
関連リンク





コメント