kintoneのAdvent Calendarに参加するとのことで、久々のCO2可視化シリーズです。
ということでkintoneとGravioを連携してみます。
使用環境
- Raspberry Pi 4 Model B w/4GB RAM
- Ubuntu Server 20.04.3 LTS
- Gravio HubKit v4.4.0-6902
- Gravio Studio v4.4.4247.0
- Gracio CO2センサー (Gravio Standardの契約が必要)
- kintone (開発者ライセンス スタンダードコース)
事前準備
- kintoneの環境を準備しておいてください。環境がない場合は、こちらを参考に開発者ライセンスを取っておくといいですね。→「kintone 開発者ライセンス(開発環境)
」 - 「Gravio 4とPower BIでCO2を可視化する」を参考にCO2データを取得できるようにしておいてください。
手順
kintoneでの作業
アプリの作成
kintoneにログインし、アプリを作成します。



「はじめから作成」をクリックしましょう。
フォームの作成
フォームに「日時」と「数値」をドラッグ&ドロップします。

あとでAPIを呼ぶのを簡単にするために、日時の設定画面でフィールドコードを timestamp としておきましょう。

CO2の値の方も同様に。こちらはフィールド名や単位も変更しておきましょう。

最後に「フォームを保存」しておきましょう。

グラフの作成
グラフの種類は 折れ線、大項目に 日時 、集計方法は 平均 、条件に 日時 >(より後) 昨日 、ソートに 大項目 昇順 を指定しておきましょう。あとから適当に調整してください。

APIトークンの取得
最後に設定タブのAPIトークンからAPIトークンを生成して取得しておきます。

「生成する」ボタンをクリックします。
Gravioからはレコードを追加するだけなので、「レコード閲覧」のチェックは外し、「レコード追加」をチェックしてください。で、APIトークンはどこかに保存しておいてくださいね。

アプリ名をつけて公開
最後にアプリ名を CO2 にし、「アプリを公開」ボタンで公開します。

「OK」ボタンをクリックしてkintone側の設定は完了です。

Gravioでの設定
アクションを作成する
まずはアクションです。いつものようにHTTP Requestコンポーネントを配置します。
プロパティは次のように指定します。
| プロパティ | 値 |
|---|---|
| HTTPメソッド | POST |
| URL | https://<サブドメイン名>.cybozu.com/k/v1/record.json |
cp.Headers = {"X-Cybozu-API-Token": "dMezsbuJqhaBz5vS4bkFkmsCJ7JsloGCmQVg4brI"}
cv.Payload = {"app": 3, "record": {"timestamp": {"value": tv.Timestamp}, "CO2": {"value": tv.Data}}}
Pre Mappingsで認証情報をヘッダに、値をペイロードに指定します。

実行してみましょう。kintoneのテーブルに、現在時刻で値 0 が書き込まれたと思います。

トリガーで連携
最後にトリガーを作りましょう。CO2のデータが届いたら上で作ったアクションを実行するように設定します。

あまり多くのデータがkintoneに入ってきても困るので、1分毎くらいにしておきましょう。有効期限を 59000 にしておきます。
結果の確認
しばらくほっておくと、こんな感じでデータが入ってくるようになりますね。

グラフを見るともっとわかりやすいです。

ポイント
- kintoneのフィールドコードをASCII文字だけにするなど、わかりやすくしておくとPOSTデータを作りやすい
- データを書き込む頻度は1分毎くらいがちょうどいい





