NPM 包 zetta-http-device 使用教程

阅读时长 6 分钟读完

需求背景

在前端开发中,我们经常需要和后端进行数据交互。在一些 IOT 项目中,需要通过设备来获取数据,这就需要在前端中调用一些设备服务。为了方便我们的开发,npm 提供了很多库或框架,其中 zetta-http-device 是一个帮助我们进行设备控制的 npm 包,具有很高的实用价值。

zetta-http-device 简介

zetta-http-device 是一个基于 Zetta 的连接设备的库。在我们需要控制和读取一些设备的时候,不需要在设备空间中安装客户端,这个库通过请求 HTTP API 而不是 MQTT 或 CoAP 的协议,使得我们的项目不受设备的物理位置的限制,实现了在任何地方控制设备。

安装 zetta-http-device

使用 npm 安装 zetta-http-device 包,可以执行以下命令:

使用 zetta-http-device

创建一个设备描述文件(device descriptor)

设备描述文件包含了该设备的必要属性、功能、被动请求和终态等。下面展示了一个设备描述文件的基本结构:

-- -------------------- ---- -------
-------------- - ---------- -
  --- ------ - -
    ----- ------------- -
      ---
        --------- --------
        ---------------
        -------------
        ------------ -
          ------ -----------
        --
        ----------- -
          ------ ------------
        --
        --------------- ------------
        ---------------- --------------
    --

    ------- ------------ -
      ---------- - -----
      -----
    --

    -------- ------------ -
      ---------- - ------
      -----
    -
  --

  ------ -------
--

该设备描述文件中定义了 My Device 这个设备,有两种状态 onoff。当设备的状态为 off 时,可执行的命令为 turn-on,当设备处于 on 状态时,可执行的命令为 turn-off。对应的,执行 turn-on 命令时,设备的状态会变为 on,执行 turn-off 命令时,设备的状态会变为 off

配置 zetta-http-device

在 Express 中,我们通过如下的方式来配置 zetta-http-device:

-- -------------------- ---- -------
--- --------- - -----------------------------
--- --- - ---------------------

---------------------------
------------------------------- --------- ---- ----

--------------- ------------- ---- ----- -
  ------- - ----------- - --------
  -------
---

--------------- -------------------- -
  ------- - --- --------
  --------- - --- --------
  --------- - ---------
----

在以上的代码中,我们首先引入了 zetta-http-device 模块,在调用时,传入了一个对象,该对象中包含了设备所需要的基本信息。其中,id 代表了设备的 ID,name 代表了设备的名称,type 代表了设备的类型。在将接口挂载到 Express App 上的时候,需要将请求的 url 加上 req.baseUrl

请求设备API

在 zetta-http-device 中,我们可以通过 GET 请求,简单的执行一个命令:

在请求中,需要包含设备ID和待执行的动作。我们以前文中创建的设备为例,使用 "http://localhost:3000/api/My_Device/execute/turn-on" 这个 GET 请求可以使得设备为开启状态。

设备状态读取

在 zetta-http-device 中,我们可以通过 GET 请求,获取特定设备的状态,如下:

在请求中,需要包含设备ID。我们可以通过向 "http://localhost:3000/api/My_Device" 发送 GET 请求,获取设备的状态。

示例代码

下面我们提供了一份详细的示例代码,可以帮助您更好地理解如何使用 zetta-http-device。示例代码需要先从一个设备状态开始,通过不同的请求,最终达到设备状态的目标。

-- -------------------- ---- -------
--- ------- - -------------------

-- ------
--- ----------- - -----

-- ------
-------------------------------------------------- ------------- ---- ----- -
  --- ------------ - -----------------------
  -------------------- -------- --------------

  -- --------------------
  -- ------------- --- ------------ -

    -- ----
    ------------------------------------------------------------------ ------------- ---- ----- -
      ------------------- -- --- ------ ------
    ---
  - ---- -
    ------------------- -- ------- ------
  -
---

在如上代码中,我们首先获取设备的状态,并打印出来,随后检查设备状态是否为 on。如果设备状态不等于目标状态,则调用 execute 接口中的 turn-on 方法,将设备状态变为目标状态。如果设备状态等于目标状态,则不进行任何操作。

总结

zetta-http-device 包可以帮助我们在前端开发中进行设备控制和读取,通过 HTTP 协议请求 API 而不需要使用特定客户端,使得我们在任何地方均可对设备进行操作。在实际开发中,我们需要通过定义设备描述和配置 zetta-http-device 的方式使用该npm 包。通过以上的讲解和示例代码,相信大家可以更好地理解 zetta-http-device 的使用方法,实现更加高效的项目开发。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb538b5cbfe1ea06113ef

纠错
反馈