En Home Assistant es posible utilizar una integración que permite usar comandos de shell como acciones. Las acciones se pueden ejecutar desde un script o en automatización . En nuestro caso, vamos a utilizar el comando curl para visitar una web http que a su vez desencadena una acción en un teléfono movil a través de la aplicación Macrodroid para enviar un SMS de alerta.
os comandos pueden ser dinámicos, utilizando plantillas para insertar valores en los argumentos. Al usar plantillas, shell_command se ejecuta en un entorno más seguro que no permite funciones auxiliares de la shell, como la expansión automática del carácter del directorio de inicio (\ ~), el uso de barras verticales (\ |) para ejecutar múltiples comandos, ni operadores que redirijan la salida (como \ >y \ >>). De igual forma, solo el contenido posterior al primer espacio puede generarse mediante una plantilla. Esto significa que el nombre del comando en sí no puede generarse mediante una plantilla, sino que debe proporcionarse literalmente.
Cualquier dato de acción que se pase a la acción para activar el comando de shell estará disponible como variable dentro de la plantilla.
Tabla de contenidos
Creando la acción en configuration.yaml
El primer paso es crear la acción o acciones a ejecutar a través del editor de código en el configuration.yaml.
shell_command:
curl_humo_cocina: "curl http://192.168.1.211:8080/humo_cocina"
curl_humo_despacho: "curl http://192.168.1.211:8080/humo_despacho"
curl_humo_atico: "curl http://192.168.1.211:8080/humo_atico"
En el ejemplo se crean tres acciones que utilizan el comando curl para visitar la dirección ip del teléfono movil desde el que se enviarán los SMS. La dirección la proporciona Macrodroid al crear el script, en este caso. En este caso, cuando se recibe la petición http, el teléfono envía un SMS.
Una vez creada la acción, es necesario reiniciar Home Assistant para que se encuentren operativas.
Integrando la acción en un script o una automatización
Una vez creada la acción, en el bloque «hacer» o «acciones» de la automatización o del script, podemos buscar la acción shellcommand y nos mostrará todas las que hemos creado previamente, lo que nos permite seleccionar la que nos interese ejecutar dentro de la automatización o el script.

Una vez creada la automatización, cada vez que esta se desencadene, ejecutará el comando shell que hemos creado e incluido en el configuration.yaml.
En el caso del ejemplo, se consigue que cada vez que se ejecuta la automatización, al detectar humo en alguna estancia», accede vía http a la ip del teléfono movil y este desencadena el envío de un SMS al teléfono indicado avisando de la presencia de humo.
De esta forma, podemos ejecutar cualquier comando shell desde una automatización o script de home assistant o incluso crear un switch template que haga uso de esta automatización.



