Node-redからTp-Linkスマートプラグを操作する

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

はじめに

夏場の夜の天敵といえば「蚊🦟」ですね。ベッドで寝ていて「プィーン🦟」と来ると、布団をかぶって刺されないように防御しますが、そうすると暑い!

そんな時には、蚊取り線香をつけるのですが、うちのは良くある写真のようなもの。タイマーも無いですし、小さなLEDが一つあるだけで音もしないので、消し忘れて1日中ついていることもしばしば・・・・。

そこで、この蚊取り線香にスマートプラグをつけて、消し忘れ対策をしてみたいと思います。単なる消し忘れ防止だけであれば、スマートプラグ単体でもできますが、今回はNode-redから操作できるようにして、他の機器と連携動作できるようにします。

用意するもの

蚊取り線香は家にあるものを利用するため、用意するのはスマートプラグだけです。Amazon のスマートプラグが話題になっていますが、価格が半額インターネット通信が不要なTP-Linkのスマートプラグを購入しました。

設定手順

さっそく、スマートプラグをNode-redから操作できるように設定していきます。なお、Tp-LinkスマートプラグをWifiに接続してスマホアプリから操作可能な事を前提に話を進めますので、まだの方はマニュアルに従って設定しておいてください。

node-red-contrib-tplinkのインストール

Node-redからTp-Linkのスマートプラグを操作するためにnode-red-contrib-tplinkをインストールしていきます。他にも同様のパレットがありますが、これが一番新しいようです。

①パレットの管理画面の表示

Node-redの右上の「三」アイコンから「パレットの管理」を選択します。

②ノードを追加

パレットの管理画面で「パレット」→「ノードを追加」を選択します。

③node-red-contrib-tplinkのインストール

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

④インストール確認

しばらく待つとインストールが完了するので「閉じる」ボタンをクリックします。

パレットの管理画面を閉じると、左側パレットに「smart plug」と「smart bulb」のノードが追加されています。

スマートプラグのOn/Offを操作する

次に、スマートプラグをNode-redから操作するためにノードを設定していきます。

①smart plugノードの追加

画面左側のパレットから「smart plug」をドラッグしてフローに追加します。追加したらダブルクリックして設定画面を開きます。

設定画面で、Device IP欄の右にある検索アイコンをクリックします。するとネットワーク内にあるTp-Link スマートプラグを検索してくれます。

スマートプラグが見つかるとIPアドレスが選択できるので、選択します。すると自動的にName欄に機器名が入ります。機器名が入ったら「完了」ボタンを押します。

②functionノードの追加

次に、functionノードをフローに追加し、以下のように1行目に「msg.payload=”toggle”」を追加します。追加が完了したら「完了」ボタンをクリックします。

③デプロイ

次にInjectノードをフローに追加し、以下のようにノードを接続します。最後に画面右上の「デプロイ」ボタンをクリックします。

④テスト

デプロイが完了し、smart plugノードの下に「Connected」と表示されたら、Node-redとスマートプラグが接続状態になります。この状態で、Injectノードの左のボタンを押してみましょう!するとスマートプラグのOn/Offが切り替わります!!

スマートプラグの状態変化イベントを取得する

次に、スマートプラグの状態(On/Off)が変化した時に、Node-redにイベントを通知するように設定します。

①ノードのコピー

まずは、先ほど作成した3つのノードをコピーします。ノードのコピーはCtrl+cとCtrl+vを使うと便利です。

②functionノードの編集

コピーしたfunctionノードの設定画面を開き「msg.payload」の値を「getPowerEvents」に変更します。

③smart plugノードの編集

コピーしたsmart plugノードの設定画面を開き、ペイロードを「none」に変更します。このペイロード欄は、smart plugノードから出力する情報を選択するもののようで、getPowerEventsの場合には「none」を設定する必要があります。私はこれが分からずに半日試行錯誤しました💦

④Debugノードの追加

最後にイベントを受け取るDebugノードを追加し、msgオブジェクト全体を表示するようにします。

⑤デプロイ

ノードの設定は以上ですので、「デプロイ」をクリックしましょう。

⑥テスト

イベントの受け取り方も少々コツが入ります。デプロイが完了してConnect状態になったら、Injectノードの左側のボタンをクリックして、getPowerEventsメッセージをスマートプラグに送ります。その後、スマートプラグのOn/Off状態が変化すると、デバッグノードにメッセージが表示されます。

それでは、上のinjectノードのボタンをクリックし、スマートプラグをOn/Offしてみましょう。すると、以下のようにイベントがNode-redに通知されます。

おわりに

今回はTp-LinkのスマートプラグをNode-redから操作できるようにし、蚊取り線香の消し忘れ対策をしました。私は、電源Onのイベントから3時間で自動的に切れる設定と、起床時間のルーティンアクション(電気をつける・テレビをつける・天気予報をお知らせ)の一つとして、蚊取り線香のOffを入れています。

関連記事

記事が参考になったら、ブログランキングに協力(クリック)して貰えると嬉しいです。

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

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

コメント