xiaomiの電子ペーパーの時計&温湿度計よさげ。
— ode (@odetarou) June 27, 2020
斜めはもちろん薄暗いところでの見え方も液晶とは段違い。
BLEもついてる。
これで送料込み1500円で売るんだから強い。
日本でも販売してほしぃ。
(電子ペーパーの都合で秒はなし)https://t.co/lk0ODYODNb pic.twitter.com/LP4Ps8Cdwf
こちらの機種が良すぎたので温湿度データをラズパイで取得する方法をまとめます。
機種名
LYWSD02
商品自体の解説とセットアップ
下記記事が参考になります。
Xiaomiの温湿度計「Temperature and Humidity Monitor Digital Clock」レビュー | CLEARTEX.net
https://www.cleartex.net/entry/2020/01/26/xiaomi-digital-clock
ロケールを中国にするのが肝です。
ライブラリ
https://github.com/h4/lywsd02
python製のこれがメジャーのようでした。
ロシア人の方がBLEデータを解析してライブラリにしてくれたようです。下記記事に苦戦の解析過程が書かれています。ブラウザの翻訳等で読めます。
https://habr.com/ru/post/452558/
コード
pip3 install lywsd02
にてライブラリをインストールします。
from lywsd02 import Lywsd02Client
mac = 'xx:xx:xx:xx:xx:xx'
client = Lywsd02Client(mac, notification_timeout=30.0)
with client.connect():
data = client.data
print(data.temperature)
print(data.humidity)
print(client.battery)
温湿度計のmacアドレスを指定して
python3 main.py
などで実行すると。
macアドレスはMi Homeアプリ上から確認できます。
25.57
64
69
温度、湿度、バッテリーの値が取得できます。
私の環境ですとたまに失敗してエラーがでるのが確認できました。エラーが出た場合はリトライなど実装したほうがよさそうです。
Traceback (most recent call last):
File "main.py", line 6, in <module>
with client.connect():
File "/usr/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/home/ode/.local/lib/python3.7/site-packages/lywsd02/client.py", line 47, in connect
self._peripheral.connect(self._mac)
File "/home/ode/.local/lib/python3.7/site-packages/bluepy/btle.py", line 445, in connect
self._connect(addr, addrType, iface)
File "/home/ode/.local/lib/python3.7/site-packages/bluepy/btle.py", line 439, in _connect
raise BTLEDisconnectError("Failed to connect to peripheral %s, addr type: %s" % (addr, addrType), rsp)
bluepy.btle.BTLEDisconnectError: Failed to connect to peripheral E7:2E:00:B1:F4:82, addr type: public
各種スマートホームプラットフォーム向け実装
調べてみるといろいろありますね。
ラズパイが活躍しそうで。(本当はお家サーバー用意したくなくてクラウドで管理でメンテいらずにしたいのだけどラズパイ使わざるをえないのか。。)
Home-Assistant
ブラウザで見れるスマートホームのダッシュボード作れるやつらしいです(これから試す予定)
h4/LYWSD02-home-assistant: Home-Assistant sensor for LYWSD02 Thermometer
https://github.com/h4/LYWSD02-home-assistant
Home Assistant
https://www.home-assistant.io/
公式のDEMO
https://demo.home-assistant.io/
HomeAssistantでスマートホームコントローラを作ってみる[1/6] | 育児×家事×IoT
https://dream-soft.mydns.jp/blog/developper/smarthome/2019/12/489/
Home Assistantを使って、様々な情報を表示する『スマートホーム情報パネル』を作ってみた(温度・湿度、電力、NW、カメラ映像) | 育児×家事×IoT
https://dream-soft.mydns.jp/blog/developper/smarthome/2020/05/1218/
スマートホームのダッシュボード的なものが欲しくて、Home AssistantというOSSが良さげだったので色々と弄ってみている。これにNature Remoのプラグインを作ると良さげかも。 pic.twitter.com/e7pjBrm5Cd
— 🈚️ (@yzkiyuto) May 5, 2020
Home Assistant (hass.io) と Google Home で自宅のレガシーデバイスを操作する話 - Qiita
https://qiita.com/keigoi/items/f96dd62bb2647e872a6a
Home Assistant (hass.io) を入れると、Google Home に任意の仮想的なデバイスを追加できるようになる。
便利そう。
Home Assistant Cast - Home Assistant
https://www.home-assistant.io/blog/2019/08/06/home-assistant-cast/
Nest HubやChromecastの画面にキャストもできるみたいです。すごい。
Homebridge (iOS系)
hannseman/homebridge-mi-hygrothermograph: Homebridge plugin for the Xiaomi Mi Bluetooth Temperature and Humidity Sensor
https://github.com/hannseman/homebridge-mi-hygrothermograph
homebridge/homebridge: HomeKit support for the impatient
https://github.com/homebridge/homebridge
※iOS持ってないので詳しくはないです
おそらく下記のようにHomeアプリに温度など表示できると思われます。
下記は別センサーでの例ですがHomebridge知らない人向けに参考になりそうです。
Raspberry Pi 4 4GBモデルでこれまで構築したラズパイ環境を統合化してみる (2) "homebridgeでHomeKit対応" | THE POOH FILES
https://min2club.com/talk/2020/03/02/raspberry-pi-4-4gb%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A7%E3%81%93%E3%82%8C%E3%81%BE%E3%81%A7%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%9F%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4%E7%92%B0%E5%A2%83%E3%82%92%E7%B5%B1-2/
iOS系持ってる人は使ったほうが良さそうですが
持ってなくてもWeb UIでも見るツールあるみたいなので選択肢には入ってもよいのかもしれません。(未利用)
【Homebridge】Web管理ツール「Homebridge Config UI X」をラズパイで使う方法 - CHASUKE.com
https://chasuke.com/homebridge-config-ui-x/
oznu/homebridge-config-ui-x: Homebridge Web UI plugin to monitor, manage and control Homebridge from a browser.
https://github.com/oznu/homebridge-config-ui-x
ESPHome向け
ESPHome自体があまりわかってないですがHome Assistant用のセンサーとして連携して使えるみたいですが恐らくESP32単体でもコンポーネント使えば色々できるのかと思われます。MQTTやWebServerなど色々あるようです。
Xiaomi LYWSD02 BLE Sensor — ESPHome
https://esphome.io/components/sensor/xiaomi_lywsd02.html
ESPHome — ESPHome
https://esphome.io/index.html
ESP32/ESP8266をホームオートメーションに使うためのフレームワークESPHome – inajobのいろいろレビュー
https://inajob.github.io/iroiro-review/post/esp32-esp8266%E3%82%92%E3%83%9B%E3%83%BC%E3%83%A0%E3%82%AA%E3%83%BC%E3%83%88%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E4%BD%BF%E3%81%86%E3%81%9F%E3%82%81%E3%81%AE%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFesphome/
その他のxiaomiの温湿度計
LYWSDCGQ/01ZM
液晶、BLE、丸形、単4電池
Xiaomi Mijia 温湿度計 をIoTデバイスとして使う - Qiita
https://qiita.com/poruruba/items/d16b58dfb45e513111d6
Xiaomi Mijia LYWSD03MMC vs Mijia LYWSDCGQ/01ZM: Which Digital Bluetooth Thermometer Hygrometer is Better?
https://www.gearbest.com/community/SanfL4
ライブラリ
LynxyssCZ/node-xiaomi-gap-parser: Xiaomi GAP sensor data parser
https://github.com/LynxyssCZ/node-xiaomi-gap-parser
こちらのライブラリをLYWSD02で利用したところ温度と湿度のどちらかしか取得できなくまとめては取得できませんでした。機種によってプロトコルが微妙に違うと思われます。
LYWSD03MMC
液晶、BLE、四角形、CR2032、快適度の顔表示、安い(700円ほど)
ライブラリ
JsBergbau/MiTemperature2: Read the values of the Xiaomi Mi Bluetooth Temperature sensor 2
https://github.com/JsBergbau/MiTemperature2
こちらのライブラリをLYWSD02で利用したところ動きませんでした。機種によってプロトコルが違うようです。
READMEを読むとプライバシーに配慮したのかadvertisment dataでは送信しなくなり、BLEでの接続が必要になったようです。
MHO-C201, MHO-C202
電子ペーパー、BLEは搭載なし、CR2032
miというロゴがついて広告されていたりxiaomi製品と並んで販売されていたりxiaomi製かと勘違いするが実際は秒秒测(miaomiaoce)という企業でBLEも搭載なし。xiaomiから投資されている会社との噂。
Amazon.co.jp: 温湿度計 Homidy 温度計 デジタル湿度計 室内 高精度±0.3℃ E-Ink大画面 見やすい 顔文字でお知らせ 置き・掛け・貼り三用(マグネット付) 日本語説明書: ホーム&キッチン
https://www.amazon.co.jp/dp/B07GL1Z8P9
秒秒测(miaomiaoce)の温湿度計「MHO-C202」買った - ヒトナツログ
https://written-1natsu.hatenablog.com/entry/2018/10/27/131116