RESTful 스위치


rest 스위치 플랫폼을 사용하면 RESTful API를 지원하는 지정된 엔드 포인트를 제어할 수 있습니다. 스위치는 GET을 통해 상태를 얻고 주어진 REST 리소스에서 POST를 통해 상태를 설정할 수 있습니다.

설정

이 스위치를 활성화하려면 configuration.yaml 파일에 다음 줄을 추가하십시오 :

# Example configuration.yaml entry
switch:
  - platform: rest
    resource: http://IP_ADDRESS/ENDPOINT

Configuration Variables

resource

(string)(Required)

The resource or endpoint that contains the value.

method

(string)(Optional)

The method of the request. Supported post or put.

Default value:

post

name

(string)(Optional)

Name of the REST Switch.

Default value:

REST Switch

timeout

(integer)(Optional)

Timeout for the request.

Default value:

10

body_on

(string)(Optional)

The body of the POST request that commands the switch to become enabled. This value can be a template.

Default value:

true

body_off

(string)(Optional)

The body of the POST request that commands the switch to become disabled. This value can also be a template.

Default value:

false

is_on_template

(string)(Optional)

A template that determines the state of the switch from the value returned by the GET request on the resource URL. This template should compute to a boolean (True or False). If the value is valid JSON, it will be available in the template as the variable value_json. Default is equivalent to '{{ value_json == body_on }}'. This means that by default, the state of the switch is on if and only if the response to the GET request matches.

username

(string)(Optional)

The username for accessing the REST endpoint.

password

(string)(Optional)

The password for accessing the REST endpoint.

headers

(string | list)(Optional)

The headers for the request.

verify_ssl

(boolean)(Optional)

Verify the SSL certificate of the endpoint.

Default value:

true

URL이 엔드 포인트 또는 리소스와 정확히 일치하는지 확인하십시오.

사례

템플릿 값을 응용한 Switch

이 예는 template을 사용하여 Home Assistant가 상태를 확인할 수 있는 스위치를 보여줍니다. 이 예제에서 REST 엔드 포인트는 스위치가 켜져 있음을 나타내는 true로 이 JSON 응답을 리턴합니다.

{"is_active": "true"}
switch:
  - platform: rest
    resource: http://IP_ADDRESS/led_endpoint
    body_on: '{"active": "true"}'
    body_off: '{"active": "false"}'
    is_on_template: '{{ value_json.is_active }}'
    headers:
      Content-Type: application/json
    verify_ssl: true

body_onbody_off도 시스템 상태에 따라 달라질 수 있습니다. 예를 들어, 무선 온도 조절기에서 원격 온도 센서 추적을 사용하려면 원격 온도 센서의 현재 값을 보내야합니다. '{"rem_temp":{{states('sensor.bedroom_temp')}}}' 템플릿을 사용하면됩니다.