OpenWeather 公司在其网站 OpenWeatherMap https://openweathermap.org上提供天气数据和预报以供检索。这些数据可以集成到您自己的应用程序中。可以通过提供的API 通过 REST 接口进行检索,从而可以自动化集成。除了收费的详细长期预报外,还可以免费调用当前天气数据和短期预报。

带有 OPC Router的 REST 开放天气
以OpenWeatherMap为例,我们展示了使用OPC Router REST Plug-in来调用REST API 接口并展示如何
- 从 OpenWeatherMap 检索天气数据
- 处理 JSON 天气数据
- 可以使用SQL Server 插件将数据存储在 SQL 数据库中
- 天气数据可以使用 Telegram 插件通过电报发送
Weather API,天气数据的 REST 接口
REST 接口是基于 Web 技术的数据接口。可以通过 https 协议从 REST API 检索数据。从技术上讲,网页是通过 URL 调用的,就像在浏览器中一样。参数被传递给网页调用,这些参数作为参数字段附加到 URL。参数的含义在各自的REST API 文档中定义。对于 OpenWeather 的 Weather API,文档可在https://openweathermap.org/api在线获取。对于每种形式的数据检索(当前天气、每日预报/5 天/16 天/30 天等),都有一个单独的REST API 端点(调用 URL)。
检索伦敦当前天气的示例如下所示:JSON 格式的结果数据(调用仅返回测试数据)
参数“q”包含城市和国家代码。REST API 端点是“天气”。参数通过“?”附加到端点 并用“&”链接。每个参数都用名称和值声明,用“=”分隔。
Weather API 使用参数“appid”作为身份验证来识别检索客户端。对于您自己的测试设置,您必须请求自己的 App-ID 来进行数据检索。App-ID 或 API KEY 可通过以下页面https://home.openweathermap.org/users/sign_up注册获取。然后可以在“API 密钥”下的用户区域中查看 API KEY。
此处记录了检索任何位置的当前天气的描述:https ://openweathermap.org/current
OPC Router中 REST 接口的连接
为了使用 OPC Router 调用 REST 端点,第一步是将 REST Plug-in 引入 HOST。为此创建了以下条目:
既然主机对于调用是已知的,一个 REST 传输对象就可以在使用创建的主机的 OPC Router连接中使用。然后在传输对象中选择相应的端点并确定参数。对于当前天气的检索,使用“天气”端点,在这种情况下,位置由位置 ID 确定(此处为 Schenefeld,ID=2839763)。
要查找您所在位置的 ID,只需在主页 ( https://openweathermap.org )上搜索您的城市。在您所在城市的预测页面中,可以在 URL 中找到 ID:https: //openweathermap.org/city/ 2839763
此处使用 GET 作为 REST 方法,参数作为“QueryString”传递。按 ID 检索当前天气的文档可在此处找到:https ://openweathermap.org/current#cityid
通过 REST 作为 JSON 文档检索天气数据
REST API 调用返回一个带有天气数据的 JSON 文档。此 JSON 文档可以传输到OPC Router连接中的JSON 传输对象:
执行连接后,即可使用 JSON 结构信息。因此,已经在连接中放置了一个 30 秒的触发器,并且已经发布了连接,以便可以执行它。
执行连接后,可以在 JSON 传输对象的配置中使用“建议”功能来确定 JSON 文档中的可用字段并使其可供选择。箭头按钮可用于选择要在连接中使用的字段。
对于这个例子,一些关于当前天气的基本信息是从 JSON 文档中选择的(温度、气压、湿度、最低/最高每日温度、风速和风向)。选择数据字段后,将相应显示传输对象。
在 SQL 数据库中存储天气数据
通过电报发送天气信息
最终结果:从 OpenWeather 到 SQL Server 再到 Telegram
除了 SQL Server 插件和 Telegram 插件之外,还有许多其他插件可用,通过这些插件可以将天气数据传输到各种系统,以便根据天气提供信息或优化流程。