1

環境:

COSM を使用した最初のプロジェクトは、電気メーターからのデータポイントを記録することです。feed のグラフを見ると、データポイントが正しく受信されているように見えても、ゼロで横ばいになっています。

何が問題なのか、またはデバッグするために探す必要があるものはありますか?

より詳しい情報:

フィードをデバッグすると、1 分あたり約 8 つの API リクエストを受信して​​いることがわかります。

これは、COSM の「デバッグ フィード」インターフェイスによって表示される、受信したデータポイントのインスタンスです。特に、応答が 200 [ok] であり、要求本文に適切なタイムスタンプとゼロ以外の値があることに注意してください。

200 POST /api/v2/feeds/129722/datastreams/1/datapoints 06-05-2013 | 08:16:54 +0000

Request Headers
Version HTTP/1.0
Host    api.cosm.com
X-Request-Start 1367828214422267
X-Apikey    <expunged>
Accept-Encoding gzip, deflate, compress
Accept  */*
User-Agent  python-requests/1.2.0 CPython/2.7.3 Linux/3.6.11+
Origin  

Request Body
{"at": "2013-05-06T08:16:57", "value": 164.0}

Response Headers
X-Request-Id    245ee3ca6bd99efd156bff2416404c33f4bb7f0f
Cache-Control   max-age=0
Content-Type    application/json; charset=utf-8
Content-Length  0

Response Body
[No Body]

アップデート

ドキュメントでは JSON がデフォルトであると指定されていますが、明示的に ".json" を POST URL ( /api/v2/feeds/129722/datastreams/1/datapoints.json) に追加しましたが、違いはないようです。

更新 2

「値」の値を文字列で囲んだため、リクエストの本文は次のようになります (たとえば)。

{"at": "2013-05-06T15:37:06", "value": "187.0"}

同じ動作: デバッグ ビューで更新が表示されますが、グラフ ビューではゼロしか報告されません。

更新 3

COSM 提供のグラフではなく、API を使用してデータを調べてみました。私の推測では、何らかの理由でデータポイントが保存されていないということです (200 OK の戻りステータスにもかかわらず)。この URL を Web ブラウザに入力すると、次のようになります。

http://api.cosm.com/v2/feeds/129722.json?interval=0

私はこれに応じて得ます:

{"id":129722,
 "title":"Rainforest Automation RAVEn",
 "private":"false",
 "tags":["power"],
 "feed":"https://api.cosm.com/v2/feeds/129722.json",
 "status":"frozen",
 "updated":"2013-05-06T05:07:30.169344Z",
 "created":"2013-05-06T00:16:56.701456Z",
 "creator":"https://cosm.com/users/fearless_fool",
 "version":"1.0.0",
 "datastreams":[{"id":"1",
                 "current_value":"0",
                 "at":"2013-05-06T05:07:29.982986Z",
                 "max_value":"0.0",
                 "min_value":"0.0",
                 "unit":{"type":"derivedSI","symbol":"W","label":"watt"}}],
 "location":{"disposition":"fixed","exposure":"indoor","domain":"physical"}
}

デバッグ ツールが 1 分間に 7 つまたは 8 つの更新を表示しているにもかかわらず、状態が "凍結" (最後の更新が受信されてから 15 分以上前) としてリストされていることに注意してください。データポイントはどこに行くのですか?

4

2 に答える 2

2

解決しました。cosm.com サポートの @Calum が親切に指摘したように、適切な形式のリクエストを送信していませんでした。次の JSON を送信していました。

{"at": "2013-05-06T08:16:57", "value": 164.0}

いつ送信する必要があったか:

{
  "datapoints":[
    {"at": "2013-05-06T08:16:57", "value": 164.0}
  ]
}

Calum はまた、トランザクションの数を減らすために、一度に複数のポイントをまとめることもできると指摘しています。それについては後で説明しますが、今のところは、リクエストの本文を修正したことですべてが機能し始めたと言えます。

于 2013-05-07T04:55:46.140 に答える