[英]Subscription to QuantumLeap doesnt work Orion Context Broker
[英]QuantumLeap truncating float data from Orion Context Broker
我們正在使用 Orion Context 代理,現在與 QuantumLeap 和 CrateDB 結合使用。 我們對 QuantumLeap 不是很熟悉,需要一些我們覺得奇怪的東西的幫助。
在 Context Broker 中,我們有包含數據的實體:
{
"id": "SC-5C0272FFFE8C206C",
"type": "StreetlightControlCabinet",
"activePowerR": {
"type": "Number",
"value": 0.7456,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2021-12-01T16:33:13.00Z"
}
}
},
"activePowerS": {
"type": "Number",
"value": 0.5747,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2021-12-01T16:33:13.00Z"
}
}
},
"activePowerT": {
"type": "Number",
"value": 0.4297,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2021-12-01T16:33:13.00Z"
}
}
},
.......
}
所有三個屬性都有數字值並且來自“IoT 代理 MQTT/JSON”。
Quantum Leap 訂閱了 Context Broker:
{
"description": "QL - StreetlightControlCabinet",
"subject": {
"entities": [
{
"idPattern": ".*",
"type": "StreetlightControlCabinet"
}
],
"condition": {
"attrs": [
"activePowerR",
"activePowerS",
"activePowerT",
...
]
}
},
"notification": {
"http": {
"url": "http://quantumleap:8668/v2/notify"
},
"metadata": ["dateCreated", "dateModified", "timestamp"],
"attrs": [
"activePowerR",
"activePowerS",
"activePowerT",
.....
]
}
}
QuantumLeap (V0.5) 僅當序列中的第一個值是小數(如 0.7456)時才創建具有浮點值類型的 CrateDB 數據序列。
如果 serie 中的第一個值可以轉換為 integer 而不會丟失精度(如 0、1.0、2.0 等),QuantumLeap 將在 CrateDB 中創建具有 integer 基本類型的數據系列。 結果,所有后續傳入的數據將在數據庫中截斷為整數。
所以這很奇怪,因為在 QuantumLeap 源代碼中我們發現“數字”屬性類型應該始終映射到 CrateDB 中的“浮點”數據類型。
任何人都可以解釋問題可能是什么?
QuantumLeap 將數據存儲在關系數據庫中。 這有一些限制,即如果您第一次發送通知具有給定類型的通知,則以下通知將被強制轉換(如果可能)為該類型。 v0.5 是支持 crate 3 的非常舊的版本,而不是較新的 crate 版本,我建議更新到 0.8.2。
之后,要解決此問題,您有兩種選擇:
如果這沒有幫助,請通過https://github.com/orchestracities/ngsi-timeseries-api聯系我們,如果需要,我們還提供企業支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.