適用於 Legrand Netatmo 產品的 Pharo Netatmo API 實作。
支援的產品:
您無法直接從裝置存取資料:Netatmo 目前不提供該服務。存取資料和設備的唯一方法是透過 Netatmo 伺服器。您需要連接到網路才能從您的裝置取得資料。
存取需要 OAuth2 驗證才能取得存取權杖。該令牌應與另一個身份驗證請求及時刷新。有關安全性的更多詳細信息,請參閱本頁底部的 Netatmo 官方文件連結。
OAuth2 驗證在此專案中使用 Zinc 進行工作,可用於桌面或 Web 應用程式。
當您的令牌恢復後,請在令牌有效期內使用該 api。
Metacello new
baseline: ' NetatmoAPI ' ;
repository: ' github://labordep/ PharoNetatmoAPI :main ' ;
onConflictUseIncoming;
ignoreImage;
load.
使用您的 Netatmo 連線帳戶建立應用程式存取權以取得您的 client_id 和 client_secret 資料。請參閱底部部分以在此項目中使用 OAuth2 身份驗證。
有關更多詳細信息,請參閱官方指南。
本節介紹如何進行身份驗證並取得存取權杖。如果您手動取得令牌(例如直接透過 Netamo 帳戶網站或其他提供資料庫),則此步驟不是必需的。取得令牌後,您可以使用 API,請參閱下一節以取得一些範例。
首先,使用您的 client_id 和 client_secret 資料實例化一個新的NetatmoAPIAuthentificator
。您需要指定資料的範圍,例如NetatmoScopeEnum allReadScopes
恆溫器溫度、濕度等。
authenticator := NetatmoAPIAuthentificator
clientId: ' myClientId '
clientSecret: ' myClientSecret '
scopes: ( NetatmoScopeEnum allReadScopes).
現在建立一個新會話來請求身份驗證。此方法傳回一個ZnOAuth2Session
,它提供 OAuth2 連接過程。
session := authenticator createOAuth2Session.
如果這是第一次嘗試取得令牌,則會話不是即時的。呼叫requestUserAuthentication
方法開啟 Web 瀏覽器並使用 Netatmo 線上表單驗證驗證。
session isLive ifFalse: [
authenticator requestUserAuthentication.
].
在此步驟中,您的預設 Web 瀏覽器將開啟線上 Netatmo 驗證表單:
如果您同意,請檢查並接受。將顯示基本結果頁面以確認身份驗證良好,並在出現時關閉此頁面:
取得您的令牌:
token := session liveAccessToken.
Instanciante NetatmoAPI
必須從 API 請求資料。使用令牌來設定連線。
| api |
api := NetatmoAPI new .
api token: ' yourAccess|tokenHere '
使用“api”類別方法來請求資料。
取得所有設備,返回NetatmoDevice
清單。此清單可能會根據會話授權而變更。
| devices |
devices := api getDevices.
取得所有設備,返回NetatmoStation
設備清單。
| devices |
devices := api getStationDevices.
從mac位址(id)取得特定設備,返回NetatmoStation
設備清單。
| devices |
devices := api getStationDevice:: ' 01:23:45:67:89:ab ' .
取得所有設備,返回NetatmoHealthyHomeCoach
設備清單。
| devices |
devices := api getHealthyHomeCoachDevices.
從 MAC 位址 (id) 取得特定設備,並返回NetatmoHealthyHomeCoach
設備清單。
| devices |
devices := api getHealthyHomeCoachDevice: ' 01:23:45:67:89:ab ' .
使用 API 從裝置取得測量值,傳回NetatmoMeasure
測量值清單。每個NetatmoMeasure
包含資料(例如56
)、類型(例如'humidity'
)、單位(例如'%'
)、資料單位(例如Number
)和測量的DateTime
。當從 API 請求測量時,使用types:
透過傳遞NetatmoMeasureType
清單來選擇資料類型。
從設備取得一種類型的資料。
| measures |
measures := api getMeasures: (device id)
types: NetatmoMeasureType humidity.
從設備取得多種類型的資料。
| measures |
measures := api getMeasures: (device id)
types: ( OrderedCollection
with: NetatmoMeasureType temperature
with: NetatmoMeasureType humidity).
可以請求測量的日期時間間隔以及樣本的比例。例如:取得上週每天目前時間的體溫。
| measures |
measures := api getMeasures: (device id)
types: NetatmoMeasureType temperature
scale: 1 day
dateTimeBegin: ( DateAndTime now - 7 day)
dateTimeEnd: DateAndTime now.
NetatmoAPI-Examples
套件包含一些 API 使用範例以及使用Spec
和Roassal
基本使用者介面。
可用設備清單(帶有子設備):
過去 7 天健康家庭教練措施清單:
氣象站儀表板:
氣象站最近 7 天的室內和室外濕度:
ETC。
使用 Netatmo Connect API,您將可以存取非常敏感的資訊。如果您的應用程式造訪我們的相機(直播或影片),則尤其如此。確保您尊重用戶的隱私並制定強有力的隱私權政策。
Netatmo Connect API 使用條款
此資源是我實作此 API 的參考。有兩個 API 產品組:天氣/安全/能源和 HomeCoach/Aircare。
一般 Netatmo 文檔
更具體的產品API:
Netatmo Aircare API 文件
這個項目是個人作品,我與羅格朗沒有任何關係。
該項目根據 MIT 許可證獲得許可 - 有關詳細信息,請參閱許可證文件。