Aprende cómo crear y compartir tus propios blueprints para hacer automatizaciones más eficientes y aportar tus creaciones al resto de la comunidad.
Como te contaba en esta entrada un blueprint es, en resumen, un script o automatización predefinida que contiene algunas partes configurables. Échale un vistazo si tienes alguna duda sobre este concepto.
Índice
Primer paso: crear una automatización
El primer paso para crear un blueprint va a ser crear una automatización (o script) como lo harías normalmente, y verificar que funciona correctamente. Para el ejemplo voy a utilizar una automatización sencilla de carga inteligente, que enciende un enchufe inteligente cuando el porcentaje de la batería de un dispositivo se encuentra por debajo de un porcentaje determinado, y se apaga cuando alcanza el nivel deseado.
Identificar el ‘trigger’ o desencadenante
En este caso vamos a tener dos desencadenantes a automatizar. El primero es cuando el nivel de la batería del dispositivo se encuentra por debajo de un valor, encendiendo el enchufe. El segundo por lo contrario, lo apaga cuando alcanza el nivel deseado.
Hasta aquí algo sencillo, utilizamos el sensor de batería del dispositivo y el tipo de descadenante «estado numérico», marcando los niveles deseados, y luego añadimos el identificador del trigger para marcar el desencadenante de encendido y el de apagado.
Asignar una acción
En el apartado de acciones voy a añadir una nueva del tipo «Elegir». En condiciones, añadiré una nueva y seleccionaré «Activado por» y marcaré el trigger correspondiente a cada escenario (encendido o apagado). Por último, añadiré la acción correspondiente a cada caso, como haríamos normalmente (encender o apagar el enchufe, respectivamente).
Por último compruebo que la automatización se activa y ejecuta la acción esperada. Una vez comprobado, guardo la automatización y la doy por finalizada.
Creación del blueprint
Los blueprint se almacenan en ficheros ‘.yaml’ y se guardan en la ruta «config/blueprints/automation/». Por tanto, lo primero que voy a hacer es copiar el código de la automatización que he creado en el apartado anterior en un fichero con el nombre ‘Carga_inteligente.yaml’.
Al principio de este fichero hay que incluir unas líneas de información (‘metadata’) que HA necesita conocer sobre el blueprint (nombre, descripción y dominio):
blueprint: name: Carga inteligente description: 'Esta automatización enciende un enchufe inteligente cuando el porcentaje de la batería de un dispositivo se encuentra por debajo de un porcentaje determinado, y se apaga cuando alcanza el nivel deseado.' domain: automation
Definir las partes configurables
Lógicamente, la gracia de compartir un blueprint es que la persona que lo utilice pueda utilizarlo con la mayor comodidad posible. Para ello vamos a definir que partes puede modificar el usuario final, y dejar el resto predefinido.
En un blueprint las partes configurables se denominan ‘inputs‘. Por ejemplo, en el blueprint que estoy creando una parte que debe ser configurable es el dispositivo a cargar, el enchufe y los porcentajes de carga.
Debes incluir cada ‘input’ dentro de las líneas (‘metadata’) que mencionábamos en el apartado anterior, pudiendo incluir un nombre y una descripción que se le mostrará al usuario a la hora de seleccionar la entidad correspondiente. También puedes incluir filtros (‘selectors‘) sobre las entidades que se pueden seleccionar, para orientar mejor al usuario.
Siguiendo el ejemplo anterior, de esta forma permito al usuario seleccionar los distintos elementos.
blueprint: name: Carga inteligente description: 'Esta automatización enciende un enchufe inteligente cuando el porcentaje de la batería de un dispositivo se encuentra por debajo de un porcentaje determinado, y se apaga cuando alcanza el nivel deseado.' domain: automation input: device_charge: name: Dispositivo description: Selecciona el sensor de batería del dispositivo que quieres cargar selector: entity: domain: - sensor device_class: battery multiple: false switch: name: Enchufe description: Selecciona el enchufe inteligente que controlará la carga inteligente selector: entity: domain: - switch multiple: false percentage_ko: name: Porcentaje Min description: Porcentaje de carga de la batería con el que se inicia la carga inteligente default: 20 selector: number: min: 0 max: 100 unit_of_measurement: "%" percentage_ok: name: Porcentaje Max description: Porcentaje de carga de la batería con el que termina la carga inteligente default: 90 selector: number: min: 0 max: 100 unit_of_measurement: "%"
Luego, tienes que incluir estos input en todos aquellos sitios del código de la automatización donde aparecía el ayudante mencionado.
Aquí tienes un ejemplo de como quedaría la automatización.
trigger: - platform: numeric_state entity_id: !input 'device_charge' below: !input 'percentage_ko' id: Encendido - platform: numeric_state entity_id: !input 'device_charge' above: !input 'percentage_ok' id: Apagado condition: [] action: - choose: - conditions: - condition: trigger id: - Apagado sequence: - service: switch.turn_off data: {} target: entity_id: !input 'switch' - conditions: - condition: trigger id: - Encendido sequence: - service: switch.turn_on data: {} target: entity_id: !input 'switch' mode: single
Comprueba que funciona
Una vez que ya tienes tu fichero ‘.yaml’ creado, puedes comprobar su funcionamiento cargándolo en tu instancia de Home Assistant. Accede a la ruta donde se encuentran los blueprints (‘config/blueprints/automation/’), crea una nueva carpeta y deja tu fichero dentro. Reinicia HA y cuando termine encontrarás tu blueprint en Ajustes > Automatizaciones y escenas > Planos. Si hay algún error en el código, en esta pantalla encontrarás un mensaje de error sobre tu blueprint.
Si todo es correcto, pulsa sobre los 3 puntos de la derecha y selecciona «Crear automatización». Configura los campos tal y como habías definido y comprueba que todo funcione correctamente.
Comparte tus creaciones!
Casi has completado el proceso sobre cómo crear y compartir tus propios blueprints con el resto de la comunidad. Sólo queda publicarlo a través de Github. Para ello sigue estos pasos:
- Accede a https://gist.github.com/
- Incuye una descripción del blueprint en el campo «Gist description».
- Indica el nombre del fichero que contiene tu blueprint (por ejemplo, ‘Carga_inteligente.yaml’) en el campo «Filename including extension…»
- Pega el contenido del fichero en el campo de texto.
- Haz clic en el botón «Create gist», y ya está!
- Para compartir el blueprint sólo tienes que copiar y enviar el enlace del «Gist» que has creado. Cualquier persona puede importarlo a su instancia de Home Assistant a través de Ajustes > Automatizaciones y escenas > Planos, haciendo clic en «Importar plano».
También puedes compartirlo a través de un botón de Home Assistant como este.
Para ello antes tienes que incluir en las primeras líneas de tu blueprint la URL del «Gist» que has creado, de esta forma:
blueprint: name: Carga inteligente description: 'Esta automatización enciende un enchufe inteligente cuando el porcentaje de la batería de un dispositivo se encuentra por debajo de un porcentaje determinado, y se apaga cuando alcanza el nivel deseado.' source_url: https://gist.github.com/TitoTB/0cb1ceb8dadfdb0145ec51ab2fe48f0c domain: automation
Reinicia HA y después busca tu blueprint en Ajustes > Automatizaciones y escenas > Planos. Pulsa sobre los 3 puntos de la derecha y haz clic en «Compartir plano». En una nueva ventana encontrarás los códigos correspondientes y… listo! ya sabes cómo crear y compartir tus propios blueprints!
¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂