2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SwitchBot防水温湿度計のデータをNode-REDで取得する

Posted at

はじめに

登山用の温湿度計を探していて『電池式はめんどくさそうだなぁ』と思ってたのですが、SwitchBotさんの防水温湿度計が安くてうっかり手を出してしまいました。
環境センサーなのでBLEビーコンでも飛ばしてるだろうと思って、Node-REDからパケットを覗いてみたら、温湿度データも入ってるようだったので自宅の外気温用にもう一つ追加で購入しました。(1980円なんて、破格だよ!)

環境センサーのデータはNode-REDで収集してElasticsearchクラスタへ投入しているので、早速収集開始しました。

前提環境

SwitchBot 防水温湿度計のMACアドレス確認

アプリの右上の歯車アイコンをタップします。
Screenshot_20231221-195853.png

下にある「デバイス情報」をタップします。
Screenshot_20231221-195910.png

MACアドレスが確認できます。
Screenshot_20231221-195915.png

Node-REDフロー作成

以下のようにフローを繋げました。
Node-RED _ 192.168.1.9 - Google Chrome 2023_12_21 20_34_02.png

  • BLE Beacon Scanner:そのまま配置します。
  • switch : payload.idが、防水温湿度計のMACアドレスなら処理を継続させます。
    Node-RED _ 192.168.1.9 - Google Chrome 2023_12_21 20_41_18.png
  • delay : メッセージの流量制限で。防水温湿度計からのビーコンを30秒に1回だけ受信するようにします。
    Node-RED _ 192.168.1.9 - Google Chrome 2023_12_21 20_45_20.png
  • function(外湿度抽出) : 以下のようなコードでmsg.dataに湿度値を抽出します。
    Node-RED _ 192.168.1.9 - Google Chrome 2023_12_21 20_48_22.png
  • function(外温度抽出) : 以下のようなコードでmsg.dataに温度値を抽出します。
    Node-RED _ 192.168.1.9 - Google Chrome 2023_12_21 20_49_13.png
  • change : ElasticsearchへPOSTするための変数を設定します。URLを正規表現の置換で連結させてます。
    Node-RED _ 192.168.1.9 - Google Chrome 2023_12_21 20_54_21.png
  • template : ElasticsearchへPOSTするデータ(JSON)を生成します。
    Node-RED _ 192.168.1.9 - Google Chrome 2023_12_21 20_57_33.png
  • Elasticsearch : http通信するサブフローです。

Kibanaで可視化

既に屋内は監視しているので、ほぼコピーであっさり可視化しました。またCanvas使いたくなってきた。

おわりに

家の外の温度と湿度が室内から監視できるのは良いですね。しかも安くてビーコンの値がそのまま使えます。

(しかし、百葉箱のようなものに入れておかないと流石に年単位の長期間の放置は不安ですね。夏は暑さで壊れそうな気もしますし。)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?