Projects/Sensors

提供: fukudat.net
ナビゲーションに移動検索に移動

主に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 は時系列グラフを描画する。