OpenWeather 公司在其網(wǎng)站 OpenWeatherMap https://openweathermap.org上提供天氣數(shù)據(jù)和預報以供檢索。這些數(shù)據(jù)可以集成到您自己的應用程序中。可以通過提供的API 通過 REST 接口進行檢索,從而可以自動化集成。除了收費的詳細長期預報外,還可以免費調(diào)用當前天氣數(shù)據(jù)和短期預報。

帶有 OPC Router的 REST 開放天氣
以OpenWeatherMap為例,我們展示了使用OPC Router REST Plug-in來調(diào)用REST API 接口并展示如何
- 從 OpenWeatherMap 檢索天氣數(shù)據(jù)
- 處理 JSON 天氣數(shù)據(jù)
- 可以使用SQL Server 插件將數(shù)據(jù)存儲在 SQL 數(shù)據(jù)庫中
- 天氣數(shù)據(jù)可以使用 Telegram 插件通過電報發(fā)送
Weather API,天氣數(shù)據(jù)的 REST 接口
REST 接口是基于 Web 技術的數(shù)據(jù)接口。可以通過 https 協(xié)議從 REST API 檢索數(shù)據(jù)。從技術上講,網(wǎng)頁是通過 URL 調(diào)用的,就像在瀏覽器中一樣。參數(shù)被傳遞給網(wǎng)頁調(diào)用,這些參數(shù)作為參數(shù)字段附加到 URL。參數(shù)的含義在各自的REST API 文檔中定義。對于 OpenWeather 的 Weather API,文檔可在https://openweathermap.org/api在線獲取。對于每種形式的數(shù)據(jù)檢索(當前天氣、每日預報/5 天/16 天/30 天等),都有一個單獨的REST API 端點(調(diào)用 URL)。
檢索倫敦當前天氣的示例如下所示:JSON 格式的結(jié)果數(shù)據(jù)(調(diào)用僅返回測試數(shù)據(jù))
參數(shù)“q”包含城市和國家代碼。REST API 端點是“天氣”。參數(shù)通過“?”附加到端點 并用“&”鏈接。每個參數(shù)都用名稱和值聲明,用“=”分隔。
Weather API 使用參數(shù)“appid”作為身份驗證來識別檢索客戶端。對于您自己的測試設置,您必須請求自己的 App-ID 來進行數(shù)據(jù)檢索。App-ID 或 API KEY 可通過以下頁面https://home.openweathermap.org/users/sign_up注冊獲取。然后可以在“API 密鑰”下的用戶區(qū)域中查看 API KEY。
此處記錄了檢索任何位置的當前天氣的描述:https ://openweathermap.org/current
OPC Router中 REST 接口的連接
為了使用 OPC Router 調(diào)用 REST 端點,第一步是將 REST Plug-in 引入 HOST。為此創(chuàng)建了以下條目:
既然主機對于調(diào)用是已知的,一個 REST 傳輸對象就可以在使用創(chuàng)建的主機的 OPC Router連接中使用。然后在傳輸對象中選擇相應的端點并確定參數(shù)。對于當前天氣的檢索,使用“天氣”端點,在這種情況下,位置由位置 ID 確定(此處為 Schenefeld,ID=2839763)。
要查找您所在位置的 ID,只需在主頁 ( https://openweathermap.org )上搜索您的城市。在您所在城市的預測頁面中,可以在 URL 中找到 ID:https: //openweathermap.org/city/ 2839763
此處使用 GET 作為 REST 方法,參數(shù)作為“QueryString”傳遞。按 ID 檢索當前天氣的文檔可在此處找到:https ://openweathermap.org/current#cityid
通過 REST 作為 JSON 文檔檢索天氣數(shù)據(jù)
REST API 調(diào)用返回一個帶有天氣數(shù)據(jù)的 JSON 文檔。此 JSON 文檔可以傳輸?shù)?/font>OPC Router連接中的JSON 傳輸對象:
執(zhí)行連接后,即可使用 JSON 結(jié)構(gòu)信息。因此,已經(jīng)在連接中放置了一個 30 秒的觸發(fā)器,并且已經(jīng)發(fā)布了連接,以便可以執(zhí)行它。
執(zhí)行連接后,可以在 JSON 傳輸對象的配置中使用“建議”功能來確定 JSON 文檔中的可用字段并使其可供選擇。箭頭按鈕可用于選擇要在連接中使用的字段。
對于這個例子,一些關于當前天氣的基本信息是從 JSON 文檔中選擇的(溫度、氣壓、濕度、最低/最高每日溫度、風速和風向)。選擇數(shù)據(jù)字段后,將相應顯示傳輸對象。
在 SQL 數(shù)據(jù)庫中存儲天氣數(shù)據(jù)
現(xiàn)在可以根據(jù)需要進一步處理檢索到的天氣數(shù)據(jù)。在示例中,我們將數(shù)據(jù)存儲在數(shù)據(jù)庫中并將其發(fā)送到消息服務。
OPC Router的 SQL Server 插件可用于將數(shù)據(jù)存儲在MS SQL 數(shù)據(jù)庫中。在插件配置中,指定了 SQL 數(shù)據(jù)庫的常用連接參數(shù),然后在選擇傳輸對象時可以使用表和存儲過程。該示例顯示了一個數(shù)據(jù)庫“天氣”,其中一個表“TBL_WEATHER_CURRENT”作為當前天氣數(shù)據(jù)的存儲位置。選擇表并標記要使用的列。
通過電報發(fā)送天氣信息
最終結(jié)果:從 OpenWeather 到 SQL Server 再到 Telegram
除了 SQL Server 插件和 Telegram 插件之外,還有許多其他插件可用,通過這些插件可以將天氣數(shù)據(jù)傳輸?shù)礁鞣N系統(tǒng),以便根據(jù)天氣提供信息或優(yōu)化流程。

.png)










