InfoQ技术大会双节活动折上折,满10000-1000>> 了解详情
写点什么

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

2019 年 5 月 27 日

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 年 5 月 27 日 08:008913
用户头像

发布了 40 篇内容, 共 29.3 次阅读, 收获喜欢 125 次。

关注

评论

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

fil挖矿收益如何?fil挖矿一天可以挖多少?

IPFS星盟小熊

区块链 分布式存储 IPFS fil挖矿 filecoin收益

星环科技 TDS 联邦计算能力,让企业异构数据源数据合作畅通无阻

星环科技

异构数据 联邦计算

Cron调度任务入门

devpoint

crontab 8月日更

四面字节跳动Java研发岗,最终拿下Offer,只有努力,方能成功

Java~~~

Java 架构 面试 微服务 架构师

太厉害了,终于有人把TCP-IP协议整合成864页学习笔记了

Java~~~

Java 架构 面试 TCP 网络

学生管理系统架构设计

晓波

架构实战营

存储大师班 | ZFS存储池块管理与事务模型

QingStor分布式存储

文件存储 分布式存储

盲盒星球系统开发

(王经理)专业app小程序开发

为什么要了解复杂科学?

石云升

8月日更

初学架构师养成の微信业务架构分析&学生管理系统架构

Yina🌝很浪🌊

架构

七月速递:人脸特征值同步私有化部署包发布、EdgeBoard车辆分析软硬一体方案助力交通管理智能化

百度大脑

人工智能 EdgeBoard 软硬一体

先到先得先学!阿里P8熬夜55天整理的《百亿级并发系统设计》全套实战教程

程序员小毕

数据库 spring 程序员 架构 面试

云行、数治、慧用 打造直抵基层的数字化高速公路

浪潮云

云计算

美团年货-2020年(记录)

闲云野鹤

吃透这份Github点赞120k的Spring全家桶笔记Offer拿到手软

Java~~~

Java spring 架构 面试 Spring Cloud

Go 与 C++ 的对比和比较

恒生LIGHT云社区

c++ go 编程语言

RocketMQ-学习记录

闲云野鹤

现货量化策略系统开发,量化软件开发

13530558032

02. 到底什么是人工智能

数据与智能

人工智能

读书笔记 -《数据密集型应用系统设计》-索引

KayTin

易灸灸系统开发

(王经理)专业app小程序开发

强大的OCR技术+多元的用户场景 口碑型App白描的开发之路

百度大脑

人工智能 OCR 视障

Go- 字符串、切片和数组的使用

HelloBug

go 数组 字符串 切片

阿里P8整理的《百亿级并发系统设计》实战教程,实在是太香了

Java~~~

Java 架构 面试 多线程 高并发

女巫面具软件开发

(王经理)专业app小程序开发

赋能生态,合力同行!博睿数据成为光合组织成员单位

博睿数据

Python实现发送邮件(实现单发/群发邮件验证码)

Python研究者

8 月日更

架构学习系列一 架构方法论的入门学习

nydia

架构学习

数字资产多链钱包搭建,区块链多币种钱包

13530558032

关于开发视图

编程三昧

8 月日更 开发视图

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

Java~~~

Java 架构 面试 JVM 多线程

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