语境:
我与 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 分钟前)。我的数据点去哪儿了?