本教程将展示如何使用REST API获取天气数据。
假设你需要了解资产位置的当前天气。你可以将天气信息用于某些数据 处理逻辑或仅用于跟踪历史记录并在仪表板上启用此信息的可视化。
在本教程中,我们将配置ThingsBoard规则引擎以使用REST API自动获取天气信息。 你可以将本教程用作更复杂任务的基础。
我们假设你已完成以下指南并查看了以下文章:
在ThingsBoard中添加资产实体。它的名称为Building A,类型为building。
注意:如果你拥有专业版,则需要使用客户层次结构向客户添加资产 以下方式:
为了获取天气数据,你应该在提供该数据的网站上注册。在这种情况下 OpenWeatherMap 将被使用。
在此处签名后,请转到这里页面以获取你的api密钥。
要执行REST API调用,我们需要以下URL参数: API密钥,经度,纬度和度量单位。
我们建议将API键参数添加到客户服务器端属性,并将其他参数添加到资产 服务器端属性。
客户属性应如下所示:
如下添加属性:
Field | Data Type | Input Data |
APPID | String | (an API key you got from OpenWeatherMap) |
资产属性应如下所示:
Field | Data Type | Input Data |
latitude | Double | latitude of an asset |
longitude | Double | longitude of an asset |
units | String | "metric" for meters per second wind speed and Celsius temperature, "imperial" for miles per hour wind speed and Fahrenheit temperature, empty for meters per second wind speed and Kelvin temperature |
在此示例中,将使用纽约市的坐标和公制单位。
在本节中,我们将解释本教程中每个节点的用途。将涉及一个规则链:
下面的屏幕截图显示了上面的规则链应该是什么样子:
下载并导入 json 文件其中包含本教程的规则链。 请注意,你需要将最开始创建的资产设置为最左侧生成器节点中的发起者。
下一节将向你展示如何从头开始创建此规则链。
转到Rule Chains -> Add new Rule Chain
配置:
创建新规则链。按Edit按钮并配置链。
在此规则链中,你将创建5个节点,如以下各节所述:
Field | Value |
Name | Generate requests |
Message count | 0 |
Period in seconds | 15 |
Originator type | Asset |
Asset | Building A |
Generate function | return { msg: {}, metadata: {}, msgType: "POST_TELEMETRY_REQUEST" }; |
Field | Value |
Name | Get customer API key |
Latest telemetry | False |
Source attribute | APPID |
Target attribute | APPID |
添加Originator attributes enrichment node节点并将其连接到关联类型为Success的Customer attributes node节点该节点将获取服务器属性的纬度,经度和在Generator节点中设置的发起者的单位到元数据中。
通过以下方式填写其字段:
Field | Value |
Name | Latitude/Longitude |
Server attributes | latitude, longitude, units |
Field | Value |
Name | Get Weather Data |
Endpoint URL pattern | http://api.openweathermap.org/data/2.5/weather?lat=${ss_latitude}&lon=${ss_longitude}&units=${ss_units}&APPID=${APPID} |
Request method | GET |
Use simple client HTTP factory | False |
var newMsg = {
"outsideTemp": msg.main.temp,
"outsideMaxTemp": msg.main.temp_max,
"outsideMinTemp": msg.main.temp_min,
"outsideHumidity": msg.main.humidity,
};
return {msg: newMsg, metadata: metadata, msgType: msgType};
仪表板应如下所示:
入门指南 - 这些指南提供了ThingsBoard主要功能的快速概述。
安装指南 - 了解如何在各种操作系统上安装ThingsBoard。
设备连接 - 了解如何根据您的连接方式或解决方案连接设备。
数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。
数据分析 - 了解如何使用规则引擎执行基本的分析任务。
硬件样品 - 了解如何将各种硬件平台连接到ThingsBoard。
高级功能 - 了解高级ThingsBoard功能。
开发指南 - 了解ThingsBoard中的贡献和开发。