1

语境:

我与 COSM 的第一个项目是从我的电表记录数据点。当我查看feed 的图表时,即使数据点似乎已正确接收,它仍为零。

知道出了什么问题,或者我应该寻找什么来调试它吗?

更多信息:

当我调试我的提要时,我看到它预计每分钟接收大约 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 是默认值,但我明确地在 POST URL ( /api/v2/feeds/129722/datastreams/1/datapoints.json) 中添加了一个“.json”,但这似乎没有任何区别。

更新 2

我将“值”值包含在字符串中,因此请求正文现在读取(例如):

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

仍然表现相同:我在调试视图中看到了更新,但在图形视图中只报告了零。

更新 3

我尝试使用 API 而不是 COSM 提供的图表查看数据。我的猜测是由于某种原因没有存储数据点(尽管返回状态为 200 OK)。如果我将此 URL 放在网络浏览器中:

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"}
}

请注意,尽管调试工具每分钟显示七或八次更新,但状态被列为“冻结”(收到的最后一次更新 > 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 回答
0

这听起来像是图表中的一个错误,我见过几次非常相似的东西。

我经常使用Cosm Feed Viewer Chrome 扩展程序,它使用WebSocket 端点实时显示最新值。

将自定义图表与RickshawCosmJS放在一起应该不会太难。

于 2013-05-06T09:29:41.693 回答