【FCon】聚焦金融行业在数智化的全面革新,一线的金融数智化实践干货 了解详情
写点什么

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

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

    阅读完需:约 6 分钟

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

6 月 17 日,极客时间《企业级 Agents 开发实战营》正式上线,10 周掌握企业级 Agents 从设计、开发到部署全流程。

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

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

关注

评论

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

利用Excel导入数据到SAP C4C

Jerry Wang

Excel SAP C4C Cloud for Customer

教你用 3 行代码发邮件

小匚

Python 学习 自动化

Github Action 自动构建 Flutter Android Apk

Leetao

flutter Github Actions

k8s 上运行我们的 springboot 服务之——技术方案实现图

柠檬

k8s SpringBoot 2

Dubbo 路由规则之条件路由

青年IT男

dubbo

Java基础(一)——Java入门和IntelliJ IDEA使用

空城机

Java IDEA 5月日更

人生算法:掌控大脑的两种模式

石云升

读书笔记 思维模型 5月日更

Java 基础(一)——Java 入门

空城机

Java 5月日更

中国与世界共享数字经济机遇

CECBC

数字经济

多元线性回归模型 - DAY14

Qien Z.

5月日更 多元线性回归

防火墙

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

☕【JVM 技术之旅】深入挖掘Java对象的内存结构

洛神灬殇

JVM java对象分析 java对象 5月日更 内存对象结构

Rust从0到1-泛型-定义

rust 泛型 generic

Hybris开发环境的license计算实现

Jerry Wang

Java SAP Hybris Commerce Cloud

【Flutter 专题】121 图解简易 Slider 滑动条

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

SAP Netweaver和Hybris的数据库层

Jerry Wang

abap Hybris

阿里巴巴P8自爆:Java八大核心思维导图知识梳理

Java架构师迁哥

前端开发:node.js的node包管理器npm安装以及使用

三掌柜

5月日更

ABAP Netweaver和Hybris里获得内存使用统计数据

Jerry Wang

Java CRM abap C4C Hybris

CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑

Jerry Wang

CRM abap WebClient UI

CRM WebUI and Hybris的Product页面标题实现

Jerry Wang

CRM SAP WebClient UI Hybris

着力区块链技术等方向,上海这所高校成立研究院

CECBC

小走神

Nydia

学习

架构实战营模块4作业

阿体

为什么很多程序员,成为不了技术大牛?

实力程序员

SAP CRM WebClient UI和Hybris backoffice UI开发的相同点

Jerry Wang

CRM SAP abap WebClient UI Hybris

PlatONE联盟链如何实现大规模生产级应用?

CECBC

谈一谈Java的前生今世

孙叫兽

Java jdk 发展史

WLS2搭建Django部署环境

IT蜗壳-Tango

5月日更

微服务架构设计之解耦合

Damon

微服务 5月日更

《觉醒年代》观后感

xiezhr

觉醒年代 五四运动 南陈北李

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