Con este artículo aprenderas las diferentes maneras que existen sobre cómo integrar Alexa en Home Assistant para que puedas combinar estos dos sistemas, con multitud de pantallas y paso a paso para no perdernos.
Aunque Amazon no para de potenciar Alexa y todo lo que gira a su alrededor, todavía no existe una integración única, oficial, gratuita y robusta para exponer en el ecosistema de Amazon los dispositivos ya dados de alta en Home Assistant.
Además otros sistemas vienen empujando por llevarse la parte del pastel correspondiente como puede ser SmartThings liderado por Samsung.
Pero alternativas para integrar Alexa no faltan. Existen básicamente 3 métodos principales a día de hoy y que vamos a analizar uno a uno para poder usar todo lo que tenemos en Home Assistant a través de Alexa:
Si lo que estás es interesado en la compra de un dispositivo de Amazon con Alexa integrado, te puede interesar el Echo Dot de 4a Generación: Enchufar y a funcionar, compatible con la siguiente selección de dispositivos:
-
WiFi Smart Plug 10A EU Socket Work With Alexa Google Home Assistant Voice Control Timing Intelligent Socket No Gateway Required
€ 10.85 Oferta -
WiFi Smart Curtain Blinds Module Switch Roller Shutter Motor Tuya Wireless Remote Control Work with Alexa Google Home
€ 11.25 Oferta -
Connector 2Pin to 2Pin for ARRI Alexa Camera Cable Power 0B 2pin power out Teradek 0b 2pin power cable
€ 12.26 Oferta -
Aubess Tuya WiFi Smart Plug-in WIFI Plug-in Sub-control US Switch Voice Control Timing Switch Works With Alexa Google Assistant
€ 27.74 Oferta -
16A WiFi Smart Plug 90V-240V EU Power Monitor Socket Timing Function Cozylife APP Control Works With Alexa Google Home Assistant
€ 8.94 Oferta -
[New Version] Amazfit GTR 2 New Version Curved Bezel-less Design Smartwatch Alexa Built-in Ultra-long Battery Life Smart Watch
€ 98.00 Oferta -
118 US Tuya Sensors Touch Switch Works With Google Home Alexa Voice Control WiFi Smart Home Appliance Need Neutral 1gang 2Way
€ 10.36 Oferta -
Ubaro Israel Tuya Wifi Smart Socket App Control Support Google Home Alexa Voice Plug Timing Power Outlet 100-240V Home Appliance
€ 10.69 Oferta -
US 10A Tuya Smart WIFI Plug Support Power Monitor Wireless Remote Socket Smart Timer Plug Voice Control With Alexa Google Home
€ 12.35 Oferta -
Tuya Wifi Smart Touch Switch Light Brazil 4*4 No Neutral Wire 4/6 Gang RF433 Remote On Off Light Smart Life Alexa Google Home
€ 16.19 Oferta -
16A Smart WiFi Socket EU Plug Power Monitor Timing Function Socket Smart Life APP Control Works With Alexa Google Home
€ 12.38 Oferta -
DJI RONIN 2 6 Pin to 2B 8-Pin Female for ARRI ALEXA mini miniLF Camera Power Cable
€ 27.72 Oferta -
LoraTap Tuya Smart Life WiFi Curtains Blinds Switch Roller Shutters Motor Switch Backlight Style Google Home Alexa Voice Control
€ 11.82 Oferta -
ZIGBEE WIFI Garden Watering Timer Smart Sprinkler Drip Irrigation Irrigation System Water Controller TUYA Alexa Google Home
€ 111.98 Oferta -
BSEED Wireless Wifi Roller Shutter Switch Single Smart Blind Touch Sensor Switch Google Assistant Alexa Tuya Smart Life App
€ 14.68 Oferta -
Smart Plug WiFi Socket EU 20A With Power Monitor Timing Function Smart Home Life APP Control Works With Alexa Google Home
€ 20.81 Oferta -
1 PCS Tuya Zigbee Smart Socket Home Powers Monitor Powers Outlet 16A Smart Life Voice Control Alexa Timing UK Plug
€ 9.10 Oferta -
Smart Plug WiFi Socket EU 16A/20A With Power Monitor Timing Function Tuya Smart Life APP Control Works With Alexa Google Home
€ 5.99 Oferta
Si por el contrario lo que te gusta es cacharrear sigue leyendo.
Tabla de contenidos
INTEGRACIÓN DE ALEXA A TRAVÉS DE EMULACIÓN
Quizás no sea la forma más elegante, pero si una de las más sencillas.
En resumen haremos uso de la integración Emulated Hue para crear un Philips Hue Bridge virtual (Puente para control de luces inteligentes de Philips). Alexa pensará que está controlando una serie de bombillas inteligentes, pero realmente serán entidades de nuestro sistema Home Assistant.
- NUESTRO ECHO DOT CON MEJOR CALIDAD DE SONIDO HASTA LA FECHA: disfruta de un audio mejorado respecto al anterior Echo Dot con Alexa, con un sonido potente en cualquier habitación, con voces más nítidas y graves más intensos.
- CONSULTA LA HORA Y MUCHO MÁS DE UN SOLO VISTAZO: con el indicador LED mejorado, podrás ver la hora, tus alarmas, la información del tiempo, los títulos de las canciones y más.
- CONTROLA TU MÚSICA Y CONTENIDO FAVORITOS: escucha en toda tu casa música, audiolibros y pódcast de Amazon Music, Apple Music, Spotify, Deezer y otros servicios de música en streaming o usa el Bluetooth integrado.
- ALEXA SIEMPRE ESTÁ AHÍ PARA AYUDARTE: pídele a Alexa que te diga qué tiempo hace o qué canción suena, pon temporizadores, hazle preguntas o deja que te cuente un chiste. ¿Quieres dormir un poquito más? Pospón las alarmas del Echo Dot con reloj con un solo toque.
- MANTÉN TU CASA CONFORTABLE: controla dispositivos de Hogar digital con la voz y define rutinas activadas con los sensores de temperatura integrados en tu Echo Dot. Crea rutinas para encender automáticamente un ventilador inteligente cuando la temperatura de tu casa aumente por encima del umbral que establezcas.
- SÁCALE MÁS PROVECHO VINCULANDO DISPOSITIVOS: inunda tu casa de música con dispositivos Echo compatibles en distintas habitaciones o crea un sistema de cine en casa con el Fire TV.
- DISEÑADO PARA PROTEGER TU PRIVACIDAD: con múltiples capas de protección y control de la privacidad, incluido un botón para desactivar los micrófonos que los desconecta electrónicamente.
- CON CERTIFICADO CLIMATE PLEDGE FRIENDLY: hemos integrado la sostenibilidad en el diseño de este dispositivo. El 99 % del embalaje de este dispositivo procede de bosques gestionados responsablemente o materiales reciclados, el 95 % de la tela proviene de tela reciclada posconsumo y el 55 % de los plásticos provienen de plásticos reciclados posconsumo.
Para activar Emulated Hue simplemente añadiremos las siguientes líneas a nuestro fichero configuration.yaml:
emulated_hue:
listen_port: 80
entities:
media_player.tv_salon:
name: "television del salon"
Aquí hay que tener en cuenta algunas consideraciones:
- El puerto debe ser 80 para que la aplicación Alexa lo detecte.
- La IP del equipo donde corre Home Assistant debe ser fijo, para que Alexa lo detecte siempre igual y no tengamos que iniciar el proceso cada vez que cambie.
- En la sección entities debñeis poner vuestros propios sensores y un nombre amigable con el que aparecerá en Alexa
Y en la parte de Home Assistant eso es todo. Ahora vamos a ver cómo detectará Alexa este falso bridge de Philips.
-
Mando a distancia universal para ventilador de techo 3 velocidades, Wifi, Compatible con app móvil Amazon Alexa y Google Home.
€ 34.95 Oferta -
Pack 2X Bombilla LED Inteligente Smart A60 E27 CCT+DIM 10W 1055lm WIFI Compatible con Alexa y Google Home – Blanco
€ 14.99 Oferta -
Globo – Smart Home led Panel de techo Control remoto Alexa Luz Luz de día Lámpara regulable 41604D4SH
€ 86.14 Oferta -
Etc-shop – Lámpara colgante de techo para sala de estar, lámpara de tela Alexa Google en un juego que incluye bombillas led rgb
€ 178.14 Oferta -
LED Tiras Luz Inteligente RGB Multicolor Sincronización de Música Control Remoto Control Wifi, Decoración para Fiesta Funciona con Alexa y Google Home
€ 49.99 Oferta -
Alexa – 2pcs Neumático Abrazadera superior Neumático Neumático Neumático de automóvil Máquina de rotura Accesorios Herramienta auxiliar
€ 36.99 Oferta -
Downlight led Empotrable Inteligente Wifi, 6W, cct. Regulable de luz cálida a blanca 3000-6500K, 360lm. Compatible Alexa y Google Home. Foco
€ 8.99 Oferta -
Cadeaux – Enchufe WiFi, enchufe inteligente 16A 3680W, compatible con Alexa Google Home, con control de voz y control remoto, salida con temporizador
€ 45.99 Oferta -
Happyshopping – Conjunto de sensores de puerta Wi-Fi, Alarma de sensor de puerta, compatible con Alexa y G-oogle
€ 31.99 Oferta
Instalaremos la aplicación Amazon Alexa en nuestro móvil, bien sea en la versión Android o IOS:

El proceso de instalación es sencillo. Deberemos tener previamente una cuenta de Amazon (sí, la misma que usas para hacer las compras).
Elegiremos la opción de configurar la app Alexa y seleccionaremos el perfil de usuario de Amazon (sí, el mismo que eliges al iniciar Prime TV), confirmando tu nombre y apellidos para aceptar las condiciones:

Entrenar al asistente para que no tenga problemas en reconocer nuestra voz será también muy sencillo pues solo tendremos que repetir la palabra Alexa varias veces cuando nos lo pida en un ambiente silencioso:

Permitiremos el acceso a los contactos por si queremos ordenarle hacer una llamada, persmisos para usar el micrófono, ubicación y grabar audio mientras se use la aplicación si nos lo pide. Todo normal.
Llegaremos al menú principal con todas las opciones de la aplicación:

Ahora es cuando vamos a «engañar» a Alexa para que crea que Home Assistant es un dispositivo HUE Bridge.
En la aplicación, en la sección «Dispositivos», le damos a añadir dispositivo:

Elegimos Controlador>Philips Hue> Puente Philips Hue V1 (con forma circular):

Y seleccionamos detectar dispositivos directamente. (indicará que le demos al botón físico del puente para emparejarlo, pero ni caso porque estamos engañando a la aplicación):

Y ya lo tendremos emparejado. Para comprobar que funciona correctamente solo tendremos que acceder a esta url desde cualquier equipo de la misma red: http://ip_de_home_assistant:80/api/pi/lights
Nos debería aparecer el listado de dispositivos que hemos definido en nuestro fichero configuration.yaml como si fueran luces:
{"1": {"state": {"on": true, "reachable": true, "mode": "homeautomation", "bri": 38}, "name": "television del salon", "uniqueid": "00:bc:97:a8:36:b4:0f:3d-59", "manufacturername": "Home Assistant", "swversion": "123", "type": "Dimmable light", "modelid": "HASS123"}}
Si en el proceso el log de Home Assistant os muestra este tipo de error, es que otro proceso está usando ya ese puerto en esa misma IP, y a día de hoy no podemos elegir el puerto en el que transmite la aplicación de Alexa. Solo nos quedaría identificar ese otro proceso y quitarlo si no es crítico:
[homeassistant.components.emulated_hue] Failed to create HTTP server at port 80: [Errno 98] error while attempting to bind on address ('192.168.0.200', 80): address in use
En resumen y como conclusion de la integración a través de emulación:
- VENTAJAS
- Fácil de implementar
- Gratuito
- INCONVENIENTES
- Puerto TCP 80 usado en exclusividad
- Dispositivos aparecen como bombillas para Alexa
- Excasa flexibillidad
INTEGRACIÓN DE ALEXA A TRAVÉS DE NABU CASA
Definitivamente la opción más directa. Dependeremos de un servicio externo, pero nos quitaremos muchos dolores de cabeza. No tendremos que configurar nada avanzado. Los asistentes de voz Google Home y Alexa estarán accesibles. Y todo tiene un coste, en este caso 5$ cada mes de suscripción tras los 30 días de prueba.
- Presentamos Echo Dot: nuestro altavoz inteligente con Alexa más vendido. El diseño elegante y compacto ofrece un sonido de calidad con voces claras y graves equilibrados.
- Controla con la voz tu entretenimiento: escucha en streaming música de Amazon Music, Apple Music, Spotify, Deezer y más. Escucha música y pódcasts en cualquier parte de tu casa con la música multiestancia.
- Compatible con audio de alta definición sin pérdidas, disponible en servicios de música en streaming compatibles, como Amazon Music HD.
- Lista para ayudar: pídele a Alexa que te cuente un chiste, ponga música, responda a preguntas, lea las noticias, te dé la previsión del tiempo, cree alarmas y más.
- Controla tus dispositivos de Hogar digital: usa la voz para encender luces, ajustar termostatos y cerrar cerraduras usando dispositivos compatibles.
- Conecta con los que te importan: llama prácticamente a cualquier persona sin usar las manos. Llama a otras habitaciones al instante con Drop In o realiza comunicados a toda la casa para anunciar que la cena está lista.
- Diseñado para proteger tu privacidad: fabricado con varias capas de protección y controles de privacidad, incluido un botón que desconecta los micrófonos electrónicamente.
El proceso es muy sencillo y lo podemos encontrar aquí, pero como resumen estos serán los pasos:
- Activar el componente Cloud si no lo está ya (lo normal es que esté por defecto). Si fuera necesario añadir la siguiente línea al fichero configuration.yaml:
cloud:
- Logearnos en Home Assitant Cloud desde el menú Configuration:

- Añadimos la skill de Home Assistant desde la aplicación Alexa en el móvil:


- Una vez instalado el skill, le ordenamos a Alexa que descubra nuevos dispositivos.
- Y eso es básicamente todo. Luego podremos definirle qué dispositivos compartir y cuales no.
Sencillo, ¿verdad?
De nuevo dejamos un resumen de los pros y contras de esta opción con Nabu Casa:
- VENTAJAS
- Muy fácil de implementar
- Conexión remota segura
- INCONVENIENTES
- Coste 5$ / mes
INTEGRACIÓN DE ALEXA EN HOME ASSISTANT CREANDO UNA SKILL
Esta es quizás la opción más compleja, pues nos ponemos en la piel de desarrollador en la plataforma de Amazon.
Aprenderemos cómo integrar Alexa en Home Assistant de la manera menos fácil, pero con la que más aprenderemos en el proceso.
Nos hemos basado en la propia documentación, pero variando algunos pasos y aclarando otros. Aun así es un viaje largo.
- Visualiza tu día con claridad, Alexa está lista para ayudarte: usa la voz para poner alarmas y temporizadores, ver tu calendario o las noticias, hacer videollamadas con la cámara de 2 MP y reproducir música y series en streaming.
- Pon Alexa en tu mesita de noche: empieza tu día con buen pie con una rutina que encienda las luces compatibles. Despiértate con las noticias, el pronóstico del tiempo o tu música favorita.
- Gestiona tu hogar digital: ve lo que pasa cuando no estás gracias a la cámara integrada. Controla dispositivos compatibles, como cámaras, luces y más, a través de la pantalla interactiva o tu voz.
- Usa las videollamadas para mantener el contacto: llama a tus familiares y amigos que tengan la app Alexa o un dispositivo Echo con pantalla gracias a la cámara de 2 MP. Envía comunicados a otros dispositivos compatibles en tu casa.
- Pásatelo en grande: pide a Alexa que reproduzca series y películas con Prime Video, Netflix y más. También puedes escuchar tu música favorita con Amazon Music, Apple Music, Spotify y otros.
- Muestra tus recuerdos en la pantalla: usa tus fotos de Amazon Photos para convertir la pantalla del dispositivo en un marco digital.
- Diseñado para proteger tu privacidad: desactiva electrónicamente los micrófonos y la cámara con tan solo pulsar un botón. Usa la cubierta integrada para tapar la cámara.
Son muchos pasos en varias plataformas (App alexa, Home Assistant, Developer Console y AWS Console), así que para no liarnos iremos poniendo muchas pantallas y paso a paso hasta llegar a la meta. Preparad un café y vamos a empezar.
-
Mando a distancia universal para ventilador de techo 3 velocidades, Wifi, Compatible con app móvil Amazon Alexa y Google Home.
€ 34.95 Oferta -
Pack 2X Bombilla LED Inteligente Smart A60 E27 CCT+DIM 10W 1055lm WIFI Compatible con Alexa y Google Home – Blanco
€ 14.99 Oferta -
Globo – Smart Home led Panel de techo Control remoto Alexa Luz Luz de día Lámpara regulable 41604D4SH
€ 86.14 Oferta -
Etc-shop – Lámpara colgante de techo para sala de estar, lámpara de tela Alexa Google en un juego que incluye bombillas led rgb
€ 178.14 Oferta -
LED Tiras Luz Inteligente RGB Multicolor Sincronización de Música Control Remoto Control Wifi, Decoración para Fiesta Funciona con Alexa y Google Home
€ 49.99 Oferta -
Alexa – 2pcs Neumático Abrazadera superior Neumático Neumático Neumático de automóvil Máquina de rotura Accesorios Herramienta auxiliar
€ 36.99 Oferta -
Downlight led Empotrable Inteligente Wifi, 6W, cct. Regulable de luz cálida a blanca 3000-6500K, 360lm. Compatible Alexa y Google Home. Foco
€ 8.99 Oferta -
Cadeaux – Enchufe WiFi, enchufe inteligente 16A 3680W, compatible con Alexa Google Home, con control de voz y control remoto, salida con temporizador
€ 45.99 Oferta -
Happyshopping – Conjunto de sensores de puerta Wi-Fi, Alarma de sensor de puerta, compatible con Alexa y G-oogle
€ 31.99 Oferta
-
WiFi Smart Plug 10A EU Socket Work With Alexa Google Home Assistant Voice Control Timing Intelligent Socket No Gateway Required
€ 10.85 Oferta -
WiFi Smart Curtain Blinds Module Switch Roller Shutter Motor Tuya Wireless Remote Control Work with Alexa Google Home
€ 11.25 Oferta -
Connector 2Pin to 2Pin for ARRI Alexa Camera Cable Power 0B 2pin power out Teradek 0b 2pin power cable
€ 12.26 Oferta -
Aubess Tuya WiFi Smart Plug-in WIFI Plug-in Sub-control US Switch Voice Control Timing Switch Works With Alexa Google Assistant
€ 27.74 Oferta -
16A WiFi Smart Plug 90V-240V EU Power Monitor Socket Timing Function Cozylife APP Control Works With Alexa Google Home Assistant
€ 8.94 Oferta -
[New Version] Amazfit GTR 2 New Version Curved Bezel-less Design Smartwatch Alexa Built-in Ultra-long Battery Life Smart Watch
€ 98.00 Oferta -
118 US Tuya Sensors Touch Switch Works With Google Home Alexa Voice Control WiFi Smart Home Appliance Need Neutral 1gang 2Way
€ 10.36 Oferta -
Ubaro Israel Tuya Wifi Smart Socket App Control Support Google Home Alexa Voice Plug Timing Power Outlet 100-240V Home Appliance
€ 10.69 Oferta -
US 10A Tuya Smart WIFI Plug Support Power Monitor Wireless Remote Socket Smart Timer Plug Voice Control With Alexa Google Home
€ 12.35 Oferta
Lo primero que tendremos que cumplir son los siguientes requisitos:
Requisitos
Son varios los pasos previos que debemos realizar antes de empezar con el procedimiento:
Home Assistant accesible desde Internet
Tener nuestro sistema Home Assistant accesible desde Internet tiene ciertos beneficios pero también conlleva riesgos si no se hace correctamente. Para ello os dejo este enlace donde explicamos con detalle cómo se hace.
Cuenta de desarrollo de Amazon
Debemos tener asimismo una cuenta de desarrollo de Amazon aquí. Si tenemos ya cuenta en Amazon para compras podremos entrar con esas mismas credenciales:


Y nos daremos de alta como desarrolladores:

Si no queremos completar ahora el perfil con más datos, seleccionamos «Start exploring the console»:

Cuenta en servicios web de Amazon (AWS)
Por último nos hará falta crear también una cuenta en los servicios web de Amazon (AWS) , ya que hay partes de la skill que se guardarán allí.
Si en algún momento he de aconsejaros sobre seguridad es ahora, pues en el proceso deberemos facilitar información de nuestra tarjeta y nos harán un pequeño cargo de 1$.
En este caso pensad que es muy probable que Amazon ya tenga esta información de cobro si solemos comprar en su plataforma, pero son «departamentos» independientes dentro de Amazon, por lo que no nos queda otra que dar estos datos de nuevo para continuar en el proceso. El coste del servicio que usaremos es gratis hasta 1 millón de llamadas/mes, así que tranquilos. El proceso de creación de cuenta en AWS se hace en varios pasos sencillos:
- En el primero paso nos pedirán email y una clave, así como un nombre identificativo de la cuenta AWS.
- En el segundo paso Amazon se asegura de que somos humanos con un captcha.
- En el tercer paso nos pedirán información de contacto:

- Cuarto paso: Datos de nuestra tarjeta de crédito. Nos cargarán 1$ (al cambio hoy unos 0,88 €) para confirmar que la cuenta es nuestra. Deberéis aceptar el pago desde vuestra app del banco.
- Ahora toca el paso de confirmar el número de teléfono con el envío de un mensaje sms en el que vendrá un código que deberemos introducir para confirmar.
- Y por último elegimos el plan gratuito de soporte, le daremos a completar y listo!


Una vez hemos completado ls requisitos, vamos con el proceso de creación de la skill…
Creación básica de Skill de Alexa
Lo primero que haremos será entrar en la consola de desarrollo de Amazon con las credenciales que pusimos en la sección de requisitos y seleccionamos Alexa Skills Kit y creamos un nuevo skill:


Le pondremos un nombre identificativo a la nueva skill y seleccionamos el idioma apropiado. Además elegiremos el modelo «Smart Home»:

En la misma pantalla dejaremos seleccionado «Provision your own» y finalmente seleccionamos la opción de crear la skill con estos datos con el botón en la parte superior:


En la siguiente pantalla que nos muestra la consola en el proceso de creación, deberemos seleccionar la versión 3 de Payload, pero no nos dejará grabar la skill todavía porque no tenemos lo necesario para rellenar el campo Default endpoint. Este dato lo tendremos más adelante y se llama identificador ARN de la función Lambda, así que por ahora dejad abierta esta pantalla hasta que completemos ese paso.
Importante, copiad el ID del nuevo Skill que más tarde nos hará falta al crear la función Lambda:

Por tanto, dejaremos por ahora la consola de desarrollo abierta en una pestaña aparte para continuar en este punto una vez tengamos el resto de datos a instroducir.
Creación de función Lambda
La función Lambda que va a residir en AWS de Amazon hará de intermediario entre Alexa y nuestro Home Assistant, por tanto dicho sofware tendrá ese único comentido:

Para la creación de dicha función Lambda en AWS y ver como integrar alexa en Home Assistant, vamos a seguir los siguientes pasos:
Creación de perfil IAM para la función Lambda
Primero entraremos en la consola de AWS (ojo no confundir con la consola de la cuenta de desarrollo), en este enlace con las credenciales que pusimos enla sección de requisitos como root:

A continuación, en el menú superior de «Services» os saldrá un desplegable y tendréis que buscar la opción IAM:

En el menú lateral buscaremos Roles y seleccionaremos crear un nuevo rol:

A partir de aquí Amazon nos lleva por un asistente de 4 pasos donde debemos configurar las propiedades del nuevo rol.
En el primer paso elegiremos obviamente la opción Lambda:

En el paso 2 establecemos los permisos del nuevo rol, buscando la política «AWSLambdaBasicExecutionRole»

El siguiente paso lo podemos saltar pulsando Next: Review

Para terminar de crear el rol IAM, le daremos un nombre representativo y seleccionamos «Create role»:

Y ya debería aparecer nuestro nuevo rol IAM:

Programación de la función Lambda
De nuevo desde la consola de AWS desplegaremos los difrentes servicios desde la parte superior y buscaremos la opción Lambda:

En la página donde trabajaremos lo primero que tenemos que hacer y muy importante es elegir la región apropiada para los servidores AWS que usaremos. En nuestro caso (España), pero aquí tenéis el listado que marca la documentación por si tenéis que poner otra opción:
- US East (N.Virginia) para English (US) o English (CA)
- EU (Ireland) para English (UK), English (IN), German (DE), Spanish (ES) or French (FR)
- US West (Oregon) para Japanese y English (AU)

Ahora sí, seleccionamos Functions y Create function para iniciar el asistente:

En el primer paso del asistente hay varias cosas que seleccionar:
- Daremos un nombre representativo a la función. Os recomiendo un prefijo «lambda_» para no liaros luego.
- En el campo de Runtime, podéis elegir entre varias versiones de Python. Os recomiendo elegir la más actual
- Debemos desplegar las opciones bajo el epígrafe «Change default execution role» y seleccionar «use an existing role»
- Ahora ya nos dejará elegir el rol IAM que hemos creado anteriormente

En lesta sección iremos a la pestaña «Configuration» y en el menú lateral escogeremos «Triggers» para crear uno nuevo usaremos el botón:

Y desplegamos las distintas opciones hasta seleccionar «Alexa Smart Home«

Y nos preguntará por el identificador de la Skill que creamos en el paso de creación del Skill en la consola de desarrollo y añadimos el Trigger con el botón Add:

Ahora trabajaremos en la pestaña «Code» de la misma pantalla, borraremos el código de ejemplo que aparece en la página de Jason Hu y que no reproduzco aquí para que vayáis a su página y copiéis el código más reciente. Luego seleccionar «Deploy«

Misma pantalla, pero esta vez en la pestaña «Configuration», seleccionamos «Environment variables» y editamos para añadir algunas que nos harán falta:


Nosotros pondremos como mínimo estas dos variables. Podéis consultar las otras opciones en la documentación:
Key | Value |
BASE_URL | URL de acceso remoto a Home Assistant (sin barra final /) |
DEBUG | True |
NOT_VERIFY_SSL | True |

Una vez hemos terminado de introducir las variables, pulsaremos «Save».
Importante: En esta página tendremos por fin el código ARN de la función lambda (su identificador) que nos faltó en un paso anterior al crear la Skill desde la consola de desarrollo (developer console):

Como hemos comentado este identifiacador ARN tendremos que ponerlo en el campo «Default endpoint» de la consola de desarrollo, y ya podremos dar a Save:

Pruebas de la función Lambda
En la sección anterior hemos terminado de crear la función Lambda, y como dijimos al principio, esa función se encargará de hacer de conexión entre Alexa y nuestro Home Assistant, así que ahora toca enlazar lo que queda en nuestro conocido fichero configuration.yaml y ver si todo funciona correctamente desde la consola AWS.
En nuestro sistema Home Assistant, en el fichero de configuración configuration.yaml añadiremos el siguiente código por ahora y resetaremos desde Configuration > Server Controls
alexa:
smart_home:
filter:
include_entities:
- media_player.tv_salon
En versiones mas recientes ya no sera necesario resetear para coger la nueva configuracion. Bastara con entrar en el menu Ajustes>Sistema y seleccionar el icono de apagar/encender:

Antes de realizar la prueba, deberemos crear en Home Assistant un Token de vida larga (10 años) de la siguiente manera:
Desde Home Assistant, en la prte inferior del menú lateral tendremos nuestro perfil, y dentro del mismo buscaremos al final la opción «Long-Lived Access Tokens» para crear uno nuevo:

Le daremos un nombre (en el ejemplo hemos puesto «Alexa_token»), y nos mostrará una serie larga de caracteres que deberemos copiar en ese momento, pues por seguridad no hay forma de visualizar de nuevo:

Ahora ya tendremos el Token creado en Home Assistant:

Ahora tendremos que introducir clave «LONG_LIVED_ACCESS_TOKEN» y su valor (la cadena larga de caracteres que hemos copiado) como variable de entorno en la consola AWS. Recordad: En nuestra función Lambda, en Configuration, Environment variabes y Edit:

Y como hemos comentado añadimos como nombre de la variable (key) el string «LONG_LIVED_ACCESS_TOKEN» y en el valor la cadena de caracteres (token) generado en Home Assistant:

Desde la consola de AWS, en la pestaña Test podemos dejar el template de pruebas hello-world, le damos un nombre al evento (en nuestro caso le hemos llamado «prueba»), copiaremos el request que viene en la documentación y que reproducimos aquí, y probamos con el botón Test:
{
"directive": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover",
"payloadVersion": "3",
"messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
},
"payload": {
"scope": {
"type": "BearerToken"
}
}
}
}

Si todo ha ido bien, veremos en la parte superior «Execution result: succeeded» y desplegando esa sección nos aparecerán todas las entidades de nuestro Home Assistant.
Enlazar la cuenta de Amazon con Home Assistant
Nuestra Skill recien creada ya nos aparece en la aplicación Alexa en nuestro móvil ( en mis skills de hogar inteligente), pero la manera que tenemos de exponer dispositivos y aceptar solo peticiones legítimas es que Alexa ascocie nuestra cuenta de Amazon con nuestra cuenta de Home Assistant.
Iremos a la la consola de desarrollador (developer console), elegimos nuestra skill recien creada y accedemos al apartado ACCOUNT LINKING:


En esta pantalla deberemos introducir varios datos necesarios. Vamos a asumir que tenemos habilitado el acceso externo desde internet en la dirección https://tu_subdominio.duckdns.org:8123 y pondremos los ejemplos acorde a esto, pero no olvidad particularizar para vuestro caso:
- En el campo «Your Web Authorization URI»: https://tu_subdominio.duckdns.org:8123/auth/authorize
- En el campo «Access Token URI»: https://tu_subdominio.duckdns.org:8123/auth/token
- En el campo «Your Client ID» (Si no estás en Europa consulta la documentación): https://layla.amazon.com/
- En el campo «Your Secret» pondremos cualquier cosa porque no se chequea, pero no podemos dejarlo en blanco
- Campo «Your Authentication Scheme»: Elegimos «Credentials in request body»
- Campo «Scope»: Añadimos y tecleamos «smart_home»
Quedará todo de la siguiente manera y haremos Save:

Una vez que hemos puesto la información en Developer Console, tendremos que decirle a Alexa que vincule las cuentas.
Importante: Como nuestro móvil seguramente esté conectado a nuestra WiFi local, al intentar logear con el acceso remoto a Home Assistant, es probable que no funcione por NAT loopback (básicamente le estamos preguntando a nuestro router que salga para volver a entrar). Para solucionarlo simplemente tendremos que desconectarnos de nuestra WiFi durante estos pasos.
Desde la app de Alexa entraremos en Skills y juegos y pulsaremos en el skill creado para activarlo:

Nos preguntará por las credenciales de nuestro sistema Home Assistant, y ya podremos descubrir los dispositivos de nuestro sistema:

Posibles problemas y soluciones:
- Si durante la activación de la Skill desde Alexa os da problemas del tipo «invalid client id or redirect uri» es posible que en algún momento por algún motivo estemos asociados como US. Deberéis de traspasar la cuenta desde Amazon a vuestra región.
- Durante el paso de activar la skill desde la app de Alexa, también es posible que aparezcan otros errores. Si es así, probad a tener activado en el router el port forwarding desde 443 exterior a 8123 de nuestra LAN, y consecuentemente cambiad las URL en el paso de «account linking» de la skill a «https://tu_subdominio.duckdns.org/auth/authorize» y «https://tu_subdominio.duckdns.org/auth/token«. Una vez vinculadas las cuentas podéis de nuevo dejar 443–>443 en el router
- VENTAJAS
- Más flexibilidad
- Gratuito
- INCONVENIENTES
- Dificultad alta
- Necesarios datos bancarios
CONCLUSIONES
Hemos aprendido cómo integrar Alexa en Home Assistant de diferentes maneras, detallando los pasos y sobre todo resaltando lo bueno y lo malo de cada una.
Amazon es un gigante tecnológico y no se le escapa el negocio que hay detrás de los asistentes, por lo que cada vez veremos más skills y opciones en el ecosistema de Alexa. Eso no quiere decir que tengamos que renunciar a la opción independiente de Home Assistant donde se pone el foco en la privacidad, el código abierto y la seguridad.
Juguemos con lo mejor de cada mundo y veremos si en un futuro cercano Amazon abraza a Home Assistant.
Si te ha gustado este post, aquí tienes otros que te pueden interesar:
- ¿Te imaginas a un extraño controlando tu hogar? Descubre cómo protegerte con estos consejos de seguridad para el hogar conectado.
- Instala MariaDB en un equipo independiente de Home Assistant y disfruta de sus ventajas.
- AQARA: El mayor catálogo de dispositivos inteligentes de Xiaomi.
- Estas marcas y modelos han demostrado fiabilidad y precisión . Por eso son los mejores. Te mostramos opciones para todos los bolsillos.
- IFTTT con Home Assistant. Guarda datos en Google Drive
Muchisimas gracias. Un aporte buenisimo e instrucciones detalladas. He integrado los dispositivos que tengo en local de HA en Alexa con el metodo de crear la Skill y todo funciona a la perfeccion.
Gracias
Estupendo. Aunque el post es largo, la idea era esa: Exponer cada paso para llegar al final con Alexa funcionando sobre nuestros dispositivos de HA.
Muchas gracias por el aporte. Seguido y funcionando.
Un saludo!
Buenísimo trabajo. Gracias por el tiempo prestado y por el detalle de todos los pasos a seguir a quienes no nos movemos por el entorno AWS.
Ha funcionado a la perfección.
Me ha surgido un problema y he hecho lo de cambiar la redirección del puerto y ha funcionado enseguida.
Una cuestión: He vuelto a poner el puerto 443 como estaba antes y el test en AWS no me ha funcionado. He puesto las URL de ACCOUNT LINKING como al inicio y también me da error el test. y ahi estoy, con el error.
Otra cuestión: ¿Para cada dispositivo que queramos «enlazar» con alexa, hay que hacer todos los pasos de nuevo? Es algo que no me queda muy claro.
Hola Jose, es muy probable que en tu caso la redirección sea necesaria. Tiene sentido, pues el puerto estándar para SSL es el 443, y es por tanto el que se usa cuando poner https. La redirección simplemente llama internamente (en tu LAN) con otro puerto que no es el estándar, pero en el que has configurado Home Assistant (usualmente el 8123).
Por otra parte no hará falta repetir todo para nuevos dispositivos. Simplemente al tenerlos expuestos en Home Assistant deberían incluirse en Alexa.
Es una integración complicada y todavía no hay un método sencillo y gratis. Seguramente todo cambie con el nuevo protocolo Matter que permitirá utilizar directamente dispositivos de un ecosistema en otro.
Excelente post. He realizado la integración creando la skill y puedo controlar perfectamente los dispositivos de Home Assistant desde Alexa. Sin embargo no puedo activar las rutinas de Alexa desde eventos de dispositivos procedentes de Home Assistant. Por ejemplo, si quiero que Alexa ejecute una acción cuando se active un sensor de puerta Tuya, puedo hacerlo si integro Tuya directamente en Alexa, pero no si lo hago a través de H.A. Creo que hay algo en la configuración que no permite la transmisión de eventos desde H.A. a Alexa. ¿Alguna idea? Gracias por todo.
Hola, todo perfecto hasta que abro la app de Alexa, cuando accedo a la web de HA (por supuesto desconectando de la red wifi y usando datos) pongo el user y la contraseña, y despues me sale :
no ha sido posible vincular a home assistant en este momento y tw deja un link a una pagina que ya no existe
Hola José,
Indica por favor con cuál de los métodos tienes el problema y en qué pasó exactamente. Quizás algún otro usuario o nosotros podamos ayudarte.
Un saludo y felices fiestas.
Hola, gracias por contestar pues el problema es cuando desde la app de Alexa pincho el Skill de desarroyador, y luego abro Home Assistant, meto el usuario y el password y me sale :
No ha sido posible vincular a home assistant en este momento y pone un link a una pagina que ya no existe.
Un saludo y Felices Fiestas.
Hola de nuevo Jose,
Doy por sentado que tienes acceso a Home Assistant desde el exterior (sin wifi) en una dirección del tipo «https://tu_subdominio.duckdns.org:8123″ (particulariza para tu dominio o por si tienes un puerto distinto al 8123).
También doy por realizado el paso de crear un Token de vida larga en Home Assistat.
Prueba a activar en el router el port forwarding desde 443 exterior a 8123 de nuestra LAN, y cambia las URL en el paso de «account linking» de la skill a «https://tu_subdominio.duckdns.org/auth/authorize» y «https://tu_subdominio.duckdns.org/auth/token«. Una vez vinculadas las cuentas puedes de nuevo dejar 443–>443 en el router.
Estos son los fallos más usuales, pues el paso en el que no avanzas es el de vinculación de la cuenta de Alexa con la de Home Assistant.
De todas formas, aunque es una guia larga, revisa cada paso en detalle, pues el resto de usuarios y a nosotros mismos no nos saltó ese problema.
Un saludo
Hola, pues los puertos estan abiertos, he intentado quitando el puerto 8123 y poniendolo, leido la guia varias veces, y es al final, cuando te sale el acceso a HA. Te dejo unas capturas que las veas.
https://ibb.co/DVntKKh
https://ibb.co/86KTKbV
Y en HA me pone: Intento de inicio de sesión o solicitud con autenticación no válida
Creo que tiene que ver con algo del acceso, he intentado entrar con https/misdatos.duckdns.org:8123, pero he metido la contraseña de forma errónea (a propósito) y me sale el mismo error.
A ver si a alguien le ha pasado esto. Me funciona todo bien excepto la prueba lambda, que no me devuelve los dispositivos. En la aplicación de Alexa me vincula la cuenta, pero igualmente no me devuelve nada. He puesto la configuración básica en home assistant:
alexa:
smart_home:
Accedo perfectamente a la URL desde el exterior, tengo instalado ngix.
El tema es que he tenido esta integracion funcionando mucho tiempo, he cambiado el equipamiento y ahora ya no consigo hacerla funcionar, he re-hecho todo desde el principio por si me faltaba algun token antiguo y nada. La prueba de labda no da un error como tal, pero devuelve esto:
{
«event»: {
«header»: {
«namespace»: «Alexa»,
«name»: «ErrorResponse»,
«messageId»: «e685f0ef-ea24-45ba-80ee-9d03f46e98e1»,
«payloadVersion»: «3»
},
«payload»: {
«type»: «INTERNAL_ERROR»,
«message»: «Unknown error»
}
}
}
Y en los registros del lambda no encuentro nada adicional que pueda ayudarme