Projects/Sensors

提供: fukudat.net
< Projects
2020年6月4日 (木) 00:58時点におけるFukudat (トーク | 投稿記録)による版 (ページの作成:「主にCactiと連動することを目的に、センサー類から出る時系列データを収集したり、直近の一定期間の平均をとる API を用...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動検索に移動

主にCactiと連動することを目的に、センサー類から出る時系列データを収集したり、直近の一定期間の平均をとる API を用意した。

GM-10, USBRH, IIJmio はこれでデータを集めて、Cacti とつながっている。

API

どれもアクセスにはDigest認証が必要。

デバイスリスト

HTTP GET /api/sensors/[センサーカテゴリ名]

センサーカテゴリにあるデバイスIDのリストを返す。

センサーカテゴリには以下のものがありそう。

  • temperature: 温度・湿度計 USBRH
  • radiation: ガイガーカウンタ GM-10 のdose rate
  • iijmio: IIJmioの通信容量 IIJmio

最新の値を登録する

HTTP POST /api/sensors/[センサーカテゴリ名]/[デバイスID]/[タイムスタンプ]

指定したセンサーカテゴリに所属するデバイスIDのタイムスタンプ時点の値を追加・更新する。

最新の値を読む

HTTP GET /api/sensors/[センサーカテゴリ名]/[デバイスID]/last

指定したセンサーカテゴリに所属するデバイスIDのタイムスタンプ時点の一番新しい値を読む。

Cacti のための Script/Command

例えば、cacti-temperature コマンドは、cacti の poller が呼び出すコマンドで、現在の値を以下のような形式で返す。

$ cacti-temperature [デバイスID]
t: 温度 h:湿度

これを Cacti が parse して Round Robin Database (RRD) に格納することで、cacti は時系列グラフを描画する。