RESTful Sensor
RESTful 传感器 集成正在使用由设备、应用程序或 Web 服务的 RESTful API 公开的给定端点。传感器支持 GET 和 POST 请求。
提示: 如果你想使用同一端点创建多个 sensors,请使用 RESTful 的配置说明。
要启用此传感器,请将以下行添加到“configuration.yaml”文件中以获取 GET 请求:
或者对于 POST 请求:
或基于模板的请求:
使用 resource 或 resource_template。
:::
curl 可以帮助您识别要在 Home Assistant 前端显示的变量。下面的示例显示了运行 aREST 的设备的 JSON 响应。
响应预计是一个字典或一个以字典作为第 0 个元素的列表。
Using templates
For incoming data, a value template translates incoming JSON or raw data into a valid payload.
Incoming payloads are rendered with possible JSON values, so when rendering, the value_json variable can be used to access attributes in a JSON-based payload. Otherwise, the value variable can be used for non-JSON payloads.
The this variable can also be used in the template. The this attribute refers to the current entity state of the entity.
Further information about the this variable can be found in the template documentation.
:::note Example value template with JSON:
With the following payload:
Template {{ value_json.temperature | round(1) }} renders to 21.9.
示例
在本节中,您将找到一些如何使用该传感器的现实示例。
外部IP地址
您可以使用 IPv4 和 IPv6 的 ipify 服务找到您的外部 IP 地址。
来自本地 Glances 实例的单个值
glances 传感器对所有暴露的值执行完全相同的操作。
来自另一个 Home Assistant 实例的值
家庭助理 API 公开来自连接的传感器的数据。如果您正在运行多个未连接的 Home Assistant 实例,您仍然可以从中获取信息。
如果资源变量中的 Home Assistant 实例受 API 密码保护,您可以将 ?api_password=YOUR_PASSWORD 附加到资源 URL 来进行身份验证或使用 headers:。
访问受 HTTP 身份验证保护的端点
REST 传感器支持 HTTP 身份验证和自定义标头。
标题将包含所有相关详细信息。这还将使您能够访问受令牌保护的端点。
如果您要访问受 Authorization 标头中的 Bearer 令牌保护的资源,则可以将该令牌放入传感器配置的标头字段中(不推荐),或者将该令牌存储在 secrets.yaml 文件中。在这种情况下,请务必在 secrets 文件中包含单词 Bearer。
secrets.yaml 文件的示例条目:
使用 GitHub 获取最新版本的 Home Assistant
此示例与 updater 集成非常相似,但信息是从 GitHub 接收的。
获取多个 JSON 属性并将它们呈现为值
JSON Test 返回自 http://date.jsontest.com/ 纪元以来的当前时间、日期和毫秒数。
JSONPlaceholder提供示例JSON数据用于测试。在下面的示例中,JSONPath 查找 JSON 文档中的属性。 JSONPath Online Evaluator 提供了一个测试 JSONPath 的工具。如果端点返回 XML,则在搜索属性之前将使用 xmltodict 将其转换为 JSON。您可能会发现此 XML to JSON Converter 对于测试 XML 如何转换为 JSON 很有帮助。
此示例从 OpenWeatherMap 获取天气报告,将结果数据映射到 RESTful 传感器的属性,然后创建一组 template 传感器来监视属性并以可用的形式显示值。
此配置展示了如何从字典中提取多个值。此方法可避免 REST 服务泛滥,因为结果仅请求一次。根据该单个请求,可以使用模板传感器创建多个传感器。
下面的示例展示了如何从 Steamist Steambath Wi-Fi 接口的 XML 文件中的字典中提取多个值。这些值用于创建多个传感器,而无需多次轮询端点。
作为参考,上面示例中端点的 XML 内容如下:

