subscribeContext出错

时间:2015-12-10 16:16:49

标签: fiware fiware-orion

我目前正在尝试使用Configuration Manager(NECongMan)和Fiware Orion作为上下文生成器来配置Fiware Iot Broker。我对NGSI10 subscribeContext操作有疑问。

这是发送给物联网经纪人的请求:

<?xml version="1.0"?>
<subscribeContextRequest>
  <entityIdList>
    <entityId type="Room" isPattern="false">
      <id>Room1</id>
    </entityId>
  </entityIdList>
  <attributeList>
    <attribute>temperature</attribute>
  </attributeList>
  <reference>http://localhost:1028/accumulate</reference>
  <duration>PT1H</duration>
  <notifyConditions>
    <notifyCondition>
      <type>ONCHANGE</type>
      <condValueList>
        <condValue>pressure</condValue>
      </condValueList>
    </notifyCondition>
  </notifyConditions>
  <throttling>PT5S</throttling>
</subscribeContextRequest>

IoTBroker尝试联系Orion发出subscribeContextRequest但持续时间字符串已更改:

<subscribeContextRequest>
    <entityIdList>
        <entityId
            type="Room"
            isPattern="false">
            <id>
                Room1
                </id>
            </entityId>
        </entityIdList>
    <attributeList>
        <attribute>
            temperature
            </attribute>
        </attributeList>
    <reference>
        http://192.168.16.178:8080/ngsi10/notify
        </reference>
    <duration>
        P0Y0M0DT0H59M58.157S
        </duration>
    <notifyConditions>
        <notifyCondition>
            <type>
                ONCHANGE
                </type>
            <condValueList>
                <condValue>
                    pressure
                    </condValue>
                </condValueList>
            </notifyCondition>
        </notifyConditions>
    <throttling>
        PT5S
        </throttling>
    </subscribeContextRequest>

但是Orion会给出错误(无效的有效负载:持续时间字符串中的语法错误)。你知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

对于一小时,持续时间参数可以是P1H而不是PT1H,根据ISO 8601标准格式,似乎 PT仅用于避免P1M一个月与PT1M一分钟之间的歧义

希望有所帮助

答案 1 :(得分:0)

猎户座0.26.1(写入此时刻的最后一个版本)不支持持续时间字符串中秒的十进制值(如58.157)。我们创建了an issue about that,我们的计划是在下一个版本(0.27.0)解决它。

不确定修改IoTBroker行为的方式(为了将secons向上/向下舍入到它发送给Orion的请求中的整数)将是一个有效的解决方法......我不知道有关IoTBroker的详细信息。

编辑:在while字段中支持小数部分的修复程序刚刚在Orion的develop分支中实现,因此它将在下一个Orion版本(0.27.0)中提供。或者,您可以下载源代码并构建代码以立即获得修复。