« BLE で正しい値が取れない… | トップページ | SwitchBot 温湿度計で表示される温度と湿度を Ambient でグラフ化が迷走しているので状況を整理しよう(その2) »

2022.03.24

SwitchBot 温湿度計で表示される温度と湿度を Ambient でグラフ化が迷走しているので状況を整理しよう(その1)

| |コメント (0)

 このエントリーをはてなブックマークに追加

どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)

SwitchBot 温湿度計で表示される温度と湿度を Ambient でグラフ化するはずが、だんだんグデグデになってきているので一度状況を整理しようと思う。

SwitchBot API を使った curl コマンドでデバイスリストを取得

まずは SwitchBot API をお手軽に実行できる curl コマンドでの情報取得をやってみることにした。

curl -X GET "https://api.switch-bot.com/v1.0/devices" -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: application/json; charset=utf8" | jq .

期待通り、デバイスリストは取得できた。

この記事を各段階で要約気づいたが、各デバイスの deviceId は、 SwitchBotアプリの各デバイス情報にある BLE MAC から : を抜いた値と一致しているようだ。
(手持ちのボットスイッチ、温湿度計x3個、加湿器、カーテン、ハブミニの全てで一致しているのを確認した)

デバイスリストから3つある SwitchBot 温湿度計の deviceId からステータスを取得

デバイスリストが取得できたので指定デバイスのステータスの取得をしてみることに。

curl -X GET "https://api.switch-bot.com/v1.0/devices/dddddddddddd/status" -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: application/json; charset=utf8" | jq .

試しにさっき調べてみたら

スマホと本体の値(温度:18.4℃、湿度45%)
curlで取得した値(温度:16.5℃、湿度51%)

と一致していなかった。

curl で取得した値と一致する温湿度計が存在しなかったことに、「SwitchBot 温湿度計の温湿度を取得しよう」の記事を書いた段階では気づいていなかった…。

理由は、なんとか日が変わる前にブログを更新しようとする意識が強すぎて、取得した値が SwitchBot 温湿度計の値と一致しているかに気が回っていなかったからだ。

そして、それが発覚したのが Ambient で Nature Remo 3 と SwitchBot 温湿度計3個、 SwitchBot 加湿器の温度をひと目で見れるグラフを出力するプログラムを作った段階。
記事でいうと「うむ、どうしてこんなグラフになったのか、わからぬ…(´・ω・`)」のときだ。

この段階で API を使った Web 経由の値取得より BLE 経由の値取得の方が良いのでは?と思った。

Windows 10 用の BLE ライブラリである bleak を使って Switchbot 温湿度計の温度と湿度を取得

Windows10でBLE SwitchBot温湿度計」という記事を見つけ、その記事にあるサンプルプログラムを実行した。

それが「Windows 10 用の BLE ライブラリである bleak を使って Switchbot 温湿度計の温度と湿度を取得(その1)」の記事を書いた段階。

一応、このサンプルでは、SwitchBot 温湿度計とプログラムの取得している値が一致していることは確認した。

が、このサンプルを解説するに当たり、かげさんが python という開発言語をよく知らないために言語仕様を調べるのに時間がかかっていた…

そうして調べ物をしているうちに M5Stack で BLE を使って SwitchBot 温湿度計の情報を取得して Ambient でグラフにする記事「【SwitchBot温湿度計モニター】の製作~ソースコード付き~」を見つけた。

で、かげさんは M5Stack を持っている、かつ、M5Stack を Arduino IDE を使って開発する場合の開発言語は、慣れ親しんだ C 言語と似ている。

なら、M5Stack でグラフ化する方が、早期にやりたいことが実現できるかも?

そう思って、Python での開発より、先に M5Stack でグラフ化しようと思ったわけだ。

そして新たな迷走が始まるところで続く(笑)

ここまではOKだ



より大きく、より頼もしい。3インチのTNパネルを採用し、ディスプレイ表示がより見やすく、どこからでも温湿度が一目でわかります。そして、「乾燥」「快適」「湿潤」の快適レベルで部屋の快適さをよりわかりやすく把握できます。ペットや植物などに合わせた快適レベルのカスタマイズも可能です。


SwitchBot 温湿度計 デジタル スマート家電 高精度 スイス製センサー スマホで温度湿度管理 熱中症対策 アラーム付き グラフ記録 Alexa、Google home、HomePod、IFTTT に対応(ハブ必要)
ESP32ベース、内蔵Bluetooth、WiFi 16M フラッシュ、8M PSRAM。 M-バスソケット&ピン。 内蔵スピーカー、電源インジケーター、振動モーター、RTC、I2Sアンプ、静電容量式タッチスクリーン、電源ボタン、リセットボタンTFカードスロット(最大16Gサイズ) 、リチウムバッテリー、電源管理チップ搭載 独立した小型ボード内蔵6軸IMU、PDMマイク。 プログラムプラットフォーム:UIFlow、MicroPython、Arduino。

 このエントリーをはてなブックマークに追加

| |コメント (0)

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

コメント

このブログの新着コメントをRSSリーダに登録する為のxml




←名前とメールアドレスは必須です。
URLも記入すれば、URLのみが公開されます。
メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。