Raspberry PiとNode-redで、IKEAのスマート電球を操作する

スマートホーム
スポンサーリンク

はじめに

うちはIKEAのスマート電球を使って、キッチンの照明をスマホやAlexaで操作できるようにしています。ただ、IKEAのスマート電球を使う時には、イケアのアプリを起動して、スマートリモコンを操作する時には、スマートリモコンのアプリを起動して、、、と個別のアプリを使う必要がありました💦

家の中にいろいろなスマート家電が増えてくると、メーカが違うと連携して操作できないってことが多いと思います。そこで今回は、IKEAのスマート電球をNode-redから操作できるようにしてみたので、ご紹介します。Node-redで集中管理できるようにすれば、他メーカの機器と連動して動作するなんてこともできます‼️

なお、TRADFRI Gatewayにスマート電球がペアリングされている前提で記載しますので、まだの人は説明書などを読んで設定しておいて下さいね。

用意するもの

①Raspberry PI

まずは、今回のZigbee HubのメインとなるRaspberry Piが必要です。今回は、最近新しく買ったRaspberry Pi 4Bを使います。性能は必要ないので、Raspberry Pi Zeroでも大丈夫です。

②TRADFRI電球・リモコン・Gatewayセット

私が購入したのは、TRADFRIの電球×2個、リモコン、Gatewayがセットになったものです。

用意するものは、この2点(4点)だけです。

設定方法

必要なものが揃ったら、さっそく設定していきます。

Node-redのインストール

ここからは、Raspberry PiにNode-redをインストールしていきます。なお、Raspberry PiへのRaspberry Pi OS(旧Raspbian)のインストール手順は、あちこちに情報があるので省略します。今回は、Raspberry Pi OS (32-bit) with desktopの2020-05-27を利用しました。

①Node-redのインストール

N1ode-redのインストールは簡単で、「bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)」のコマンドを実行するだけです。これで必要なモジュールとNode-redがダウンロードされインストールされます。インストールには、大体10分ぐらいかかるので、トイレ休憩にしましょう🚻

pi@raspberrypi:~ $ bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
 
Are you really sure you want to do this ? [y/N] ? y  <--yを入力

Would you like to install the Pi-specific nodes ? [y/N] ? y  <--yを入力

Running Node-RED install for user pi at /home/pi on raspbian

This can take 20-30 minutes on the slower Pi versions - please wait.

  Stop Node-RED                       ✔
  Remove old version of Node-RED      ✔
  Remove old version of Node.js       ✔
  Install Node.js LTS                 ✔   Node v12.18.3   Npm 6.14.7
  Clean npm cache                     ✔
  Install Node-RED core               ✔   1.1.2 
  Move global nodes to local          -
  Install extra Pi nodes              ✔
  Npm rebuild existing nodes          -
  Add shortcut commands               ✔
  Update systemd script               ✔
                                      

Any errors will be logged to   /var/log/nodered-install.log
All done.
  You can now start Node-RED with the command  node-red-start
  or using the icon under   Menu / Programming / Node-RED
  Then point your browser to localhost:1880 or http://{your_pi_ip-address}:1880

Started  2020年  7月 24日 金曜日 16:33:58 JST  -  Finished  2020年  7月 24日 金曜日 16:45:08 JST

②自動起動の設定

インストールが完了したら、Raspberry Piの起動時にNode-redが自動起動するように、Systemdに登録しておきます。

pi@raspberrypi:~ $ sudo systemctl enable nodered.service
Created symlink /etc/systemd/system/multi-user.target.wants/nodered.service → /lib/systemd/system/nodered.service.

③Node-redの起動

それでは、Node-redを起動しましょう。

pi@raspberrypi:~ $ sudo systemctl start nodered.service
pi@raspberrypi:~ $

④Node-redの確認

次に「http://<Raspberry PiのIPアドレス>:1880/」にアクセスしてみましょう。以下のように、おなじみのNode-redの画面が表示されればOKです。

これでNode-redのインストールは完了です。

node-red-contrib-ikea-home-smartのインストール

次に、Node-redからIKEA Gateway経由でスマート電球を操作するために必要な、node-red-contrib-ikea-home-smartをNode-redにインストールしていきます。

①パレットの管理

画面右上の「三」アイコンからメニューを表示し、「パレットの管理」を選択します。

②ノードの追加

画面左側にある「パレット」を選択し、次に「ノードを追加」タブを選択します。

③node-red-contrib-ikea-home-smartのインストール

検索欄に「tradfri」と入力して検索し、検索結果に出てきた「node-red-contrib-ikea-home-smart」の「ノードを追加」ボタンをクリックします。

なお、IKEAのスマート電球を操作するパレットは色々ありますが、「node-red-contrib-ikea-home-smart」が最も新しく、シンプルで使いやすそうでした!!

確認画面が出たら「追加」をクリックします。

しばらく待つと、以下のようにノード追加完了のメッセージが表示されます。

④追加ノードの確認

左側パレットに「ikea homesmart」というノードが追加されている事を確認します、

以上で、node-red-contrib-ikea-home-smartのインストールは完了です。

スマート電球の情報を取得する

ここからは、Node-redにノードを追加して、スマート電球の情報(明るさ、色など)を取得していきます。

①ikea homesmartノードの追加

左側パレットから、「ikea homesmart」ノードをフローにドラッグして追加します。追加したら、ノードをダブルクリックして設定画面を表示します。

②ikea-connectionの追加

設定画面の「connection」欄の右にある鉛筆アイコンをクリックします。

③ikea-connectionの設定

「Address」欄にTRADFRI GatewayのIPアドレスを、「Security Code」欄にTRADFRI Gatewayの裏側に貼ってあるシールに記載のセキュリティーコードを入力して、「追加」ボタンをクリックします。

④設定の完了

ikea-homesmartの設定画面に戻ったら、他の箇所は何も入力せずに「完了」ボタンをクリックします。一度、設定を完了しTRADFRI Gatewayに接続することで、TRADFRI Gatewayに接続されている機器情報を取得できます。

⑤デプロイ

画面右上の「デプロイ」ボタンをクリックし、ノードをデブロイします。

確認メッセージが出ますが、「デプロイの確認」ボタンをクリックします。

⑥ノードの設定

デプロイが完了したら、ノードの設定画面をもう一度開きます。ノードの設定画面で「Device Type」欄で「Light」、「Device」欄で情報を取得したいスマート電球を選択します。

⑦functionノードの追加

次に、TRADFRI Gateway に状態取得のコマンドを投げるために、functionノードをフローに追加します。ノードを追加したら、設定画面を表示し、以下のように1行目に「msg.payload=”status”」と入力します。このように設定することで、スマート電球の状態(status)を取得できます。

⑧Debugノードの追加

次に、取得した情報を表示するために、debugノードをフローに追加します。ノードを追加したら、設定画面を表示し、対象を「msgオブジェクト全体」に変更します。

⑨Injectノードの追加

次に、Inhectノードをフローに追加し、以下のようにノードを線で結びます。

⑩デプロイ

フローが完成したら「デプロイ」ボタンをクリックしましょう!

11.デバッグウィンドウの表示

Debugノードで取得した情報を画面に表示するために、デバッグウィンドウを表示させます。まず、左上の「三」メニューから「表示」→「サイドバーを表示」を選択します。

サイドバーが表示されたら、虫アイコンをクリックしデバッグウィンドウを表示します。

12.動作確認

それでは、Injectノードの左側のボタンを押してみましょう‼️デバッグウィンドウに、以下のように情報が表示されればOKです。特に「payload」→「ligtlist」→「0」のonOffの値や、dimmer(明るさ)の値を確認しましょう。

※これを確認するためには、スマート電球をつけておいて下さいね。

以上で、スマート電球の情報取得は完了です。

スマート電球を操作する

ここからは、スマート電球をNode-redから操作していきます。

①ノードのコピー

上で作成した、4つのノードをコピーして複製します。ノードをコピーするためには、ノードを選択して「Ctrl+c」キーを押し、「Ctrl+v」キーを押すと簡単にコピーできます。

②functionノードの編集

コピーしたfunctionノードの設定画面を開き、1行目の内容を「msg.payload={onOff:false}」と書き換えましょう。このように設定することで、電球をOffにできます。

③デプロイ

設定は以上でOKですので、「デプロイ」ボタンをクリックしましょう。

④動作確認

それでは、コピーしたInjectノードの左のボタンを押してみましょう‼️スマート電球が消えればOKです💡

⑤その他の設定

電球をOffにする設定と考え方は同じですが、電球をOnにしたり、明るさ変更、電球色を変更したりもできます。参考までに、スクリーンショットを貼っておきます。

・電球をOnにする

・電球の明るさを暗く(20%)する

・電球を明るく(100%)する

・電球色を白色にする

・電球色を赤色にする

おわりに

今回は、Raspberry PiにインストールしたNode-redを使って、IKEAのスマート電球をTRADFRI Gateway経由で操作することをやってみました。node-red-contrib-ikea-home-smartを利用することで簡単に操作できました。

関連記事

Raspberry PiとNode-redで、Hueブリッジ(Zigbee Hub)を作ってみた(スマホ&Alexa操作対応)[1/3]
最近は、スマート電球の「Hue」や「TRADFRI」、Aqaraの温度センサーなど、様々なzigbee機器が出てきています。しかし、これらを使用するにはHueブリッジなどのZigbee Hubの購入が必要で、しかもメーカを跨って相互に接続できません。そこで、Raspberry PiとNode-redを使って、メーカに関...
Mozilla IoT WebThings GatewayからIKEA TRADFRI電球を操作してみた(TRADFRI Gateway編)
前から気になっていたMozilla IoTのWebThings GatewayをRaspberry Piにインストールし、IKEAのスマート電球をTRADFRIゲートウェイ経由で操作できるか試してみました。
Mozilla IoT WebThings GatewayからIKEA TRADFRI電球を操作してみた(直接ペアリング編)
Raspberry Piにzigbeeモジュール(CC2531)を指し、Mozilla IoTのWebThings Gatewayを使って、IKEAのスマート電球を直接操作できるか試してみました。
Home Assistantで、IKEA TRADFRIスマート電球を利用する(TRADFRI Gateway編)
Home AssistantのRaspberry Piへのインストール方法と、Home AssistantからTRADFRIスマート電球をTRADFRI Gateway経由で操作する方法をご紹介します。
Home Assistantで、IKEA TRADFRIスマート電球を利用する(直接ペアリング編)[1/2]
Raspberry PiにインストールしたHome Assistantから、IKEAのTRADFRIスマート電球を直接操作(TRADFRIゲートウェイを使わない)方法をご紹介します。この記事は第1回目として、Home AssistantのインストールとZigbee通信モジュールのファームウェアの書き換えについて紹介しま...
記事が参考になったら、ブログランキングに協力(クリック)して貰えると嬉しいです。

昼間はIT企業に勤めてますが、プライベートでは「育児×家事×IoT」をテーマに家のスマートホーム化に取り組んでいます。Androidアプリも作っているので使って下さい。質問・コメントは、↓のコメント蘭でもFacebookメッセンジャーでもどちらでも大丈夫です。
E-mail:naka.kazz.d@gmail.com

naka-kazzをフォローする
スマートホーム開発者向け
スポンサーリンク
naka-kazzをフォローする
スマートホーム×DIY

コメント