はじめに
CO2センサーのデータを格納し始めて約2週間経過。そろそろデータも溜まって来たのでCSVにでも出力してみることにする。
出力にはSensorDataDBコンポーネントを使う。これがいろいろ細かいところまで行き届いてるので便利。
使用環境
- Raspberry Pi 4 Model B w/4GB RAM
- Ubuntu Server 20.04.1 LTS
- Gravio HubKit v4.1.0-6380
- Gravio Studio v4.1.5432.0
- Gravio CO2センサー
事前準備
- Gravio 4とPower BIでCO2を可視化するでCO2データの取得をしておく
手順
アクションの作成
いつものようにアクションを作成して、[Sensor Data DB] → [Join] → [CSV Write]とコンポーネントをつなげる。
Sensor Data DBコンポーネントの設定
まずはSensor Data DBコンポーネントで取得するデータの設定。
エリアとレイヤーを指定し、とりあえず全データを取得してみるので、「全てのレコード」をチェックする。
Joinコンポーネントの設定
Joinコンポーネントはそのままでよい。とりあえずデフォルトのまま。
Sensor Data DBのままCSV Writeにわたすと、1レコードずつファイルに出力されるので、Joinで全てのレコードをまとめると考えればよいです。
CSV Writeコンポーネントの設定
最後にCSV Writeコンポーネントの設定。
ファイル名だけ指定しておきましょう。ここで指定したファイルはHubKitのデータフォルダに作成されます。
実行
実行してみます。
データが多いと結構時間がかかりますのでご注意を。ちなみに、私の場合は約2週間、11万件くらいをラズパイで実行して30秒くらいかかりました。
ダウンロード
アクション一覧の画面に戻って、データフォルダを開き、ファイルができてることを確認したら、ダウンロードしてみましょう。
CSVができました。
上級編
上級編というほどではないですが、いろいろパラメータを弄ってみます。
過去1日のデータを取得
From Previousに 1
を、タイムスケールに 日
を指定します。前からの流れだと、「全てのレコード」のチェックを外すのも忘れずに。
これで、実行した時刻から遡って1日分のデータが取得できます。これなら3秒くらい。
昨日のデータを取得
上と同じでいいですが、「時間を丸める」をチェックします。
すると、ちょうど昨日の分のデータを取ってきてくれます。自分で時刻を丸める必要がありません。
過去1000件取得
まとめ
Sensor Data DBコンポーネントを使うと、過去に受信したデータをまとめて処理することができます。
Sensor Data DBコンポーネントでは、取得する範囲を時間で指定したり、件数で指定することができ、さらに時間を丸めることで、いい感じの時間範囲のデータを取得することができます。
CSVへの出力は、CSV Writeコンポーネントを使います。ただし、Sensor Data DBコンポーネントからの出力はレコード単位になっているので、間にJoinコンポーネントを挟むことでレコードをまとめてCSVに書き出すことができます。