如何使用javascript访问Xively数据点历史记录?

时间:2013-10-24 15:34:51

标签: javascript xively

我是Xively的新手。现在我正在尝试从我得到的Feed中访问数据点历史记录。 从这个文档:http://xively.github.io/xively-js/docs/似乎我可以使用方法xively.datapoint.history(feedID,datastreamID,options {},callback(data)),但我不知道如何使用它。

我知道参数feedID,datastreamID,但我不确定选项... 来自Xively网站https://xively.com/dev/docs/api/quick_reference/historical_data/,我想我应该把开始和结束参数。我使用了feed id:40053和datastream id:airpressure。您可以尝试在此输入Feed ID以获取有关它的更多信息:http://xively.github.io/xively-js/demo/

我尝试了下面的代码,但它不起作用。我做错了什么,或者数据点历史本身是否受限制且无法访问?

// Make sure the document is ready to be handled
$(document).ready(function($) {

  // Set the Xively API key (https://xively.com/users/YOUR_USERNAME/keys)
  xively.setKey("yWYxyi3HpdqFCBtKHueTvOGoGROSAKxGRFAyQWk5d3JNdz0g"  );

  // Replace with your own values
  var feedID        = 40053;          
   var   datastreamID  = "airpressure";       // Datastream ID

  // Get datastream data from Xively
  xively.datapoint.history(feedID, datastreamID,
  {
   start:"2013-09-10T00:00:00.703576Z",
   end:"2013-10-10T00:00:00.703576Z"
  },
  function(data){
  //data.forEach(function(datapoints){document.write(JSON.stringify(datapoints["value"], null, 4));});
 document.write(JSON.stringify(data, null, 4));
  });
});

3 个答案:

答案 0 :(得分:1)

我没有正确阅读文档...... 每个查询的最长持续时间为6小时,因此将结束时间更改为“2013-09-10T06:00:00.703576Z解决了我的问题。

答案 1 :(得分:1)

您可以使用参数:durationinterval

xively.datapoint.history (feedID, datastreamID1, **{ duration: "14days", interval: "1000"}**,
    function(data){
        document.write(JSON.stringify(data, null, 4));
    }
);

答案 2 :(得分:0)

Alvinadi, 那是对的。您可以做的另一件事是将interval参数设置为大于0的值。这将降低数据点的密度,并且仅在间隔中指定的每个秒数返回一个数据点。但是,这在尝试检索大量数据的平均值时非常有用。

以下是解释可用时间间隔的API文档:https://xively.com/dev/docs/api/quick_reference/historical_data/

专业提示:设置参数limit=1000以返回最大结果数,而不必对数据进行分页。