到目前为止,我一直在使用Fi-Lab / Cloud创建的独立模式和使用psb-orion-image处理上下文代理实例。现在我想用http // orion.lab.fi-ware.org联合该CB的一个实例。我使用XML表单来创建,更新......并且要联合的实例的名称是" UPCT:TEMPERATURE:SENSOR"传感器类型是" UPCT:SENSOR"。
因此,通过SSH连接我发送下一个表单:
(curl localhost:1026/NGSI10/subscribeContext -s -S --header 'Content-Type: application/xml' -d @- | xmllint --format -) <<EOF
<?xml version="1.0"?>
<subscribeContextRequest>
<entityIdList>
<entityId type="UPCT:SENSOR" isPattern="false">
<id>UPCT:TEMPERATURE:SENSOR</id>
</entityId>
</entityIdList>
<reference>http://orion.lab.fi-ware.eu:1026/ngsi10/notifyContext</reference>
<duration>P1M</duration>
<notifyConditions>
<notifyCondition>
<type>ONCHANGE</type>
<condValueList>
<condValue>temperature</condValue>
</condValueList>
</notifyCondition>
</notifyConditions>
<throttling>PT5S</throttling>
</subscribeContextRequest>
EOF
我得到一个正确的回复,有和订阅ID。但是,如果我更新我的实例的de contextValue并尝试向http://orion.lab.fi.ware.eu:1026发送查询,则会收到错误消息:
- :1:解析器错误:预期开始标记,&#39;&lt;&#39;未找到 在请求标头中找不到身份验证令牌 ^
我认为我应该获得与我的实例更新相同的值,如
中所示我需要知道什么是错的,我怎么能联邦政府到全球CB。
谢谢
答案 0 :(得分:0)
该错误消息是由于发送到orion.lab.fi-ware.org上的Orion实例的任何请求(包括其他Orion实例发送的通知)必须使用autentication。目前(即版本0.14.1),Orion并未在通知中包含身份验证所需的X-Auth-Token(请参阅quick start for programmers)。
然而,通常的用例是orion.lab.fi-ware.org上的Orion与私有Orion用户实例(即orion.lab.fi-ware.org - &gt;您的Orion)联合,而不是相反(即你的猎户座 - > orion.lab.fi-ware.org)正如你所想的那样。这样做通常您要做的是将公共信息(例如桑坦德城市传感器)与私人信息(例如您的传感器产生的信息)合并。联合orion.lab.fi-ware.org - &gt;以这种方式你的猎户座应该完美地工作。
编辑: Orion 0.14.1中的限制已被克服当前的Orion版本(2.0.0)在通知中传播X-Auth-Token标头(我不记得其中)精确版本介于0.14.1和2.0.0之间,对不起......)