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

带有 OPC Router的 REST 开放天气

带有 OPC Router的 REST 开放天气

OpenWeatherMap为例,我们展示了使用OPC Router REST Plug-in来调用REST API 接口并展示如何

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 插件
REST 到端点

既然主机对于调用是已知的,一个 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 传输对象:

REST JSON 读取
REST OpenWeather JSON

执行连接后,即可使用 JSON 结构信息。因此,已经在连接中放置了一个 30 秒的触发器,并且已经发布了连接,以便可以执行它。
执行连接后,可以在 JSON 传输对象的配置中使用“建议”功能来确定 JSON 文档中的可用字段并使其可供选择。箭头按钮可用于选择要在连接中使用的字段。

对于这个例子,一些关于当前天气的基本信息是从 JSON 文档中选择的(温度、气压、湿度、最低/最高每日温度、风速和风向)。选择数据字段后,将相应显示传输对象。

REST JSON 读取正常

在 SQL 数据库中存储天气数据

SQL Server 客户端配置

现在可以根据需要进一步处理检索到的天气数据。在示例中,我们将数据存储在数据库中并将其发送到消息服务。
OPC Router的 SQL Server 插件可用于将数据存储在MS SQL 数据库中。在插件配置中,指定了 SQL 数据库的常用连接参数,然后在选择传输对象时可以使用表和存储过程。该示例显示了一个数据库“天气”,其中一个表“TBL_WEATHER_CURRENT”作为当前天气数据的存储位置。选择表并标记要使用的列。

因此,SQL Server 传输对象已准备好并连接到 JSON 文档的字段。如果现在触发了连接触发器,则连接将天气数据保存在 SQL Server 表中。触发器现在设置为早上 6:15 的早晨转移。
从表中,数据现在可供其他应用程序使用。

REST JSON 到 SQL

通过电报发送天气信息

电报机器人

Telegram 插件不仅可用于通过 SQL 分发天气数据,还可以作为示例直接通过推送消息到移动设备(例如手机)。使用 Telegram 插件可以连接所谓的Telegram Bot 。一方面,机器人可用于从移动用户向 OPC Router发送活动命令,另一方面 OPC Router也可以向注册用户发送活动消息。
对于我们的示例,我们生成了一个电报机器人,用于分发天气信息。通过 Telegram 应用程序生成一个机器人:

为了向登录用户发送带有数据的消息,现在将电报传输对象绘制到连接中。传输对象将传递给它的文本发送给所有用户。为了使用户易于阅读文本,通过将 JSON 文档中的值插入文本来插入“文本替换”传输对象。对于从开尔文到摄氏度的转换,使用了计算器传输对象。

完整的 OPC Router连接

最终结果:从 OpenWeather 到 SQL Server 再到 Telegram

带有条目的数据库表

结果,在指定的触发时间(也可以循环或多次)将数据集写入 SQL 数据库并发送电报消息。

除了 SQL Server 插件和 Telegram 插件之外,还有许多其他插件可用,通过这些插件可以将天气数据传输到各种系统,以便根据天气提供信息或优化流程。

带有来自 OPC Router的消息和格式化的天气数据作为文本消息的 Telegram 客户端

OPC Router测试

立即尝试并在此处下载您的 OPC Router试用版:

立即测试!