问题标签 [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.
fiware - 无法创建 STH 上下文代理订阅
我正在使用sth-comet 的 github repo的 master 分支(目前是 的预发行版2.0.0-next
),我能够安装和执行它。当我想在上下文代理(v1.4.0)上创建订阅时出现问题。这两项服务都安装在同一台 FIWARE Lab 机器上,我使用公共 IP 地址远程访问它们。
我一直在尝试使用您的文档中提供的模板创建订阅,但是 STH 总是抱怨FIWARE-Service
和FIWARE-ServicePath
标头(似乎上下文代理没有将它们与通知一起发送)。这是创建订阅的命令:
这是报告的错误:
如果我使用上下文代理 API 的 v2,我可以强制它发送FIWARE-Service
和FIWARE-ServicePath
标头:
这样,STH 服务器不符合标头,尽管它会引发其他错误:
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容器的日志如下:
notifications - FIWARE - Orion 和 STH 重复通知
我有一个场景,其中对某个实体进行了两个或多个订阅(具有相同的通知 url)。在这种情况下,我有许多相同的订阅。当与订阅条件相关的属性更新时,我收到的通知与我所做的订阅一样多。这样,我就有了不必要的消息,导致不必要的处理。
有没有办法解决这个问题?Orion 和 STH Comet 都不处理这个问题。也许 Orion 和 STH 可以拒绝创建已经存在的订阅。如果这个 Orion 行为被更新,也许 STH Comet 不需要处理它。
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 配置是:
fiware - Fiware STH:行数据 API 不公开元数据
我正在使用 Cygnus 和 Mongo 和 sth sink 来检索历史数据。
在 cygnus mongo sink 的当前实现中,属性元数据不存储在数据库中。所以我更新了 cygnus 以便能够存储属性元数据。但是当我使用 STH-comet 检索历史时,API 显然不支持检索属性元数据。
我是否缺少某种配置或 API 不支持属性元数据,因为我从 STH-comet 得到的响应是:
在 mongoDB 数据库中,我有以下内容:
如果 API 不支持检索属性元数据,是否可以添加此功能?
谢谢和最好的问候。
fiware - Fiware Cygnus - 错误:当 Cygnus 收到两次或多次通知时,集合已存在
我正在使用配置有STH
. 当 Cygnus 接收到任何实体的两个或多个更改通知时,它无法将新值发送到STH
. 它记录错误collection already exists
并且不保存更改。在第一个通知中,一切顺利。
我已经执行了以下步骤:
- 在 Orion 中向任何实体创建通知
- 更改实体属性
第一次,Cygnus 工作正常,所以我再次更改属性,Cygnus 显示错误。
如何解决这个问题呢?
完整的信息是:
* 如文档中所述,我在容器 docker 中使用 cygnus。
* 我用mongodb-ip:27017
真实的 ip 在这里发帖。
我在我的 agent.conf (Cygnus) 中使用的配置是:
在STH
一边,我有以下配置:
fiware-orion - Orion 按时间顺序咨询
我想知道是否可以使用 orion Context Broker 查阅旧数据。
EG:我有一个温度属性,值是不断变化的(4,5,9,10,30,2)。在示例和规范中,我的印象是只能查阅最新值(在本例中为 2)。
这是准确的吗?如果是,旧数据会被删除吗?
fiware - STH 获取历史原始上下文
为了使用简约选项,我安装了 Orion 和 Fiware STH。
问题是当我订阅一个猎户座上下文然后咨询时,数组为空。
在 STH 日志中它说:
收集原始数据集合以进行检索时出错(该集合可能不存在)。
我注意到,当我尝试取消订阅时,它会返回一条200 OK
带有以下正文的消息:
编辑:请求 URL 是:
192.168.60.117:8080/STH/v1/contextEntities/type/room/id/Room1/
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=一切正常,
什么可能会导致此问题以及如何解决
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 代理的查询?
在此先感谢您的帮助。
最好的!