Añadir un switch Shelly en Home Assistant a través de API REST

En esta entrada vamos a explicar como añadir un Shelly a Home Assistant a través de API REST. Para ello usaremos el componente REST de Home Assistant.

Shelly dispone de una API muy bien documentada que nos permite atacar por HTTP el dispositivo, sin cambiar el firmware de nuestro dispositivo, sin prescindir de la nube y sin tener que salir a ella para el funcionamiento normal del mismo.

En esta ocasión vamos a usar una Shelly 2.5 que dispone de dos salidas y control de potencia.

Este dispositivo es muy parecido a la Shelly 1, pero en lugar de una salida de 16A, dispone de 2 salidas de 10A y monitorización de consumo.

Al disponer de dos salidas, dispone del modo persiana (roller shutter), siendo ideal para automatizar persianas y toldos.

Este es el esquema de conexión de la misma, para AC220V:

Que el dispositivo tenga API REST basicamente quiere decir que nos ofrece la posibilidad de atacándolo a través de una URL con su IP en un navegador realice funcionalidades.

Vamos a usar la API para añadir los dos switches de la misma y el medidor de consumo.

El principal problema de integrar la shelly por API en lugar de con MQTT es que el refresco si usamos de forma manual el interruptor, es de unos 15 segundos, debido a que no está constantemente Home Assistant refrescando y pidiendo el estado del mismo. Hemo bajado el scan interval a 5 segundos.

Con la shelly 1, el código a usar sería el mismo pero solo con el switch con relay 0, en el mismo recuerda que solo debes cambiar la IP por la que tenga asignada tu Shelly.

switch:

  - platform: rest
    name: "Shelly2 Switch1"    scan_interval: 5
    resource: http://192.168.1.100/relay/0
    body_on: 'turn=on'
    body_off: 'turn=off'
    is_on_template: '{{ value_json.ison == true}}'
    headers:
      content-type: application/x-www-form-urlencoded

  - platform: rest
    name: "Shelly2 Switch2"
    scan_interval: 5
    resource: http://192.168.1.100/relay/1
    body_on: 'turn=on'
    body_off: 'turn=off'
    is_on_template: '{{ value_json.ison == true}}'
    headers:
      content-type: application/x-www-form-urlencoded

sensor:

  - platform: rest
    resource: http://192.168.1.100/status
    name: Shelly2 Power
    value_template: '{{ value_json.meters[0]["power"]}}'
    scan_interval: 5

El código para hacerlo funcionar como persiana es ligeramente dierente, en otra entrada lo publicaremos.

Con esto ya tendremos en nuestro sistema la Shelly integrada:

Si necesitas ayuda recuerda unirte a nuestro grupo de Telegram y para no perderte nada de lo que publiquemos sigue nuestro Twitter con los enlaces a pie de página.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *