问题标签 [fiware-sth-comet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
203 浏览

fiware - 无法创建 STH 上下文代理订阅

我正在使用sth-comet 的 github repo的 master 分支(目前是 的预发行版2.0.0-next),我能够安装和执行它。当我想在上下文代理(v1.4.0)上创建订阅时出现问题。这两项服务都安装在同一台 FIWARE Lab 机器上,我使用公共 IP 地址远程访问它们。

我一直在尝试使用您的文档中提供的模板创建订阅,但是 STH 总是抱怨FIWARE-ServiceFIWARE-ServicePath标头(似乎上下文代理没有将它们与通知一起发送)。这是创建订阅的命令:

这是报告的错误:

如果我使用上下文代理 API 的 v2,我可以强制它发送FIWARE-ServiceFIWARE-ServicePath标头:

这样,STH 服务器不符合标头,尽管它会引发其他错误:

0 投票
1 回答
794 浏览

fiware - Fiware - Orion Context Broker 订阅未发送到 STH,“条件应该是一个数组”

当尝试使用 STH 来存储和检索发送到 OCB 的数据时,我在订阅时遇到了问题。

我的问题是订阅创建进展顺利。当我按如下方式创建订阅时:

我收到以下答案:

但是在 Fiware 服务器上,我看到一个关于运行容器的终端条件的错误,以及另一个关于属性的错误:

此外,在更新我的实体的值时,

查询 STH 时我什么也没得到:

返回:

笔记:

  • 我使用 NGSI V1,因为我怀疑 V2 尚不支持 STH 接收有关此问题的 NGSI V2 通知。我也没有找到任何关于使用 NGSI V2 获取历史原始上下文信息的文档,例如在这个页面上
  • 我将 Docker-machine 与在 Fiware-Lab 上运行的单个 Debian 8 VM 一起使用,并带有以下图像:

    /li>

编辑 1:删除 Orion Docker 映像的“开发”后,我现在正在运行 Orion 的版本“1.6.0-next”,并且不再有运行时错误。尽管如此,我仍然无法获得实体属性的任何历史价值。我必须在请求中做一些错误,但我不知道在哪里。

现在我的 docker-compose 文件如下所示:

编辑 2:遵循@GermánTorodelValle 的建议,我尝试模拟向 STH 容器发送的通知,就像 CB 发送的那样:

STH容器的日志如下:

0 投票
1 回答
84 浏览

notifications - FIWARE - Orion 和 STH 重复通知

我有一个场景,其中对某个实体进行了两个或多个订阅(具有相同的通知 url)。在这种情况下,我有许多相同的订阅。当与订阅条件相关的属性更新时,我收到的通知与我所做的订阅一样多。这样,我就有了不必要的消息,导致不必要的处理。

有没有办法解决这个问题?Orion 和 STH Comet 都不处理这个问题。也许 Orion 和 STH 可以拒绝创建已经存在的订阅。如果这个 Orion 行为被更新,也许 STH Comet 不需要处理它。

0 投票
1 回答
200 浏览

fiware - 连接 Cygnus 和 STH 时出错

我正在尝试连接 Cygnus 和STH. 我在容器泊坞窗中有一个 Cygnus 实例,STH在 VM 中有一个实例。

当我向 Cygnus 发送通知时,可用fiware-cygnus/cygnus-ngsi/resources/ngsi-examples/notification-json-simple.sh它向我显示以下错误:

注意:我替换了 STH IP 来发布问题

时间=2017-03-06T17:35:46.522Z | lvl=错误 | corr=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | 反式=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | srv=红色 | subsrv=/红色/红色 | comp=cygnus-ngsi | op=processRollbackedBatches | msg=com.telefonica.iot.cygnus.sinks.NGSISink[394]:持久性错误。消息:-,在等待与 PrimaryServerSelector 匹配的服务器时在 30000 毫秒后超时。集群状态的客户端视图是 {type=UNKNOWN, servers=[{address=:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: 异常接收消息}, 由 {java.net.SocketException 引起:连接重置}}],堆栈跟踪:[com.telefonica.iot.cygnus.sinks.NGSISTHSink.persistOne(NGSISTHSink.java:158),com.telefonica.iot.cygnus.sinks.NGSISTHSink.persistBatch(NGSISTHSink.java: 93),com.telefonica.iot.cygnus.sinks.NGSISink。processRollbackedBatches(NGSISink.java:387), com.telefonica.iot.cygnus.sinks.NGSISink.process(NGSISink.java:370), org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68), org .apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147), java.lang.Thread.run(Thread.java:745)] 时间=2017-03-06T17:35:46.522Z | lvl=信息 | corr=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | 反式=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | srv=红色 | subsrv=/红色/红色 | comp=cygnus-ngsi | op=doRollbackAgain | msg=com.telefonica.iot.cygnus.sinks.NGSISink[458] :再次回滚(0767a9d2-d44e-4872-9ef4-b57d68ef7f88),这是重试#9 运行(SinkRunner.java:147), java.lang.Thread.run(Thread.java:745)] 时间=2017-03-06T17:35:46.522Z | lvl=信息 | corr=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | 反式=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | srv=红色 | subsrv=/红色/红色 | comp=cygnus-ngsi | op=doRollbackAgain | msg=com.telefonica.iot.cygnus.sinks.NGSISink[458] :再次回滚(0767a9d2-d44e-4872-9ef4-b57d68ef7f88),这是重试#9 运行(SinkRunner.java:147), java.lang.Thread.run(Thread.java:745)] 时间=2017-03-06T17:35:46.522Z | lvl=信息 | corr=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | 反式=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | srv=红色 | subsrv=/红色/红色 | comp=cygnus-ngsi | op=doRollbackAgain | msg=com.telefonica.iot.cygnus.sinks.NGSISink[458] :再次回滚(0767a9d2-d44e-4872-9ef4-b57d68ef7f88),这是重试#9

并且什么都没有发布在 STH 中。

在我的agent.conf(cygnus conf)中,我有这个:

我的 STH 配置是:

0 投票
1 回答
105 浏览

fiware - Fiware STH:行数据 API 不公开元数据

我正在使用 Cygnus 和 Mongo 和 sth sink 来检索历史数据。

在 cygnus mongo sink 的当前实现中,属性元数据不存储在数据库中。所以我更新了 cygnus 以便能够存储属性元数据。但是当我使用 STH-comet 检索历史时,API 显然不支持检索属性元数据。

我是否缺少某种配置或 API 不支持属性元数据,因为我从 STH-comet 得到的响应是:

在 mongoDB 数据库中,我有以下内容:

如果 API 不支持检索属性元数据,是否可以添加此功能?

谢谢和最好的问候。

0 投票
1 回答
133 浏览

fiware - Fiware Cygnus - 错误:当 Cygnus 收到两次或多次通知时,集合已存在

我正在使用配置有STH. 当 Cygnus 接收到任何实体的两个或多个更改通知时,它无法将新值发送到STH. 它记录错误collection already exists并且不保存更改。在第一个通知中,一切顺利。

我已经执行了以下步骤:

  • 在 Orion 中向任何实体创建通知
  • 更改实体属性

第一次,Cygnus 工作正常,所以我再次更改属性,Cygnus 显示错误。

如何解决这个问题呢?

完整的信息是:

* 如文档中所述,我在容器 docker 中使用 cygnus。

* 我用mongodb-ip:27017真实的 ip 在这里发帖。

我在我的 agent.conf (Cygnus) 中使用的配置是:

STH一边,我有以下配置:

0 投票
1 回答
54 浏览

fiware-orion - Orion 按时间顺序咨询

我想知道是否可以使用 orion Context Broker 查阅旧数据。

EG:我有一个温度属性,值是不断变化的(4,5,9,10,30,2)。在示例和规范中,我的印象是只能查阅最新值(在本例中为 2)。

这是准确的吗?如果是,旧数据会被删除吗?

0 投票
1 回答
160 浏览

fiware - STH 获取历史原始上下文

为了使用简约选项,我安装了 Orion 和 Fiware STH。

问题是当我订阅一个猎户座上下文然后咨询时,数组为空。

在 STH 日志中它说:

收集原始数据集合以进行检索时出错(该集合可能不存在)。

我注意到,当我尝试取消订阅时,它会返回一条200 OK带有以下正文的消息:

编辑:请求 URL 是:
192.168.60.117:8080/STH/v1/contextEntities/type/room/id/Room‌​1/

0 投票
1 回答
186 浏览

fiware - 从 sth-comet 检索数据时错误获取空值

首先我使用这个脚本注册服务

curl -H“内容类型:应用程序/json”-H“Fiware-Service:cairoUniversity”-H“Fiware-ServicePath:/FCI/ICDL”\ http://XXXX:4041/iot/services -d'{“服务”:[{“apikey”:“api1”,“cbroker”:“ http://0.0.0.0:1026 ”,“entity_type”:“Camps”,“资源”:“/iot/d”}]} '

然后我使用这个注册设备

curl http://XXXX:4041/iot/devices \ -H "Content-type: application/json" -H "Fiware-Service:cairoUniversity" -H "Fiware-ServicePath: /FCI/ICDL" \ -d '{ “设备”:[ { “device_id”:“smartmeter2”,“entity_name”:“ICDL2”,“entity_type”:“Camps”,“协议”:“PDI-IoTA-UltraLight”,“时区”:“欧洲/马德里", "属性": [ { "object_id": "c", "name": "Conscemption", "type": "int" } ] } ] }'

然后我订阅了猎户座

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Fiware-Service: cairoUniversity" \ -H "Fiware-ServicePath: /FCI/ICDL" -H​​ "Cache -Control: no-cache" -d '{ "entities": [ { "type": "Camps", "isPattern": "false", "id": "ICDL2" } ], > "attributes": ["概念”],“参考”:“http ://XXXX:8666/notify”,“持续时间”:“P1M”,“notifyConditions”:[{“type”:“ONCHANGE”,“condValues”:[“概念”]}]}'“ http://XXXX:1026/v1/subscribeContext ”}

之后我发送观察

curl " http://XXXX:7896/iot/d?k=api1&i=smartmeter2 " -d 'c|47' -H "内容类型:文本/纯文本"

最后从某事中检索数据

curl -X GET \
' http://XXXX:8666/STH/v1/contextEntities/type/Camps/id/ICDL/attributes/Conscemption?aggrMethod=min&aggrPeriod=day&dateFrom=2015-01-28T00%3A00%3A00&dateTo=2018- 01-01T23%3A59%3A59 '\-H'接受:应用程序/json'\-H'缓存控制:无缓存'\
-H'内容类型:应用程序/json'\-H'fiware-service: cairoUniversity' \ -H 'fiware-servicepath: /FCI/ICDL' | python -mjson.tool }

我得到了这个回应

“contextResponses”:[{“contextElement”:{“attributes”:[{“name”:“Conscemption”, “values”:[] }],“id”:“ICDL”,“isPattern”:false,“type ": "Camps" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ]

这是日志

……彗星 | 时间=2017-09-04T14:26:44.782Z | lvl=信息 | 更正=不适用 | 反式=不适用 | 操作=OPER_STH_SERVER_LOG | 来自=n/a | srv=n/a | subsrv=n/a | 比较=STH | msg=一切正常,最近 60 秒间隔内有 0 个请求参与 sth-comet | 时间=2017-09-04T14:27:44.787Z | lvl=信息 | 更正=不适用 | 反式=不适用 | 操作=OPER_STH_SERVER_LOG | 来自=n/a | srv=n/a | subsrv=n/a | 比较=STH | msg=一切正常,过去 60 秒间隔内有 0 个请求参与

……彗星 | 时间=2017-09-04T14:27:52.834Z | lvl=警告 | corr=99577e81-bbd4-4130-95f6-a9d029f84db0 | 反式=99577e81-bbd4-4130-95f6-a9d029f84db0 | 操作=OPER_STH_GET | 来自=n/a | srv=开罗大学 | subsrv=/FCI/ICDL | 比较=STH |

> msg=获取聚合数据集合进行检索时出错(集合可能不存在)

……彗星 | 时间=2017-09-04T14:28:44.792Z | lvl=信息 | 更正=不适用 | 反式=不适用 | 操作=OPER_STH_SERVER_LOG | 来自=n/a | srv=n/a | subsrv=n/a | 比较=STH | msg=一切正常,最近 60 秒间隔内有 0 个请求参与 sth-comet | 时间=2017-09-04T14:29:44.797Z | lvl=信息 | 更正=不适用 | 反式=不适用 | 操作=OPER_STH_SERVER_LOG | 来自=n/a | srv=n/a | subsrv=n/a | 比较=STH | msg=一切正常,最近 60 秒间隔内有 0 个请求参与 sth-comet | 时间=2017-09-04T14:30:44.805Z | lvl=信息 | 更正=不适用 | 反式=不适用 | 操作=OPER_STH_SERVER_LOG | 来自=n/a | srv=n/a | subsrv=n/a | 比较=STH | msg=一切正常,最近 60 秒间隔内有 0 个请求参与 sth-comet | 时间=2017-09-04T14:31:44.811Z | lvl=信息 | 更正=不适用 | 反式=不适用 | 操作=OPER_STH_SERVER_LOG | 来自=n/a | srv=n/a | subsrv=n/a | 比较=STH | msg=一切正常,

什么可能会导致此问题以及如何解决

0 投票
0 回答
117 浏览

fiware - 使用 FIWARE-PEP-STEELSKIN 保护短期历史(STH,又名彗星)

我正在通过使用 Steelskin(PEP Proxy GE 的附加 GEi)(https://github.com/telefonicaid/fiware-pep-steelskin)来解决 FIWARE Short Time Historic(STH,又名 Comet)安全化问题。

我们终于想出了一个完美地与 orion 和 perseo 配合使用的配置,但它不能正确处理 STH 调用。它返回:

但它完美地处理了给定令牌的猎户座呼叫。有没有人在 docker-compose 架构上进行工作配置?

我们的 PEP 前端如下所示:

根据:https ://github.com/telefonicaid/fiware-pep-steelskin/blob/master/errorcodes.md

这可能是 keypass 配置问题。创建和分配授权角色以允许对 pep 代理的查询?

在此先感谢您的帮助。

最好的!