[英]Fiware Entities and STH
我正在使用Orion上下文代理,IoT代理和Cygnus來將多個設備的數據持久化到MongoDB中。 它正在工作,但是我不知道我是否以Fiware的方式進行操作,因為在閱讀了文檔之后,我對某些事情感到困惑:
1.實體與物聯網實體
我假設IoT實體的意思是IoT代理在收到來自已調配設備的傳感器讀數后所做的輸入。
邏輯上,由IoT代理創建和維護的實體與由向上下文代理發出NGSI請求的任何其他服務創建和維護的實體之間沒有區別。
所謂的IoT實體僅僅是IoT代理為您承擔所有繁重工作並將來自設備的數據以專有格式轉換為NGSI標准的結構。
2.常規實體的短期歷史
要創建短期歷史記錄,您將需要單獨的通用啟動器,例如STH-Comet或QuantumLeap。 這兩個啟用器都使用訂閱機制從Orion接收更新。 如果您使用一個fiware-service
標頭設置IoT數據,並使用另一fiware-service
fiware-service
標頭設置非IoT數據,則可以輕松設置訂閱以區分兩者。
例如以下訂閱:
curl -iX POST \
'http://localhost:1026/v2/subscriptions/' \
-H 'Content-Type: application/json' \
-H 'fiware-service: iotdata' \
-H 'fiware-servicepath: /' \
-d '<body>'
僅適用於具有iotdata
服務路徑的實體,該路徑將在您配置IoT服務時創建。
3.重復未更改的屬性。
訂閱的<body>
可用於縮小保留歷史數據的條件。
entities
, conditions
和attrs
是subject
的重要部分
subject": {
"entities": [
{
"idPattern": "Motion.*"
}
],
"condition": {
"attrs": [
"count"
]
}
},
"notification": {
"http": {
"url": "http://quantumleap:8668/v2/notify"
},
"attrs": [
"count"
],
"metadata": ["dateCreated", "dateModified"]
},
"throttling": 1
}'
僅當更改count
屬性且僅保留count
屬性時,才會觸發上面定義的訂閱。 如果您不限制attrs
那么多行將attrs
到數據庫中。 同樣,如果您不限制condition
則在更新其他屬性時將保留多個count
條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.