Controla Home Assistant con Tasker desde tu teléfono Android

Gracias a la integración de Tasker y Home Assistant podrás, por ejemplo, controlar todas las luces de casa desde un quick toggle o ejecutar taréas automáticamente dependiendo de tu localización

Tasker es una de las aplicaciones más útiles que puedes instalar en tu teléfono Android. Es tan útil que puedes hacer con ella casi cualquier cosa, entre todas ellas, controlar tu casa.

Algunas ideas que puedes hacer combinando Home Assistant y tasker son:

  • Añadir un quick settings toggle para apagar todas las luces de casi y así, cuando salgas de casa, en un segundo lo pulsas y te vas sin tener que ir interruptor a interruptor apagando cada una de las luces.
  • Desde una notificación encender la calefacción o el aire acondicionado dependiendo de la temperatura de tu casa. Esto lo podemos hacer con un termostato inteligente y con la configuración adecuada.
  • Colocar pegatinas NFC por casa y, dependiendo de la pegatina ejecutar una cosa u otra. Por ejemplo, yo tengo una en la entrada que pone a limpiar la aspiradora o la devuelve a la estación de carga dependiendo de su estado.

Lo único que necesitas para hacer todas estas y muchas más automatizaciones lo encuentras en los siguientes tres pasos de este artículo.

Antes de comenzar

El primer paso es permitir, en nuestra instalación de Home Assistant, el acceso desde fuera gracias al uso de la API y un token de autenticación.

Para ello vamos a nuestro perfil, a la sección «Long-Lived Access Tokens» y creamos y copiamos un token.

Luego en Tasker deberemos de configurar dos variables.

  1. URL de nuestra instalación: bajo el nombre %HA_ADDR ponemos la dirección fija y pública de nuestra instalación de Home Assistant, ejemplo: https://my-ha.duckdns.org:8123
  2. El token de acceso: el token generado anteriormente lo configuramos en Tasker en una variable con el nombre %HA_AUTH.

Con esto ya podremos ver el estado de entidades, ejecutar automatizaciones, scripts y llamar a servicios tal y como veremos en los siguientes puntos.

Ejecuta un servicio, automatización o script desde tasker

Para hacer llamadas a servicios, automatizaciones o scripts de nuestro Home Assistant simplemente debemos crear una tarea con una única acción de tipo JavaScriptlet con el siguiente código. En este caso le ponemos de nombre Call HASS (Post), pero puedes llamarla como prefieras.

const url = global('%HA_ADDR') + "/" + local('par1');
const token= 'Bearer ' + global('%HA_AUTH');
const xhttp = new XMLHttpRequest();
xhttp.open('POST', url, false);
xhttp.setRequestHeader('Authorization', token);
xhttp.send(local('par2'));
if( xhttp.status != 200 ) { 
    console.error(xhttp.status + ' - ' + xhttp.responseText); 
}

Como ves estamos usando las variables %HA_ADDR y %HA_AUTH que definimos en el punto anterior. Es importante que sigas el manual paso a paso.

Luego puedes usar esta taréa en cualquier otra llamándola con un perform task y pasándole los dos parámetros únicos necesarios.

Como puedes ver en la imágen de la derecha el primer parámetro es la URL a la que quieres llamar teniendo siempre el mismo formato api/services/ seguido del servicio que quieres llamar, en este caso automation.trigger.

El segundo parámetro será el JSON que mandamos al servicio. En este caso con mandar la entidad que queremos ejecutar bastaría, pero depende de cada tipo de servicio. Importante, deberás mandarlo en formato JSON ya que es una petición HTTP y en este caso no es compatible con el formato YML.

En la URL remplazamos los puntos de los servicios por barras horizontales (/) para formar la dirección correcta.


Una opción más sencilla para crear la tarea es importarla directamente desde Tasker Share. Simplemente abre el siguiente enlace en tu teléfono Android y la tarea se debería crear automáticamente.

Tasker Share

Tasker Share

https://taskernet.com/shares/?user=AS35m8kj%2BNIgEJ2YFAqmjrlXf2pVD3vwFILQF0iUzZ4DLHTladPy2G8YqumPNlplR6%2FdDg%3D%3D&id=Task%3ACall+HASS+%28Post%29

Obtener el estado de una entidad con tasker

Al igual que antes lo primero que tenemos que hacer es crear una taréa con dos acciones. La primera será de tipo JavaScriptlet con el siguiente código:

const url = global('%HA_ADDR') + local('par2') + "/" + local('par1');
const token= 'Bearer ' + global('%HA_AUTH');
const xhttp = new XMLHttpRequest();
xhttp.open('GET', url, false);
xhttp.setRequestHeader('Authorization', token);
xhttp.send();
if( xhttp.status != 200 ) { 
    console.error(xhttp.status + ' - ' + xhttp.responseText); 
} else {
    var response = JSON.parse(xhttp.responseText).state;
}

Y luego otra acción de tipo Return que devolverá la variable %response. De esta forma, cada vez que llamemos a esta tarea le pasaremos dos parámetros.

  1. El primero corresponde a la entidad de la cual queremos obtener el estado, por ejemplo light.salon.
  2. Y el segundo normalmente será /api/states que es el servicio de Home Assistant para obtener estados de entidades.

Una vez que se ejecute la tarea obtendremos siempre una variable %response cuyo valor corresponderá al estado de la entidad elegida. Asi de fácil.


Al igual que con la tarea anterior, te dejo aquí el enlace para que puedas importarlo directamente.

Tasker Share

Tasker Share

https://taskernet.com/shares/?user=AS35m8kj%2BNIgEJ2YFAqmjrlXf2pVD3vwFILQF0iUzZ4DLHTladPy2G8YqumPNlplR6%2FdDg%3D%3D&id=Task%3ACall+HASS+%28Get%29


Fuente:

⚙️ Using Tasker with Home Assistant (V2)

⚙️ Using Tasker with Home Assistant (V2)

Hi everyone ! A year ago, I posted a tutorial showing how to use Tasker with Home Assistant. After more that 10 thousands views, I’ve decided to update the tutorial so it’s easier to follow, with better screenshots and better ways to identify problems It also uses new features of Tasker, such as HTTP headers. Let’s get started ! 🚀 1. Create a token First of all, go the the “Long-Lived Access Tokens” section at the bottom of the Profile page of your Home Assistant. This page can be ac…

https://community.home-assistant.io/t/using-tasker-with-home-assistant-v2/149366