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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章