如何使用 HTTP API 从 IBM Watson 设备提取事件数据



我有 ibm Watson 帐户,并将我的 Labview 设备连接到 IBM 云。我需要提取我从labivew发送的数据,以便在MIT应用程序发明者中查看数据。我能够获取位置、时间戳和其他信息,如事件,但无法获取原始事件数据。

用于位置的网址:https://<org_id>.internetofthings.ibmcloud.com/api/v0002/device/types/<devicetype>/devices/<deviceid>/location

结果:

{  
   "longitude":0.0,
   "latitude":0.0,
   "elevation":0.0,
   "accuracy":0.0,
   "measuredDateTime":"2016-08-24T16:47:42.393Z",
   "updatedDateTime":"2019-01-28T18:17:07+00:00"
}

同样,如何获取通过事件发布的数据。当我尝试访问数据时,显示拒绝访问错误。我不确定如何输入我的 API 密钥进行身份验证和其他访问。

我假设您正在尝试通过 API 访问最后一个事件缓存,而不是通过 MQTT 实时流式传输实时事件?

就是这种情况,并且您收到http 403响应,那么很可能我怀疑您没有在设置中启用最后一个事件缓存功能。 默认情况下,最后一个事件缓存处于禁用状态。

参考: https://ibm-watson-iot.github.io/iot-python/application/api/lec/

上次事件缓存是 Watson IoT Platform 中的一项可选功能,启用该功能后,允许缓存每个注册设备为每个 eventId 发送的最后一个事件。默认情况下,此功能处于禁用状态,要使用此功能,您必须从仪表板启用它 https://MYORGID.internetofthings.ibmcloud.com/dashboard/settings。

启用 LEC 功能后,您应该能够通过以下位置的 API 获取缓存的事件:

https://<org_id>.internetofthings.ibmcloud.com/api/v0002/device/types/<devicetype>/devices/<deviceid>/events

或者,如果您想要特定事件:https://<org_id>.internetofthings.ibmcloud.com/api/v0002/device/types/<devicetype>/devices/<deviceid>/events/<eventid>

最新更新