欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何使用EdgeXKuiper規(guī)則引擎控制物聯(lián)網(wǎng)設(shè)備

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何使用EdgeX Kuiper規(guī)則引擎控制物聯(lián)網(wǎng)設(shè)備,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)專業(yè)提供遂寧托管服務(wù)器服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買遂寧托管服務(wù)器服務(wù),并享受7*24小時金牌售后服務(wù)。

場景

下面將創(chuàng)建并運行以下兩條規(guī)則。

  1. 監(jiān)視Random-UnsignedInteger-Device設(shè)備的規(guī)則,如果uint8值大于 20,則向Random-Boolean-Device設(shè)備發(fā)送命令,并開啟布爾值的隨機生成 。

  2. 監(jiān)視Random-Integer-Device設(shè)備的規(guī)則,如果每20秒 int8的平均值大于0,則向Random-Boolean-Device 設(shè)備服務(wù)發(fā)送命令以關(guān)閉 布爾值的隨機生成。

該場景不含任何真實的業(yè)務(wù)邏輯,而只是為了演示EdgeX Kuiper規(guī)則引擎的功能。 您可以根據(jù)我們的演示制定合理的業(yè)務(wù)規(guī)則。

開始使用

請務(wù)必遵循文檔 EdgeX Kuiper規(guī)則引擎入門教程,確保教程能夠成功運行。

創(chuàng)建 EdgeX 流

在創(chuàng)建規(guī)則之前,應(yīng)創(chuàng)建一個流,該流可以使用來自 EdgeX 應(yīng)用程序服務(wù)的流數(shù)據(jù)。 如果您已經(jīng)完成 EdgeX Kuiper 規(guī)則引擎入門教程,則不需要此步驟。

curl -X POST \
  http://$kuiper_docker:48075/streams \
  -H 'Content-Type: application/json' \
  -d '{
  "sql": "create stream demo() WITH (FORMAT=\"JSON\", TYPE=\"edgex\")"
}'

由于這兩個規(guī)則都會向設(shè)備Random-UnsignedInteger-Device發(fā)送控制命令,通過運行命令curl http://localhost:48082/api/v1/device/name/Random-Boolean-Device | jq可以獲取該設(shè)備的可用命令列表。它將打印類似的輸出,如下所示。

{
  "id": "9b051411-ca20-4556-bd3e-7f52475764ff",
  "name": "Random-Boolean-Device",
  "adminState": "UNLOCKED",
  "operatingState": "ENABLED",
  "labels": [
    "device-virtual-example"
  ],
  "commands": [
    {
      "created": 1589052044139,
      "modified": 1589052044139,
      "id": "28d88bb3-e280-46f7-949f-37cc411757f5",
      "name": "Bool",
      "get": {
        "path": "/api/v1/device/{deviceId}/Bool",
        "responses": [
          {
            "code": "200",
            "expectedValues": [
              "Bool"
            ]
          },
          {
            "code": "503",
            "description": "service unavailable"
          }
        ],
        "url": "http://edgex-core-command:48082/api/v1/device/bcd18c02-b187-4f29-8265-8312dc5d794d/command/d6d3007d-c4ce-472f-a117-820b5410e498"
      },
      "put": {
        "path": "/api/v1/device/{deviceId}/Bool",
        "responses": [
          {
            "code": "200"
          },
          {
            "code": "503",
            "description": "service unavailable"
          }
        ],
        "url": "http://edgex-core-command:48082/api/v1/device/bcd18c02-b187-4f29-8265-8312dc5d794d/command/d6d3007d-c4ce-472f-a117-820b5410e498",
        "parameterNames": [
          "Bool",
          "EnableRandomization_Bool"
        ]
      }
    }
  ]
}

從輸出中,您能看出有兩個命令,第二個命令用于更新設(shè)備的配置。 此設(shè)備有兩個參數(shù):

  • Bool:當(dāng)其他服務(wù)想要獲取設(shè)備數(shù)據(jù)時,設(shè)置返回值。 僅當(dāng)EnableRandomization_Bool設(shè)置為false時,才使用該參數(shù)。

  • EnableRandomization_Bool:是否啟用Bool的隨機生成。 如果將此值設(shè)置為true,則將忽略第一個參數(shù)。

因此,示例控制命令將類似于如下命令:

curl -X PUT \
  http://edgex-core-command:48082/api/v1/device/c1459444-79bd-46c8-8b37-d6e1418f2a3a/command/fe202437-236d-41c5-845e-3e6013b928cd \
  -H 'Content-Type: application/json' \
  -d '{"Bool":"true", "EnableRandomization_Bool": "true"}'

創(chuàng)建規(guī)則

第一條規(guī)則

第一條規(guī)則是監(jiān)視Random-UnsignedInteger-Device設(shè)備的規(guī)則,如果uint8值大于“ 20”,則向Random-Boolean-Device設(shè)備發(fā)送命令,并開啟布爾值的隨機生成 。 以下是規(guī)則定義,請注意:

  • 當(dāng)uint8的值大于20時將觸發(fā)該動作。由于uint8的值不用于向Random-Boolean-Device發(fā)送控制命令,因此在rest操作的dataTemplate屬性中不使用uint8值。

curl -X POST \
  http://$kuiper_server:48075/rules \
  -H 'Content-Type: application/json' \
  -d '{
  "id": "rule1",
  "sql": "SELECT uint8 FROM demo WHERE uint8 > 20",
  "actions": [
    {
      "rest": {
        "url": "http://edgex-core-command:48082/api/v1/device/bcd18c02-b187-4f29-8265-8312dc5d794d/command/d6d3007d-c4ce-472f-a117-820b5410e498",
        "method": "put",
        "retryInterval": -1,
        "dataTemplate": "{\"Bool\":\"true\", \"EnableRandomization_Bool\": \"true\"}",
        "sendSingle": true
      }
    },
    {
      "log":{}
    }
  ]
}'
第二條規(guī)則

第二條規(guī)則監(jiān)視Random-Integer-Device設(shè)備,如果每20秒 int8的平均值大于0,則向Random-Boolean-Device 設(shè)備服務(wù)發(fā)送命令以關(guān)閉 布爾值的隨機生成。

  • uint8的平均值每20秒計算一次,如果平均值大于0,則向 Random-Boolean-Device 服務(wù)發(fā)送控制命令。

curl -X POST \
  http://$kuiper_server:48075/rules \
  -H 'Content-Type: application/json' \
  -d '{
  "id": "rule2",
  "sql": "SELECT avg(int8) AS avg_int8 FROM demo WHERE int8 != nil GROUP BY  TUMBLINGWINDOW(ss, 20) HAVING avg(int8) > 0",
  "actions": [
    {
      "rest": {
        "url": "http://edgex-core-command:48082/api/v1/device/bcd18c02-b187-4f29-8265-8312dc5d794d/command/d6d3007d-c4ce-472f-a117-820b5410e498",
        "method": "put",
        "retryInterval": -1,
        "dataTemplate": "{\"Bool\":\"false\", \"EnableRandomization_Bool\": \"false\"}",
        "sendSingle": true
      }
    },
    {
      "log":{}
    }
  ]
}'

現(xiàn)在創(chuàng)建了兩個規(guī)則,您可以查看edgex-kuiper的日志以獲取規(guī)則執(zhí)行結(jié)果。

# docker logs edgex-kuiper

如何從分析結(jié)果中提取數(shù)據(jù)?

由于分析結(jié)果也需要發(fā)送到command rest服務(wù),如何從分析結(jié)果中提取數(shù)據(jù)?通過SQL過濾數(shù)據(jù)的示例如下所示:

SELECT int8, "true" AS randomization FROM demo WHERE uint8 > 20

SQL的輸出內(nèi)容如下:

[{"int8":-75, "randomization":"true"}]

當(dāng)從字段int8讀取value字段,從字段randomization讀取EnableRandomization_Bool時,假設(shè)服務(wù)需要以下數(shù)據(jù)格式:

curl -X PUT \
  http://edgex-core-command:48082/api/v1/device/${deviceId}/command/xyz \
  -H 'Content-Type: application/json' \
  -d '{"value":-75, "EnableRandomization_Bool": "true"}'

Kuiper 使用 Go模板 從分析結(jié)果中提取數(shù)據(jù),并且dataTemplate 內(nèi)容如下:

"dataTemplate": "{\"value\": {{.int8}}, \"EnableRandomization_Bool\": \"{{.randomization}}\"}"

在某些情況下,您可能需要迭代返回的數(shù)組值,或使用if條件設(shè)置不同的值,然后參考此鏈接寫入更復(fù)雜的數(shù)據(jù)模板表達(dá)式。

上述就是小編為大家分享的如何使用EdgeX Kuiper規(guī)則引擎控制物聯(lián)網(wǎng)設(shè)備了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:如何使用EdgeXKuiper規(guī)則引擎控制物聯(lián)網(wǎng)設(shè)備
URL分享:http://chinadenli.net/article34/jgijse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)微信小程序、做網(wǎng)站、網(wǎng)站內(nèi)鏈營銷型網(wǎng)站建設(shè)、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
日韩高清一区二区三区四区| 中文字幕区自拍偷拍区| 手机在线不卡国产视频| 亚洲中文字幕三区四区| 国产精品久久香蕉国产线| 五月天丁香婷婷狠狠爱| 亚洲av秘片一区二区三区| 夜夜嗨激情五月天精品| 开心五月激情综合婷婷色| 国产又色又粗又黄又爽| 少妇福利视频一区二区| 欧美日韩一级aa大片| 91免费一区二区三区| 国产在线一区二区三区不卡| 欧美成人免费一级特黄| 国内真实露脸偷拍视频| 久久精品亚洲精品一区| 久久99精品国产麻豆婷婷洗澡 | 国产农村妇女成人精品| 国内精品偷拍视频久久| 国产欧美日产久久婷婷| 国产专区亚洲专区久久| 国产又粗又硬又长又爽的剧情| 91人妻人人澡人人人人精品| 亚洲高清中文字幕一区二三区| 欧美日韩综合在线第一页| 懂色一区二区三区四区| 日本大学生精油按摩在线观看| 伊人色综合久久伊人婷婷| 亚洲一区二区精品国产av| 九九热这里只有精品视频| 国产精品亚洲综合色区韩国| 亚洲一区二区精品国产av| 中文人妻精品一区二区三区四区 | 天海翼高清二区三区在线| 一区二区在线激情视频| 韩日黄片在线免费观看| 国产综合一区二区三区av| 亚洲成人黄色一级大片| 黑丝国产精品一区二区| 色婷婷亚洲精品综合网|