node.jsでAmbientにデーターを送信するライブラリーです。このバージョンは古くなりました。新しいバージョンは「Javascript / node.jsライブラリー ambient-lib」をご覧ください。
インストール
ライブラリーはnode.jsのパッケージ管理サービスnpmに登録してあり、次のようにnpmコマンドを使ってインストールすることができます。
$ npm install ambient-lib
ライブラリーの読み込み
ライブラリーの読み込みは次のようにおこないます。
var ambient = require('ambient-lib');
Ambientへの接続
Ambientにデーターを送信するときは、最初にチャネルIdとライトキーを指定してAmbientに接続します。
ambient.connect(チャネルId, ライトキー[, リードキー[, ユーザーキー]]);
Ambientへのデーター送信
ambient.send(data, callback(err, res, body));
パラメーター
- data: 次のようなJSON形式で、キーはd1からd8のいずれかを指定します。
var data = {d1: 1.1, d2: 2.2}; - callback: データー送信後に呼ばれるコールバック関数。パラメーターはrequestモジュールのコールバック関数のパラメーターと同じです。
こんな風に使います。
ambient.send({d1: 1.1, d2: 2.2}, function(err, res, body) { if (err) { console.log(err); } console.log(res.statusCode); });
この形式でデーターを送信した場合、Ambientはデーターを受信した時刻を合わせて記録します。次のようにデーターを測定した時刻を指定することもできます。
var data = {created: 'YYYY-MM-DD HH:mm:ss.sss', d1: 1.1, d2: 2.2};
また、次のように複数のデーターを一括で送信することもできます。
var data = [ {created: '2017-02-18 12:00:00', d1: 1.1, d2: 2.1}, {created: '2017-02-18 12:01:00', d1: 1.5, d2: 3.8}, {created: '2017-02-18 12:02:00', d1: 1.0, d2: 0.8} ];
以前は複数データーの一括送信はbulk_send()という関数を提供していましたが、send()で1データーでも複数データーでも送信できるように拡張しました。 bulk_send()は互換性のために残してあります。
複数データー一括送信 bulk_send()
複数データー一括送信 bulk_send()は、互換性のために残してあります。
ambient.bulk_send(dataarray, callback(err, res, body));
パラメーター
- dataarray: 次のような形式の配列です。 createdはデーターの生成時刻で、値は“YYYY-MM-DD HH:mm:ss.sss”という形式か、 数値を渡します。 数値を渡した場合は1970年1月1日00:00:00からのミリ秒と解釈されます。
var dataarray = [ {created: '2016-07-07 12:00:00', d1: 1.1, d2: 2.1}, {created: '2016-07-07 12:01:00', d1: 1.5, d2: 3.8}, {created: '2016-07-07 12:02:00', d1: 1.0, d2: 0.8} ];
Ambientからのデーター読み込み
データー送信と同様に最初にチャネルIdとライトキー、リードキーを指定してAmbientに接続します。読み込みしかしない場合、ライトキーは”を指定しても大丈夫です。
ambient.connect(チャネルId, ライトキー[, リードキー[, ユーザーキー]]);
データーの読み込みにはデーター件数を指定する方法、日付を指定する方法、期間を指定する方法があります。
件数を指定してデーターを読み込む
ambient.read({n: 件数[, skip: スキップ件数]}, function(err, res, data) { console.log({err: err, data: data}); });
パラメーター
- n: 読み込むデーター件数を指定します。最新のn件のデーターが読み込まれます。
- skip: スキップ件数。最新からスキップ件のデーターを読み飛ばし、その先n件のデーターが読み込まれます。
- callback: データー送信後に呼ばれるコールバック関数。パラメーターはrequestモジュールのコールバック関数のパラメーターと同じです。
戻り値
次のようなJSON形式の配列が返されます。
[ {created: '2017-02-25T15:01:48.000Z', d1: 数値, d2: 数値, d3: 数値}, {created: '2017-02-25T15:06:47.000Z', d1: 数値, d2: 数値, d3: 数値}, ... ];
データーの生成時刻’created’は協定世界時(UTC)で表示されます。データーは生成時刻の昇順(古いものから新しいものへ)で並びます。
日付を指定してデーターを読み込む
ambient.read({date: 'YYYY-mm-dd'}, function(err, res, data) { console.log({err: err, data: data}); });
パラメーター
- date: ’YYYY-mm-dd’: 指定した日付のデーターを読み込みます。
戻り値
件数を指定した場合と同じJSON形式の配列が返されます。
期間を指定してデーターを読み込む
ambient.read({start: 'YYYY-mm-dd HH:MM:SS', end: 'YYYY-mm-dd HH:MM:SS'}, function(err, res, data) { console.log({err: err, data: data}); });
パラメーター
- start: ’YYYY-mm-dd HH:MM:SS’:
- end: ’YYYY-mm-dd HH:MM:SS’:
startからendまでの期間のデーターを読み込みます。
戻り値
件数を指定した場合と同じJSON形式の配列が返されます。
関連リンク
ライブラリーのソースコードはGithubで公開しました。