Mozilla全新改进了开源IoT平台:WebThings

Mozilla 最近发布了它的开源IoT平台WebThings,以前叫做Project Things。Mozilla WebThings提供了日志记录、警报和网络等一系列特性。

Mozilla WebThings是W3C新兴的Web of Things标准的开源实现。W3C Web of Things(WoT)是Web of Things Working Group(WoT WG)近期推出的一项计划,旨在减少IoT的碎片化。W3C制定了Web of Things的初始标准,目标是降低开发的成本,降低投资者和客户的风险,进而促进IoT设备和服务市场的指数级增长。

Mozilla WebThings是一个用于监视和控制设备的基于Web的开放平台,由两个核心组件组成:WebThings Gateway是为专注于隐私、安全和互操作性的智能家居网关而设计,WebThings Framework用于帮助开发人员构建自己的Web事物。

WebThings Gateway(网关)

WebThings Gateway是一款让用户能够通过网络监视和控制他们的智能家居的软件。例如,通过使用WebThings Gateway,可以检查门打开/关闭的次数,或者插件设备的能耗。为此,用户需要进入“main menu > Settings > Experiences”,并启用“Logs”选项。

WebThings Gateway现在为烟雾、一氧化碳或防盗报警器等设备提供了新的报警功能。这意味着用户可以检查报警器当前是否处于活动状态,配置规则以便在警报出现时触发通知。

WebThing Gateway 0.8可以通过Web界面重新配置网关的网络设置。另外,用户可以使用动态或静态IP地址配置以太网的端口,或者重新扫描可用的无线网络并更改网关所连接的Wi-Fi接入点。

WebThings Framework(框架)

WebThings Framework是可重用软件组件的集合,目的是帮助开发人员构建自己的Web事物,并且直接开放Web Thing API。Web Things API通过定义简单具体的序列化和协议绑定,来补充W3C WoT WG关于Web of Things的抽象数据模型和API的工作。Web客户端可以通过WebThings的REST APIWebSocket API访问设备的属性,请求动作的执行,以及订阅体现状态变化的事件。

WebThings库官方支持JavaPythonNode.jsRust等开发语言。下面看看它是如何在Java中实现的。

首先,将以下依赖项添加到项目中:

<dependencies>
    <dependency>
        <groupId>org.mozilla.iot</groupId>
        <artifactId>webthing</artifactId>
        <version>LATEST</version>
    </dependency>
</dependencies>

现在,创建一个新的Thing:

Thing light = new Thing("My Lamp",
                        new JSONArray(Arrays.asList("OnOffSwitch", "Light")),
                        "A web connected lamp");

添加on(开关)的属性:

JSONObject onDescription = new JSONObject();
onDescription.put("@type", "OnOffProperty");
onDescription.put("title", "On/Off");
onDescription.put("type", "boolean");
onDescription.put("description", "Whether the lamp is turned on");

Value<Boolean> on = new Value<>(true,
                                // Here, you could send a signal to
                                // the GPIO that switches the lamp
                                // off
                                v -> System.out.printf(
                                        "On-State is now %s\n",
                                        v));

light.addProperty(new Property(light, "on", on, onDescription));

现在将新创建的Thins添加到服务器并启动它:

try {
   WebThingServer server = new WebThingServer(new SingleThing(light), 8888);
    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            server.stop();
        }
    });
    server.start(false);
} catch (IOException e) {
    System.out.println(e);
    System.exit(1);
}

上面的代码将启动服务器,通过WoT REST API可以让灯工作,并且声明它是本地网络中可发现的资源。

更多详细信息可在Mozilla IoT网站以及WebThings Gateway和WebThings Framework 的开发人员文档中找到。想要为此文档做出贡献的开发人员可以通过GitHub repo来实现。

查看英文原文Mozilla Revamps WebThings, its Open Source IoT Platform

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章