Automatizar rutinas en tu PC con Home Assistant

Incrementa tu productividad y haz que pasen cosas en tu ordenador al automatizar rutinas en tu PC con Home Assistant.

Requisitos previos

Para automatizar rutinas en tu PC con Home Assistant antes necesitas lo siguiente:

Automatización de rutinas

Si ya has completado los requisitos anteriores, ya sabes que puedes integrar muchos sensores de información de tu PC en Home Assistant. De igual modo, puedes ejecutar acciones en tu ordenador desde HA, y viceversa. Esto nos va a permitir automatizar rutinas en tu PC con Home Assistant de una forma muy sencilla.

¿Y para qué? Pues por un lado vas a aumentar tu productividad, haciendo que sucedan cosas de forma automática, ahorrando unos cuántos ‘clics’. Por otro lado puedes utilizarlo para mejorar tu ambiente de trabajo, estudio u ocio, adecuando el estado de otros dispositivos en función de lo que estés haciendo.

Lógicamente en esta entrada vamos a centrarnos en automatizaciones que se desencadenan o terminan en tu PC, ya que ya somos expertos en otro tipo de automatizaciones, como encender la calefacción si estamos en la habitación o controlar la impresora.

Por ilustrar la explicación, voy a hacer que cuando encienda mis auriculares bluetooth Sony se inicie Spotify.

Al final de la entrada encontrarás el código completo de la automatización. En todo caso voy a incluir la explicación completa para que puedas automatizar rutinas en tu PC con Home Assistant y crear tus propias automatizaciones.

Creando un desencadenante

Como te decía, vamos a considerar los casos en los casos en los que el desencadenante está en nuestro PC (puesto que si está fuera se trataría de un caso normal más). Para ello vamos a hacer uso de los sensores que nos prorporciona la integración del PC. Si estás usando IOT Link ya sabes que los sensores se crean de forma automática.

Sin embargo con HASS.Agent tenemos que crearlos. Para ello tienes que acceder al panel de control de HASS.Agent (desde el icono en la esquina inferior derecha de tu escritorio), pulsar en “Sensores locales” y en “Añadir nuevo”. Como ya sabes, desde aquí puedes añadir los distintos sensores que figuran en la lista.

En este caso vamos a usar HASS.Agent para añadir el sensor “DispositivosBluetooth”, haciendo clic sobre él y luego en el botón “Sensor de tienda”. Después haz clic sobre “Almacenar y activar sensores”. Si ahora accedes en HA a Ajustes > Dispositivos y servicios > MQTT > Dispositivos y pulsas sobre tu PC, verás que se ha creado una nueva entidad con los dispositivos bluetooth conectados a tu ordenador. Este sensor tiene estado el número de dispositivos vinculados y como atributos el detalle de cada uno de los dispositivos.

Si consultas el sensor desde Herramientas para desarrolladores > Estados, verás algo como lo siguiente.

HA

Para nuestro propósito nos vamos a fijar en campo “Name” y el campo “Connected”. El primer campo identifica el dispositivo que queremos que desencadene la acción (por ejemplo, unos auriculares) y el segundo indica si está conectado (cuando lo esté indicará ‘true’).

Vamos a crear un pequeño ‘template’ que va a recorrer los dispositivos bluetooth vinculados, y cuando encuentre los auriculares (cuyo nombre en el ordenador es “WH-CH520“) nos va a devolver el valor del campo ‘Connected’.

{% set bt = states.sensor.laptop_tito_dispositivosbluetooth.attributes.BluetoothDevices %}
{% for item in bt | selectattr('Name', '==', 'WH-CH520') | map(attribute='Connected') %}
{{ item }}
{% endfor %}

En mi caso además lo voy a guardar como un sensor en si mismo, ya que lo quiero utilizar para más cosas, como mostrarlo en alguna tarjeta de mi panel de control. Para ello sólo hay que copiar el siguiente código en el fichero ‘sensors.yaml’, sustituyendo los datos de tu PC y tu dispositivo bluetooth.

- platform: template
  sensors:
    auriculares_sony_pc:
      friendly_name: "Auriculares Sony PC"
      value_template: >
        {% set bt = states.sensor.laptop_tito_dispositivosbluetooth.attributes.BluetoothDevices %}
        {% for item in bt | selectattr('Name', '==', 'WH-CH520') | map(attribute='Connected') %}
        {{ item }}
        {% endfor %}
      icon_template: mdi:headphones

Tanto si creas un sensor como si no, ya tenemos lo que necesitábamos para nuestro desencadenante. En concreto la rutina se va a activar cuando el estado de conexión de los auriculares pase a “true”. Para ello has de utilizar el tipo “plantilla” como disparador.

HA

Definiendo la acción

El siguiente paso es definir lo que queremos que pase en nuestro PC. Nuevamente, si queremos generar una acción fuera de nuestro PC se trataría de una automatización “normal”.

Para ello tenemos que volver al panel de control de HASS.Agent, seleccionar el botón de “Comandos” y pulsar en “Añadir nuevo”. Luego selecciona el tipo “Costumbre” en el menú lateral.

  • En el campo “tipo de entidad” selecciona “Botón”
  • En el campo “nombre” indica el que quieras (por ejemplo, “LAPTOP_launch_Spotify”)
  • En el campo “dominio” tienes que indicar la ruta exacta del ejecutable que lanza la aplicación. Para encontrarla, he utilizado el buscador del explorador de archivos (en mi caso he buscado “Spotify.exe”).

Esto creará una entidad (en mi caso ‘button.laptop_tito_launch_spotify’) del tipo ‘button’ que al ser “pulsada” lanzará la aplicación. Para “pulsarla” utilizaremos el servicio ‘button.press’ y de esta forma ya habremos establecido la primera acción de la rutina.

HA

Como en cualquier automatización, podemos seguir añadiendo todas las acciones que queramos. Por ejemplo, voy a añadir una pausa de 5 segundos para que se ejecute Spotify y luego voy a utilizar el servicio ‘media_player.media_play’ para que se inicie la reproducción.

HA

Código completo de la automatización

A continuación puedes encontrar el código completo de la automatización que hemos creado en el ejemplo, tanto si quieres replicarla como si quieres utilizarla como base para tus propias rutinas.

No olvides reemplazar el nombre de tus entidades!

alias: Reproducir Spotify al conectar los auriculares
description: Explicación completa en aguacatec.es!
trigger:
  - platform: template
    value_template: >-
      {% set bt =
      states.sensor.NOMBRE_DEL_SENSOR_DISPOSITIVOS_BT.attributes.BluetoothDevices
      %}

      {% for item in bt | selectattr('Name', '==', 'NOMBRE_DEL_DISPOSITIVO_BT') |
      map(attribute='Connected') %}

      {{ item }}

      {% endfor %}
    id: Auriculares encendidos
    alias: Auriculares encendidos
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Auriculares encendidos
        sequence:
          - service: button.press
            target:
              entity_id: button.NOMBRE_ENTIDAD_BOTON
            data: {}
          - delay:
              hours: 0
              minutes: 0
              seconds: 5
              milliseconds: 0
          - service: media_player.media_play
            target:
              entity_id: media_player.NOMBRE_ENTIDAD_MULTIMEDIA_PC
            data: {}
mode: single

¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂
sorteo
Send this to a friend