【家ブログAdvent Calendar 2021】「SwitchBot温湿度計を絶対湿度ロガーにする」でハマったところ【10日目】
この記事は家ブログAdvent Calendar 2021の10日目の記事です。
- どんな記事ですか?
- ハマったところ1 :Hub連携のさせ方,必要性が分からなくてハマった
- ハマったところ2 :スクリプトエディタがなくなっててハマった
- ハマったところ3: Apps Scriptがエラーになってハマった
- ハマったところ4:イキってコードいじってハマった
- ハマったところ5:Google Apps Scriptで認証が通らなくてハマった
- ハマったところ6:スコアカードの名前を変更できることに気づかずにハマった
- ハマったところ7:スマホからの見た目を改善する方法が分からずハマった
- ハマったところ8:データの更新方法が分からなくてハマった
- 実装してみた感想
どんな記事ですか?
とみはさん作の神記事
SwitchBot温湿度計を絶対湿度ロガーにする
を実装しようとしたらいくつかハマったので共有します.
AmazonブラックフライデーでSwitch Bot 温湿度計を買ったので3記事くらい,SwitchBotの話をしようと思います.
ハマったところ1 :Hub連携のさせ方,必要性が分からなくてハマった
クラウドサービスをオンにしてSwitchBot Hub miniと連携をさせておく
この手順が指しているのはこれだと思うのですが
SwitchBot温湿度計のセットアップ方法及びHubシリーズとのペアリング
これやらなくてもうまくいったんですよね…
HubMiniをアプリに登録した段階で温湿度計は雲マークになっていたので雲マークになってたら良いのかな?
ハマったところ2 :スクリプトエディタがなくなっててハマった
ツールからスクリプトエディタを開き以下のコードを記載する
スクリプトエディタはなくなって,Apps Scriptに代わっていました.
またツールではなく拡張機能っていうメニューバーに移動していました.
ハマったところ3: Apps Scriptがエラーになってハマった
以下のように「現在ファイルを開くことができません」というエラーが出てきて進めなくなりました.
これは以下の条件に合致した時に出るようです.
・Googleアカウントを複数持っていて,どちらもブラウザにログインしている
・後からログインしたほうのアカウントでGASを開こうとする
対応策は「すべてのアカウントをログアウトした後、GASを使いたいアカウントを最初にログインする」です.
デフォルトアカウントという概念が分かりづらいのでかみ砕いて書きましたが,検索時は「GAS default account」とかでググるといいと思います.
ハマったところ4:イキってコードいじってハマった
※とみはさんのコード通り書けば問題ないです.
ソースコードのここの部分の意味が分かっていなくていらなくね?って削除した結果動かなくて戻しました(笑)
これはこの後出てくる,
データポータルのスコアカードは特に指定しないと,全データの平均値を表示してしまう
→最新の取得データと過去データを識別する必要がある
→最新データはID列の値を1,過去データは2にすることで識別する
ために必要なコードでした.
皆さんはイキってコードいじらないようにしましょう.
(プログラムは基本的に写経→動作確認→カスタマイズがお勧めです.)
ハマったところ5:Google Apps Scriptで認証が通らなくてハマった
実際はハマってないのですが,ハマる人もいるだろうな~と思うので念のため
GASでトリガーを作成しようとすると以下の画面が出るかもしれません.
これは無視してよい警告なので
以下の手順で承認してください.(画像は以下のサイトから引用)
ハマったところ6:スコアカードの名前を変更できることに気づかずにハマった
スコアカードをそのまま追加すると列名になります.
でも元記事をみると日本語になっていたのでわざわざ元スプレッドシートを変更するのか?っと少しハマりました.
流石にそんなことはなくここから変更できました.
自然過ぎて見落としてました…
ハマったところ7:スマホからの見た目を改善する方法が分からずハマった
レイアウト設定を初期設定からいじらないと以下のような見た目になりました.
ちょっとイケてないなと思ったので
ファイル>テーマとレイアウト>レイアウト
から以下の設定にしました.
※後述する理由からヘッダーは常に表示がお勧めです.
ハマったところ8:データの更新方法が分からなくてハマった
とみはさんの記事によると
難点としてはGoogleスプレッドシート側の更新頻度が5分ごと(設定に寄る)、データポータルの更新頻度は15分ごと程度なので、「完全にリアルタイムの温湿度か?」と言われると少し前の温湿度を表示していることにはなる。しかし、そもそもSwitchBot温湿度計はBLE経由でも2分ごと、SwitchBot Hub mini経由であればおよそ30分毎にしか温湿度の値が更新されない。この点を考慮すると、それなりに近い段階での温湿度をログの取得も含めて実行できる、というだけで十分な気もする。
どうしてもリアルタイムに近いデータを取得したい場合はRaspberry Piを使うなどしてBluetooth Low Energy(BLE)でデータを取得してもらいたい。これはかなり色々な方の記事が出ているので参考になると思う。
とあったのですが,リアルタイムで確認したくて方法を探して時間をくいました.
検索して出てくるのは,「データソースの更新頻度を変える」なのですが今回の手順ではレポート内にデータを埋め込んでいるのでデータソースを使っていません.
よって更新頻度を変更する方法は見つけられませんでしたが,その代わりに手動でデータを更新する方法はわかりました.
PC/iphone共通
右上にある をクリックし、 [データを更新] をクリックします
PC限定
実装してみた感想
・とみはさんの記事は神!ハマらなければ15分もあれば実装できます.
・スマホで絶対湿度が見れるのは便利!湿度管理がしやすい!
・SwitchBotよりグラフが見やすくできる(縦軸が固定できるので)!
・ログが残るのも最高!ブログネタにもなるし住環境改善の指標にもなる!
・データポータル分かりづらい!もっとよいBI使いたい!
→AppSheetで代用できないか検討中
・グラフが見ずらい,スマホだと各プロットをうまくタップできない
・カスタマイズ要素多い!例えば一日の最高最低気温をスコアカードに残してみたり,見た目に凝ってみたりとBIはいじりがいがありそうです.
よかったらAdvent Calendarの他の記事もご覧になってください。