簡體   English   中英

Fiware實體和STH

[英]Fiware Entities and STH

我正在使用Orion上下文代理,IoT代理和Cygnus來將多個設備的數據持久化到MongoDB中。 它正在工作,但是我不知道我是否以Fiware的方式進行操作,因為在閱讀了文檔之后,我對某些事情感到困惑:

  1. 我不完全了解實體和IoT實體(或設備?)之間的區別。 我的猜測是這取決於它們如何提供上下文數據以及所建模實體的性質,但是如果有人可以澄清它,我將不勝感激。 我特別困惑,因為每種實體類型的創建都是不同的(似乎我無法在創建時初始化IoT實體,而在處理常規實體時可以初始化)。
  2. 我只能保留IoT實體的數據。 是否可以擁有常規實體的短期歷史記錄?
  3. 我不明白為什么STH數據會重復未更改的屬性。 如果我有一個具有兩個屬性“ a”和“ b”的物聯網實體,並且我都對其進行了修改,則為每個屬性創建一個STH條目,這很好。 但是,如果然后我更改屬性“ b”的值,則會再創建兩個寄存器:一個用於“ a”(未更改,並且反映了已經具有的相同值),另一個用於“ b”。 有人可以向我解釋這種行為嗎?

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>可用於縮小保留歷史數據的條件。

entitiesconditionsattrssubject的重要部分

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM