写点什么

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:009632
用户头像

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

关注

评论

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

超时与线程池的坑

ES_her0

5月日更

云小课 | 大数据融合分析:GaussDW(DWS)轻松导入MRS-Hive数据源

华为云开发者联盟

华为云 GaussDB(DWS) MRS数据源 融合分析 数据仓库服务

在 Mac 上玩网游的简单方式

懒得勤快

华为发布HarmonyOS Connect品牌升级计划 帮伙伴做好产品、卖好产品、运营好产品

科技汇

Apache Flink在 bilibili 的多元化探索与实践

Apache Flink

大数据 flink 流计算 实时计算

实践解析 | 如何用 OpenGL 实现跨平台应用高效渲染

拍乐云Pano

Android开发

架构实战营模块4作业-千万级学生管理系统的考试试卷存储方案

好吃不贵

架构实战营

千万级学生管理系统考试试卷存储方案设计

eoeoeo

多吃点花生米吧!

Nydia

学习

MySQL慢日志全解析

Simon

MySQL 慢查询

ShardingSphere 源码

云淡风轻

ShardingSphere

云时代的数据之约

BinTools图尔兹

数据库 云计算 运维 云服务 dba

还不会使用分布式锁?教你三种分布式锁实现的方式

华为云开发者联盟

数据库 zookeeper 分布式锁 etcd 数据库表

奇亚chia算力挖矿系统开发搭建

薇電13242772558

区块链 算力

Elasticsearch数据库优化实战:让你的ES飞起来

华为云开发者联盟

数据库 大数据 elasticsearch 日志 ES

从0到1数字化转型的“精益落地”模式

高瑞

产品数据分析

lenka

5月日更

这一年,我们都需要他安静而勇敢的陪伴

小天同学

读书笔记 读书 5月日更

Golang Array and Slice

escray

学习 极客时间 Go 语言 5月日更

【LeetCode】形成两个异或相等数组的三元组数目Java题解

Albert

算法 LeetCode 5月日更

百度 Serverless 函数计算引擎 EasyFaaS 正式开源

百度开发者中心

百度 开源

Dubbo 延迟服务暴露

青年IT男

dubbo

打破思维定式(十二)

Changing Lin

Kafka万亿级消息实战

vivo互联网技术

kafka 集群

快乐是一种选择

BY林子

快乐

去年创建的个人网站,我又给它加多了一些新功能。

彭宏豪95

写作 网站 博客 5月日更

鸿蒙轻内核M核源码分析:数据结构之任务就绪队列

华为云开发者联盟

鸿蒙 数据结构 数组 双向循环链表 任务就绪队列

长连接网关技术专题(四):爱奇艺WebSocket实时推送网关技术实践

JackJiang

Netty websocket 即时通讯 IM 网关

为什么TCP 建连接要3次,断连接却要4次呢?

架构精进之路

TCP 网络层 5月日更

Python 加密解密信息 - DAY9

Qien Z.

Python 加密解密 5月日更

2021年5月墨天轮国产数据库排行榜:十强榜单固若金汤

墨天轮

数据库 腾讯云 阿里云 国产化 dba

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