5.8 KiB

title description ha_category ha_release ha_iot_class ha_domain ha_platforms ha_integration_type
RESTful Instructions on how to integrate REST sensors and binary sensors into Home Assistant.
Binary sensor
Sensor
0.7.4 Local Polling rest
binary_sensor
notify
sensor
switch
integration

The rest sensor platform is consuming a given endpoint which is exposed by a RESTful API of a device, an application, or a web service. The sensor has support for GET and POST requests.

RESTful Sensor and RESTful Binary Sensor can also be set up as platforms if there is only a single sensor per endpoint.

# Example configuration.yaml entry
rest:
  - authentication: basic
    username: "admin"
    password: "password"
    scan_interval: 60
    resource: http://192.168.1.12/status.xml
    sensor:
      - name: "Adult Pool Data System"
        json_attributes_path: "$.response.system"
        value_template: "OK"
        json_attributes:
          - "runstate"
          - "model"
          - "opmode"
          - "freeze"
          - "time"
          - "sensor1"
          - "sensor2"
          - "sensor3"
          - "sensor4"
          - "sensor5"
          - "version"
      - name: "Adult Pool Data Equipment"
        json_attributes_path: "$.response.equipment"
        value_template: "OK"
        json_attributes:
          - "circuit1"
          - "circuit2"
          - "circuit3"
          - "circuit4"
          - "circuit5"
          - "circuit6"
          - "circuit7"
          - "circuit8"
      - name: "Adult Pool Data Temp"
        json_attributes_path: "$.response.temp"
        value_template: "OK"
        json_attributes:
          - "htstatus"
          - "poolsp"
          - "spasp"
          - "pooltemp"
          - "spatemp"
          - "airtemp"
  - authentication: basic
    username: "admin"
    password: "password"
    scan_interval: 60
    resource: "http://192.168.1.13/status.xml"
    sensor:
      - name: "Kiddie Pool Data System"
        json_attributes_path: "$.response.system"
        value_template: "OK"
        json_attributes:
          - "runstate"
          - "model"
          - "opmode"
          - "freeze"
          - "time"
          - "sensor1"
          - "sensor2"
          - "sensor3"
          - "sensor4"
          - "version"
      - name: "Kiddie Pool Data Equipment"
        json_attributes_path: "$.response.equipment"
        value_template: "OK"
        json_attributes:
          - "circuit1"
          - "circuit2"
          - "circuit3"
          - "circuit4"
          - "circuit5"
          - "circuit6"
          - "circuit7"
          - "circuit8"
      - name: "Kiddie Pool Data Temp"
        json_attributes_path: "$.response.temp"
        value_template: "OK"
        json_attributes:
          - "htstatus"
          - "poolsp"
          - "spasp"
          - "pooltemp"
          - "spatemp"
          - "airtemp"

{% configuration %} resource: description: The resource or endpoint that contains the value. required: true type: string resource_template: description: The resource or endpoint that contains the value with template support. required: true type: template method: description: The method of the request. Either POST or GET. required: false type: string default: GET payload: description: The payload to send with a POST request. Depends on the service, but usually formed as JSON. required: false type: string payload_template: description: The payload to send with a POST request, with template support. Depends on the service, but usually formed as JSON. required: false type: template verify_ssl: description: Whether to verify the SSL certificate of the endpoint. required: false type: boolean default: True ssl_cipher_list: description: The list of SSL ciphers to be accepted from this endpoint. python_default (default), modern or intermediate (inspired by Mozilla Security/Server Side TLS). required: false type: string default: default timeout: description: The maximum time in seconds to wait for data from the endpoint. If the timeout is reached, the sensor will become unavailable. required: false type: integer default: 10 authentication: description: Type of the HTTP authentication. basic or digest. required: false type: string username: description: The username for accessing the REST endpoint. required: false type: string password: description: The password for accessing the REST endpoint. required: false type: string headers: description: The headers for the requests. required: false type: [list, template] params: description: The query params for the requests. required: false type: [list, template] scan_interval: description: The frequency in seconds to call the REST endpoint. required: false type: integer default: 30 encoding: description: The character encoding to use if none provided in the header of the shared data. required: false type: string default: UTF-8 sensor: description: A list of sensors to create from the shared data. All configuration settings that are supported by RESTful Sensor not listed above can be used here. required: false type: list binary_sensor: description: A list of binary sensors to create from the shared data. All configuration settings that are supported by RESTful Binary Sensor not listed above can be used here. required: false type: list {% endconfiguration %}

{% important %} Use either resource or resource_template. {% endimportant %}

{% include integrations/using_templates.md %}