En esta entrada vamos a ver como integrar en nuestro Home Assistant un shelly 2.5 ya instalado en una persiana. Para una primera toma de contacto con la instalación de un shelly 1, añadirlo a su app y usarlo como switch/light podeis dar un vistazo a esta entrada. Salvando las distancias, la instalación es equivalente pero se usará un shelly 2.5 configurado como roller shutter y los dos circuitos que se controlan son para cada uno de los sentidos de giro del motor de la persiana.
Para poder tener una completa funcionalidad con el % de apertura además de las ordenes de subir, bajar y parar, previamente debemos tenerlo calibrado mediante la app de shelly cloud.
La integración de esta guía va a ser via rest.
Una vez con la persiana operativa desde la app nativa necesitaremos declarar en Home Assistan:
El sensor será de tipo rest:
1 2 3 4 5 6 7 8 |
- platform: rest name: "my_cover_position" scan_interval: 5 resource: http://192.168.0.155/roller/0 value_template: '{{ value_json.current_pos }}' unit_of_measurement: "%" headers: content-type: application/x-www-form-urlencoded |
Los rest_command van a tener una serie de parametros para que los podamos reutilizar fácilmente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Call cover action shelly_cover_action: url: http://{{ip}}/roller/0 method: POST headers: accept: 'application/json, text/html' payload: 'go={{action}}' content_type: 'application/x-www-form-urlencoded' verify_ssl: true # Set cover position shelly_cover_set_position: url: http://{{ip}}/roller/0 method: POST headers: accept: 'application/json, text/html' payload: 'go=to_pos&roller_pos={{position}}' content_type: 'application/x-www-form-urlencoded' verify_ssl: true |
Y por último, el cover que será de tipo template:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
- platform: template covers: my_cover: position_template: "{{ states('sensor.my_cover_position') | float }}" open_cover: service: rest_command.shelly_cover_action data: ip: 192.168.0.155 action: open close_cover: service: rest_command.shelly_cover_action data: ip: 192.168.0.155 action: close stop_cover: service: rest_command.shelly_cover_action data: ip: 192.168.0.155 action: stop set_cover_position: service: rest_command.shelly_cover_set_position data_template: position: "{{position}}" data: ip: 192.168.0.155 position: position |
Con todo esto configurado correctamente ya solo nos quedaría usarlo en el lugar que queramos de nuestro home assistant y nos quedaría como en las imagenes de más abajo.
Le podríamos dar un nombre entendible al cover añadiendo el campo friendly_name, por ejemplo 'Persiana cocina'
Con el que podremos interactuar con esos botones o entrar al detalle pinchando en el nombre y nos saldrá los siguiente:
Espero que os sea útil y hasta el próximo día 😉