npm包Polyinterface使用教程

阅读时长 8 分钟读完

Polyinterface是一个开源项目,它为智能家居设备提供了一个通用的接口,开发人员可以使用它来开发自己的智能家居设备。 Polyinterface是用Python编写的,它还有一个与之对应的npm包- polyinterface。

在这篇文章中,我们将对polyinterface npm包进行详细介绍,包括:

  • 安装polyinterface

  • 创建一个基本的Polyglot节点

  • 构建Polyglot节点的配置文件

  • 创建一个新的设备

  • 设备状态与控制

安装polyinterface

首先,我们需要使用npm安装polyinterface。在终端中输入以下命令:

安装完成后,我们就可以开始使用polyinterface了。

创建一个基本的Polyglot节点

Polyglot是一个开源的家庭自动化控制系统,它可以控制多个智能设备。让我们来创建一个最基本的Polyglot节点。

首先,我们需要创建一个名为myNode的节点对象,并将其传递给Polyglot构造函数:

接下来,我们需要为节点添加一个自定义的控制器:

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

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

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

这里我们定义了一个Controller类,它扩展了Polyglot.Controller。 这个类包含了一个名为“hello”的函数,这个函数向控制台输出“hello from My Controller”。我们将这个类实例化并添加到我们的Polyglot对象中。

现在我们可以启动我们的控制器并查看控制台以确认一切正常运行:

通过运行上述代码,我们可以看到控制台中输出了“hello from My Controller”。

构建Polyglot节点的配置文件

接下来我们需要使用Polyglot构建节点的配置文件。

在前面我们已经实例化了一个Polyglot对象。现在需要重写“getConfig”函数来提供我们的节点的配置信息:

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

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

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

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

getConfig返回了我们节点的配置信息。这个函数返回了当前节点的基本信息、该节点连接的IP地址和端口、连接的控制器类型、该节点包含的设备等等。

接下来,我们需要告诉Polyglot我们的节点配置信息所在的位置。在这里,我们需要通过配置文件指定用于访问该信息的端口号,从而使请求能够成功被处理。 我们还定义了我们的节点的配置信息。通过运行上述代码,我们可以启动一个Polyglot节点,它可以通过RESTful API或Web Socket API与其他设备进行通信。

创建一个新的设备

现在我们已经有了一个最基本的Polyglot节点,接下来我们将创建一个新的设备。我们需要为每个设备创建一个新的类。这个类表示一个单独的设备,它将负责处理该设备的各种状态和命令。

下面是一个示例类,它代表一个灯泡设备。该设备有一个开关状态,当灯泡打开时,“on”为true,否则为false。

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

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

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

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

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

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

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

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

这个类重写了Polyglot.Node的构造函数和onInit函数。构造函数负责为我们的设备设置驱动程序。该驱动程序是Polyglot节点-服务器的标准驱动程序。 onInit方法用于初始化设备,例如,定期查询设备的状态等。

设备必须发送每次状态变化时的信息(例如,开了一盏灯)以便节点可以更新它的状态。我们在这里使用了reportDrivers方法来更新设备的状态信息。

设备需要有一个方法来处理发送给它的指令以及设置设备的状态。在这里,我们定义了一个setOn方法,它接受一个“val”参数,并将“on”属性设置为true或false。

现在我们需要订阅一个主题(这里为“myLights/on”),这个订阅是一种发送指令(例如,打开灯)的方式。我们还需要在Polyglot节点上定义一个处理指令的函数(在这里为setOn方法)。

设备状态与控制

现在我们已经创建了一个设备,并成功与Polyglot节点进行了通信。现在,我们还需要使用RESTful API 或 Web Socket API通过Polyglot节点与其他设备进行通信。

在这里,我们将讨论如何向节点发送命令,以及如何监视设备状态的变化。对于这个示例,我们将使用RESTful API。

我们需要使用以下节点状态信息URL来获取节点状态信息:

要查看灯泡的状态信息,您可以使用以下命令:

为了更改灯泡的状态,我们可以使用以下命令:

在这里,我们将“value”参数设置为1。这样我们就能把灯开了。

结论

本文介绍了如何使用Polyinterface npm包控制智能家居设备,包括如何创建一个基本的Polyglot节点以及如何创建和控制一个设备。 使用Polyinterface,您可以很容易地开发各种类型的智能家居设备,并将它们集成到一个通用的自动化控制系统中。

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

纠错
反馈