我想使用Yoctopuce的Virtualhub rest api从传感器数据记录器获取数据。传感器手册提到了如何获取数据,但不知道如何解释数据。我一直试图从中理解,但我无法得到100%的结论。如何解释Yoctopuce传感器的数据记录器格式?
在我有多远的例子下面。也许有人在这里看到我错在哪里。或者也许有人已经完成了这项工作。
我的例子是光传感器。我清除了数据记录器的数据并开始每分钟记录一次。该值是以勒克斯测量的数字。
首先,我们需要来自数据记录器的摘要数据。这通过呼叫http://hub:4444/bySerial/LIGHTMK1-2ABABA/dataLogger.json完成。这产生如下JSON文档:
[{"id":"lightSensor","unit":"lx","calib":"0,","cal":"*","streams":
[{"run":0,"utc":1497384000,"dur":1380,"freq":"1/m","val":[0,11,15]}
,{"run":1,"utc":1497384360,"dur":1800,"freq":"1/m","val":[13,15,16]}
,{"run":2,"utc":1497387000,"dur":600,"freq":"1/m","val":[14,16,17]}
,{"run":2,"utc":1497387600,"dur":3600,"freq":"1/m","val":[0,1,18]}
,{"run":2,"utc":1497391200,"dur":3600,"freq":"1/m","val":[0,0,0]}
,{"run":2,"utc":1497394800,"dur":3600,"freq":"1/m","val":[0,0,0]}
,{"run":2,"utc":1497398400,"dur":3600,"freq":"1/m","val":[0,0,0]}
,{"run":2,"utc":1497402000,"dur":3600,"freq":"1/m","val":[0,0,0]}
,{"run":2,"utc":1497405600,"dur":3600,"freq":"1/m","val":[0,0,0]}
,{"run":2,"utc":1497409200,"dur":3600,"freq":"1/m","val":[0,1,12]}
,{"run":2,"utc":1497412800,"dur":3600,"freq":"1/m","val":[0,1,2]}
,{"run":2,"utc":1497416400,"dur":3600,"freq":"1/m","val":[2,10,18]}
,{"run":2,"utc":1497420000,"dur":780,"freq":"1/m","val":[17,17,19]}
...etc...
]}]
第一行是很明显的 - 传感器(lightSensor)及其量度(LX)的单元中的符号的名称。 流似乎是持有的数据。不幸的是,我一直无法找出什么流代表。 运行数字代表。元素在时间流逝时被添加。对于余数我假定utc表示数据的开始utc时间戳。 dur;这在后期得到证实。并且频率确实是一分钟。物业val似乎代表了一个汇总的最小/平均/最大三重。
接下来,可以通过提供传感器的名称和确切的utc值之一来请求详细信息。例如主叫http://hub:4444/bySerial/LIGHTMK1-2ABABA/dataLogger.json?id=lightSensor&utc=1497387000产生了JSON文档
[[16,16,16]
,[16,16,16]
,[15,16,16]
,[14,15,15]
,[14,15,15]
,[14,15,15]
,[15,16,17]
,[14,17,17]
,[17,17,17]
,[16,17,17]
]
乍一看这是最小/平均/最大三胞胎的阵列。这证实了假设dur表示以秒为单位的持续时间。因为有10个元素,每分钟一个元素。其中代表600秒。
我为此假设每个三元时间戳都是utc值+(index * 60)。这一切似乎都有道理。时间重叠的例外。
第一个摘要元素从utc 1497384000开始并持续1380秒。这意味着下一个元素应该从utc 1497385380开始。但是,它始于utc 1497384360.哪个是更早的时间戳!有1020秒的重叠。事实上,当运行数量增加时,似乎总是有重叠。
我希望重叠的值是相同的。他们不是。他们实际上很不相同。所以我不能忽视它们。
这一切都让人怀疑如何解释数据。是否应该考虑所有的三胞胎?重叠应该被下一个元素的值覆盖吗?或者相反?也许他们应该总结一下?
问题是,我无法找到一种方法来解释超出合理怀疑的数据。
我会那么做!但基本上你是在告诉我,我可以用后来运行的重叠值覆盖早期运行的值。 –