簡體   English   中英

Fiware NGSI 實體中的事件和操作

[英]Events and actions in Fiware NGSI entities

假設我們有一個對應於 IoT controller 設備的實體,比如說一扇門 controller。我們想要定義一個可能導致動作(打開/關閉)的事件。 所以我們需要向這個設備發送命令。

我們將如何做到這一點? 在實體中添加一個屬性,例如可以通過 NGSI API 寫入的 setDoorStatus? 然后讓一些 IoT 代理或命令處理程序訂閱此屬性? 是否有數據 Model 的示例?

最簡單的方法是使用任何IoT 代理配置設備。 IoT 代理有一個標准的 API 用於設備配置,其中可以列出commands

curl -L -X POST 'http://localhost:4041/iot/devices' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-H 'Content-Type: application/json' \
--data-raw '{
  "devices": [
    {
      "device_id": "door001",
      "entity_name": "urn:ngsi-ld:Door:001",
      "entity_type": "Door",
      "protocol": "PDI-IoTA-UltraLight",
      "transport": "HTTP",
      "endpoint": "http://context-provider:3001/iot/door001",
      "commands": [ 
        {"name": "unlock","type": "command"},
        {"name": "open","type": "command"},
        {"name": "close","type": "command"},
        {"name": "lock","type": "command"}
       ],
       "attributes": [
        {"object_id": "s", "name": "state", "type":"Text"}
       ],
       "static_attributes": [
         {"name":"refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
       ]
    }
  ]
}
'

IoT Agent 節點庫定義了通過命令驅動設備的命令范式

在這種情況下,您有一個open屬性,它在上下文代理上注冊為來自設備,您可以使用以下請求啟動設備:

NGSI-v2

curl -L -X PATCH 'http://localhost:1026/v2/entities/urn:ngsi-ld:Door:001/attrs' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-H 'Content-Type: application/json' \
--data-raw '{
  "open": {
      "type" : "command",
      "value" : ""
  }
}'

NSGI-LD

curl -L -X PATCH 'http://localhost:4041/ngsi-ld/v1/entities/urn:ngsi-ld:Device:door001/attrs/open' \
-H 'NGSILD-Tenant: openiot' \
-H 'NGSILD-Path: /' \
-H 'Content-Type: application/json' \
-H 'Link: <http://context/ngsi-context.jsonld>; rel="http://www.w3.org/ns/json-ld#context"; type="application/ld+json"' \
--data-raw '{ 

        "type": "Property", 
        "value": "" 

}'

相關的 IoT 代理接受請求並使用適當的設備語法將其傳遞給設備。 激活后,只要實體有任何命令進度信息,就會將額外的特殊statusinfo屬性添加到實體中。

完整示例可以在 FIWARE 教程中找到:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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