Blueprints

Cómo crear y compartir tus propios blueprints

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.

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:

  1. Accede a https://gist.github.com/
  2. Incuye una descripción del blueprint en el campo “Gist description”.
  3. Indica el nombre del fichero que contiene tu blueprint (por ejemplo, ‘Carga_inteligente.yaml’) en el campo “Filename including extension…”
  4. Pega el contenido del fichero en el campo de texto.
  5. Haz clic en el botón “Create gist”, y ya está!
  6. 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.

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

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! 🙂
quieres mas
Send this to a friend