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

帶有 OPC Router的 REST 開放天氣

帶有 OPC Router的 REST 開放天氣

OpenWeatherMap為例,我們展示了使用OPC Router REST Plug-in來調(diào)用REST API 接口并展示如何

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)建了以下條目:

REST 插件
REST 到端點

既然主機對于調(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 傳輸對象:

REST JSON 讀取
REST OpenWeather JSON

執(zhí)行連接后,即可使用 JSON 結(jié)構(gòu)信息。因此,已經(jīng)在連接中放置了一個 30 秒的觸發(fā)器,并且已經(jīng)發(fā)布了連接,以便可以執(zhí)行它。
執(zhí)行連接后,可以在 JSON 傳輸對象的配置中使用“建議”功能來確定 JSON 文檔中的可用字段并使其可供選擇。箭頭按鈕可用于選擇要在連接中使用的字段。

對于這個例子,一些關于當前天氣的基本信息是從 JSON 文檔中選擇的(溫度、氣壓、濕度、最低/最高每日溫度、風速和風向)。選擇數(shù)據(jù)字段后,將相應顯示傳輸對象。

REST JSON 讀取正常

在 SQL 數(shù)據(jù)庫中存儲天氣數(shù)據(jù)

SQL Server 客戶端配置

現(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ù)的存儲位置。選擇表并標記要使用的列。

因此,SQL Server 傳輸對象已準備好并連接到 JSON 文檔的字段。如果現(xiàn)在觸發(fā)了連接觸發(fā)器,則連接將天氣數(shù)據(jù)保存在 SQL Server 表中。觸發(fā)器現(xiàn)在設置為早上 6:15 的早晨轉(zhuǎn)移。
從表中,數(shù)據(jù)現(xiàn)在可供其他應用程序使用。

REST JSON 到 SQL

通過電報發(fā)送天氣信息

電報機器人

Telegram 插件不僅可用于通過 SQL 分發(fā)天氣數(shù)據(jù),還可以作為示例直接通過推送消息到移動設備(例如手機)。使用 Telegram 插件可以連接所謂的Telegram Bot 。一方面,機器人可用于從移動用戶向 OPC Router發(fā)送活動命令,另一方面 OPC Router也可以向注冊用戶發(fā)送活動消息。
對于我們的示例,我們生成了一個電報機器人,用于分發(fā)天氣信息。通過 Telegram 應用程序生成一個機器人:

為了向登錄用戶發(fā)送帶有數(shù)據(jù)的消息,現(xiàn)在將電報傳輸對象繪制到連接中。傳輸對象將傳遞給它的文本發(fā)送給所有用戶。為了使用戶易于閱讀文本,通過將 JSON 文檔中的值插入文本來插入“文本替換”傳輸對象。對于從開爾文到攝氏度的轉(zhuǎn)換,使用了計算器傳輸對象。

完整的 OPC Router連接

最終結(jié)果:從 OpenWeather 到 SQL Server 再到 Telegram

帶有條目的數(shù)據(jù)庫表

結(jié)果,在指定的觸發(fā)時間(也可以循環(huán)或多次)將數(shù)據(jù)集寫入 SQL 數(shù)據(jù)庫并發(fā)送電報消息。

除了 SQL Server 插件和 Telegram 插件之外,還有許多其他插件可用,通過這些插件可以將天氣數(shù)據(jù)傳輸?shù)礁鞣N系統(tǒng),以便根據(jù)天氣提供信息或優(yōu)化流程。

帶有來自 OPC Router的消息和格式化的天氣數(shù)據(jù)作為文本消息的 Telegram 客戶端

OPC Router測試

立即嘗試并在此處下載您的 OPC Router試用版:

立即測試!