aREST

目前 Home Assistant 支持以下设备类型:

二值传感器

arest 二值传感器平台允许您从运行 aREST RESTful 框架的设备(如带有以太网/Wi-Fi 连接的 Arduino、ESP8266 和 Raspberry Pi)获取所有数据。

要在您的安装中使用 aREST 二值传感器,请将以下内容添加到您的 "configuration.yaml" 文件中。 :::tip 更改配置后需要重启 Home Assistant。 :::

# 示例 configuration.yaml 条目
binary_sensor:
  - platform: arest
    resource: http://IP_ADDRESS
    pin: 8
resource:
  description: 暴露 aREST API 的设备的 IP 地址和协议,例如 `http://192.168.1.10`。
  required: true
  type: string
pin:
  description: 要监控的引脚编号。
  required: true
  type: integer
name:
  description: 让您覆盖设备的名称。默认使用设备中的 *name*。
  required: false
  type: string

访问 URL http://IP_ADDRESS/digital/PIN_NUMBER 应该在 JSON 响应中作为 return_value 给您引脚的状态。

$ curl -X GET http://192.168.0.5/digital/9
{"return_value": 0, "id": "office1", "name": "Office", "connected": true}

受上面命令启发的引脚 9 示例如下:

# 示例 configuration.yaml 条目
binary_sensor:
  - platform: arest
    resource: http://192.168.0.5/digital/9
    pin: 9
    name: Office
Note

此传感器不适用于快速状态变化,因为在两个更新周期之间发生变化的概率很高。

传感器

arest 传感器平台允许您从运行 aREST RESTful 框架的设备(如带有以太网/Wi-Fi 连接的 Arduino、ESP8266 和 Raspberry Pi)获取所有数据。

要在您的安装中使用启用 aREST 的设备,请将以下内容添加到您的 "configuration.yaml" 文件中:

# 示例 configuration.yaml 条目
sensor:
  - platform: arest
    resource: https://IP_ADDRESS
    monitored_variables:
      temperature:
        name: temperature
    pins:
      A0:
        name: Pin 0 analog
resource:
  description: "暴露 aREST API 的设备的 IP 地址和协议,例如 `https://192.168.1.10`。"
  required: true
  type: string
name:
  description: 让您覆盖设备的名称。
  required: false
  default: aREST sensor
  type: string
pins:
  description: 要监控的引脚列表。模拟引脚的引脚号需要前导 **A**。
  required: false
  type: list
  keys:
    pin:
      description: 要使用的引脚号。
      required: true
      type: list
      keys:
        name:
          description: 您希望监控的变量名称。
          required: true
          type: string
        unit_of_measurement:
          description: 定义传感器的测量单位(如果有)。
          required: false
          type: string
        value_template:
          description: 定义一个[模板](/home-assistant/docs/configuration/templating/#processing-incoming-data)以从负载中提取值。
          required: false
          type: template
monitored_variables:
  description: 暴露变量列表。
  required: false
  type: list
  keys:
    variable:
      description: 要监控的变量名称。
      required: true
      type: list
      keys:
        name:
          description: 用于前端的名称。
          required: false
          type: string
        unit_of_measurement:
          description: 定义传感器的测量单位(如果有)。
          required: false
          type: string
        value_template:
          description: 定义一个[模板](/home-assistant/docs/configuration/templating/#processing-incoming-data)以从负载中提取值。
          required: false
          type: template

monitored_variables 数组中的变量必须在设备的响应中可用。作为起点,您可以使用示例草图之一(例如,带有以太网屏蔽的 Arduino 的 Ethernet)。在这些草图中有两个变量(temperaturehumidity)可用,它们将作为端点。

访问其中一个端点(例如 http://192.168.1.10/temperature)将在 JSON 响应中给您值。

{"temperature": 23, "id": "sensor01", "name": "livingroom", "connected": true}

根目录将给您一个 JSON 响应,其中包含所有变量及其当前值以及一些设备详细信息。

{
   "variables" : {
      "temperature" : 23,
      "humidity" : 82
   },
   "id" : "sensor01",
   "name" : "livingroom",
   "connected" : true
}

return_value 在给定引脚的 JSON 响应中包含传感器数据(例如 http://192.168.1.10/analog/2/http://192.168.1.10/digital/7/)。

{"return_value": 34, "id": "sensor02", "name": "livingroom", "connected": true}

开关

arest 开关平台允许您切换运行 aREST RESTful 框架的设备(如带有以太网/Wi-Fi 连接的 Arduino 板、基于 ESP8266 的设备和 Raspberry Pi)的引脚。

要在您的安装中使用带有引脚的启用 aREST 的设备,请将以下内容添加到您的 "configuration.yaml" 文件中:

# 示例 configuration.yaml 条目
switch:
  - platform: arest
    resource: http://IP_ADDRESS
    pins:
      11:
        name: Fan
      13:
        name: Switch
        invert: true

如果您想使用自定义函数,请将以下内容添加到您的 "configuration.yaml" 文件中:

# 示例 configuration.yaml 条目
switch:
  - platform: arest
    resource: http://IP_ADDRESS
    name: Office
    functions:
      function1:
        name: Light Desk
resource:
  description: 暴露 aREST API 的设备的 IP 地址和协议,例如 `http://192.168.1.10`(无尾随斜杠)
  required: true
  type: string
name:
  description: 让您覆盖设备的名称。默认使用设备中的 *name*。
  required: false
  type: string
pins:
  description: 包含所有使用引脚的数组。
  required: false
  type: map
  keys:
    name:
      description: 在前端使用的引脚名称。
      required: true
      type: string
    invert:
      description: 是否应反转开/关的逻辑。
      required: false
      type: boolean
      default: false
functions:
  description: 包含所有使用函数的数组。
  required: false
  type: map
  keys:
    name:
      description: 在前端使用的名称。
      required: true
      type: string

您仍然可以使用 Web 浏览器或命令行工具切换您的引脚。使用 URL http://192.168.1.10/digital/8/1 将引脚 8 设置为高/开,JSON 响应将给您反馈。

{"message": "Pin D8 set to 1", "id": "sensor02", "name": "livingroom", "connected": true}