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

阅读数:6307 2019 年 5 月 27 日 08:00

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 API WebSocket API 访问设备的属性,请求动作的执行,以及订阅体现状态变化的事件。

WebThings 库官方支持 Java Python Node.js Rust 等开发语言。下面看看它是如何在 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

评论

发布