らくの備忘録ブログ

アウトプットの練習中です。

シャオミの温湿度計をHomebridgeに連携してみた

アリエクスプレスで1個400円で買える温湿度計(四角形の Hygrothermograph 2 / LYWSD03MMC)を4個買ってみました。4.5cm四方で厚さ1cm、小さく軽くてボタン電池式なので、どこにでも放り込んでおけます。

測定した温度・湿度は、シャオミのMi Homeアプリで確認できます。

メリット :過去のデータをグラフで表示できる
デメリット:現在の温度湿度を確認するのに一つずつタップする必要がある。
      データ取得に数十秒かかる。
      複数の温湿度計のデータを一度に表示できない。

Raspberry PiにインストールしたHomebridge上で動作する「Homebridge-mi-hygrothermograph」プラグインGithubで公開されていて、iPhoneの「ホーム」アプリで測定した現在の温度湿度が表示できるようなので試してみました。

  1. Homebridgeのインストール

  2. bluetoothライブラリ、homebridge-mi-hygrothermographのインストール

    $ sudo apt install bluetooth bluez libbluetooth-dev libudev-dev
    
    $ sudo npm install -g --unsafe-perm homebridge-mi-hygrothermograph

    続いて、root権限以外でNode.jsがbluetoothにアクセスできるように、以下のコマンドを実行します。

    sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)

  3. MACアドレスを調べ、復号用鍵 "Mi Bind Key" を取得する

    温湿度計2(LYWSD03MMC)は、Homebridge-mi-hygrothermographに対応していますが、測定結果が暗号化されているので、データを読み出すには復号用鍵の取得が必要です。Telink Flasherのサイトへ行きます。

    MACアドレスを調べるためには、copy linkの右にあるChromeリンクのアドレスをコピーして新しいタブに貼り付けて、

    Experimental Web Platform featuresの右にあるDisabledをEnabledに変更し、右下のRelaunchでChromeを再起動します。


    再度Telink Flasherのサイトへ行き、Get Advertising MACの右横にチェックを入れて有効にしてConnectをクリックすると、Chrome上でBluetoothバイスのスキャンが始まります。LYWSD03MMCが温湿度計2で、復号用鍵を取得したい温湿度計を選んで「ペア設定」をクリックします。(LYWSD03MMCのMACアドレスはA4:C1:38で始まるので、ここで表示されるMACアドレスはコピーしない)

    ペア設定をクリックした後、数十秒すると、温度、湿度、電池電圧が6秒間隔で表示され、その下にMACアドレスが表示されるのでメモしておいてください。

    その下のDo Activationをクリックすると、Device known idとMiトークン、バインドキーが表示されます。必要なのはバインドキーなので、コピーしておいてください。