Nest API 的架構

關於 Nest 服務

Nest 應用程式可讓使用者隨時隨地與住家連線。所有 Nest 裝置 (溫度控制器、Nest Protect 和攝影機) 和應用程式 (iOS、Android 和網頁應用程式) 都會連線至 Nest 服務。

雲端至雲端範例

Nest 服務提供住家的資料模型。從這個模型模型讀取的裝置和應用程式會採取適當行動。會更新資料模型,以反映系統變更。

例如,溫度控制器會從資料模型讀取目標溫度。這項工具會將環境溫度設為目前的測量結果,並將感應器資料傳送至在家/外出輔助功能,據此調整結構模式。

Nest 裝置會在受限制的環境中運作。電力有限,家用網路連線不太可靠。您的產品和服務可以使用我們的裝置演算法,為使用者提供簡單直覺的居家使用體驗。

資料模型

Nest API 會以 JSON 文件表示,其中包含頂層 metadatadevicesstructures 屬性。Works with Nest 產品會使用這個 JSON 文件與 Nest 裝置和相關狀態變更互動及回應。

Nest structures 是現實世界中的實體結構。可做為 devices 的管理點,以及儲存整個建築物的資料。一般來說,structure 是使用者首頁。

Nest devices 代表結構中的實體裝置 (溫度控制器、保護器和攝影機)。

JSON 文件中的每個資料元素都可以透過網址提供 (又稱為「資料位置」)。Works with Nest 產品可以讀取並寫入這份文件的各節,也可以訂閱變更。這項訂閱功能讓 Works with Nest 產品能夠即時因應系統的變更,例如在使用者將結構設為「外出」時關閉燈具。

物件也在現實生活中設有限制。資料模型可以保護裝置和使用者住家,避免意外出現或危險的動作。舉例來說,當緊急加熱功能啟用時,溫度控制器並未執行空調。

請參閱這個互動式 API 參考資料,探索資料模型。

預期狀態

Nest 服務會儲存系統的權威狀態,Works with Nest 產品則有所變更。如果您修改此狀態 (例如變更溫度控制器的目標溫度),服務將會向所有訂閱者推送變更通知。

因為這種傳播方式會延遲,而且網路可能不太穩定,因此產品所觀察到的狀態可能不是其他產品或服務的目前狀態。「狀態」最終會保持同步,因為訊息在不同產品之間傳輸。

這份文件導向的發布/訂閱模型提供了回應式應用程式互動功能。

使用 Nest 服務

如要存取 Nest 服務中的 REST 端點,請在產品中使用 HTTPS。市面上有許多第三方用戶端程式庫可用於達成這個目的。

權限與授權

我們希望能讓開發人員打造更實用的住家產品與服務,同時兼顧使用者的隱私權與安全性。我們的所有通訊都安全可靠,而資料存取的權限一律由使用者明確授予。詳情請參閱權限總覽

授權由 OAuth 2.0 通訊協定處理。當使用者同意提供要求的權限等級時,Nest 會驗證要求,並將存取權杖授予要求者。這個存取權杖可用於存取 Nest API,並與使用者的結構和裝置互動。

授予存取權杖會在使用者、Works with Nest 產品和 Nest 之間建立信任關係。使用者隨時可以撤銷存取權。

請參閱授權總覽一文,瞭解如何授權存取 Nest API。