NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 2019-05-27
  • 本文字数:1714 字

    阅读完需:约 6 分钟

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


2019-05-27 08:009515
用户头像

发布了 43 篇内容, 共 33.3 次阅读, 收获喜欢 136 次。

关注

评论

发布
暂无评论
发现更多内容

LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

Lee Chen

大前端

产品分析

时间是一个人最好的证明

产品经理 产品设计

对不起,学会这些 Linux 知识后,我有点飘

cxuan

Linux 后端 操作系统 计算机

典型的大型互联网应用系统的技术方案和手段

架构师训练营第四章 系统架构总结

郎哲158

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

区块链是一个不知道要解决什么问题的解决方案吗?

CECBC

比特币 区块链 银行

架构师训练营第三周作业

Wee权

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

讲一讲我所认为的「人生三最」,你或许能够参悟到什么

非著名程序员

程序员 个人成长 时间管理 精力管理

PyFlink + 区块链?揭秘行业领头企业 BTC.com 如何实现实时计算

Apache Flink

flink

程序员去外包真的不可取吗?

Java架构师迁哥

31道Java核心面试题,一次性打包送给你

小Q

Java 学习 程序员 架构 面试

建筑行业区块链应用场景是怎样的

CECBC

区块链 行业资讯

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

架构师训练营第四周作业

郎哲158

开源数据库这么香,为什么我们还要下功夫自研?

华为云开发者联盟

数据库 开源 数据

古北水镇的夜

张晓楠

生活 摄影

记一次MySQL日期范围查询优化

李印

MySQL SQL优化

关于国际化语言 Intl

西贝

Java 大前端 国际化 格式化

MySQL事务隔离级别

长沙造纸农

MySQL 事务隔离级别 mysql事务 事务 MySQL 运维

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

内存条的讲解

亚兰—硅的传奇official

原创 内存 硬件 计算机 哔哩哔哩

架构1期第四周作业1-大型互联网系统技术梳理

道长

极客大学架构师训练营

架构师训练营第1期第四周作业二

道长

极客大学架构师训练营

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

架构师训练营第 1 期 - 第四周学习总结

Anyou Liu

极客大学架构师训练营

区块链教育 丨 首批区块链专业新生正式入学

CECBC

区块链技术 区块链教育

架构师作业第三周学习总结

Wee权

Mozilla全新改进了开源IoT平台:WebThings_大前端_Diogo Carleto_InfoQ精选文章