LoginSignup
0

More than 3 years have passed since last update.

Gravio 4からCO2データをMachinistに送って可視化する

Last updated at Posted at 2021-02-19

GravioでCO2データを可視化シリーズの第3弾でございます。
今回はIIJが提供するサービス「Machinist」です。無料で直近1ヶ月分、10メトリックまでのデータを保存できます。月額680円で100メトリック6ヶ月分まで保存できますので、Gravio Basicの500円と合わせても1000円ちょっとで使えて便利ですね。(2021/2/19現在)

image.png

過去2回はこちらをどうぞ。

使用環境

  • 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
  • Gracio CO2センサー (Gravio Standardの契約が必要)
  • Machinist

事前準備

手順

APIキーを取得する

Machinistにログインして、「アカウント設定」に移動します。

image.png

APIキーを新規作成します。

image.png

名前は「Gravio」としておきましょう。
image.png

作成したAPIキーをコピーしておきます。

image.png

アクションを作成する

Gravio Studioを使ってアクションを作成します。いつものようにHTTP Requestコンポーネントです。

image.png

各プロパティには以下を指定します。

プロパティ
HTTPメソッド POST
URL https://gw.machinist.iij.jp/endpoint
Content-Type (デフォルト)
認証方式 Bearer認証
トークン 上で取得したMachinistのAPIキー

Pre Mappingでは、cv.Payloadに以下のJSONを指定します。

cv.Payload
{ "agent": "Gravio", "metrics": [ {"name": tv.KindName, "namespace": tv.AreaName, "tags": {"location": tv.AreaName},  "data_point": {"timestamp": ToInt(ToDate(tv.Timestamp)), "value": tv.Data} } ]}

今回tv.Data以外にもいくつかトリガー変数を渡しています。
メトリックの名前にはtv.KindNameというデータの種別名を使います。名前空間とタグ locationを使ってtv.AreaNameでエリア名を使ってみます。また、時刻情報にはtv.Timestampを使います。ここで、MachinistのtimestampにはUnix時刻を指定しなければなりません。tv.Timestampをそのまま使ってしまうと文字列でシリアライズされるので、一度ToDate()で時刻型にしてからToInt()でUnix時刻に変換しています。

実行すると、結果のJSONにSucceededと返ってきました。

image.png

結果の確認

Machinistのダッシュボードに移動すると、メトリック数が 1 となってます。

image.png

これをダブルクリックすると、このようにダミーのエリア名や種別名、データ 0でデータが届いていることがわかります。

image.png

トリガーで連携

トリガーを作成し、有効化します。
image.png

Machinistのメトリックのところにリアルメトリックが追加されています。

image.png

ダブルクリックして大きくしてみます。

image.png

チャートのツールバーの左端の「▶」をクリックするチオリアルタイムにチャートが更新されていきます。
ちなみに、値は1分間の最後の値が表示されるようです。

ツールバーを色々いじってみるといい感じで集計されたりするので面白いですよ。

チャートを公開してみる

Machinistではチャートを公開することも可能です。

カスタムチャートに移動し作成してみます。
image.png

メトリックを選択して保存します。

image.png

チャートが作成されるので、チャートに下にある「チャートの共有」を「有効」にして、その下で細かい調整を行います。

image.png

最後に一番下にある「共有リンクを作成する」をクリックします。

image.png

リンクが表示されるので、このURLをコピーして共有します。

image.png

共有できました。埋め込み用のiframeのコードも作成できますので、サイトに埋め込んでみても面白いですね。

image.png

ポイント

  • Machinistにデータを送るには、APIキーを取得し、それをBearer認証のトークンに渡す。データはJSON形式。
  • 送信データのtimestampはUnix時刻。省略することも可能。
  • チャートを公開することも可能

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0