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