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:
-
16A EU Plug WIFI Smart Socket With Power Monitor Timing Smart Home Power Socket Vesync APP Smart Life With Alexa Google Home
€ 27.16 Oferta -
Kedia UK WiFi Smart Socket 16/20A 90-250V Smart Plug Power Outlet Home Appliance Alexa Google Home Voice Control Tuya Smart Life
€ 10.99 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 -
16A Tuya WiFi Smart Switch 2-way Control with Energy Monitor Switch Mini Smart Breaker Smart Life Control Alexa Via Google Home
€ 29.60 Oferta -
Tuya 16A WiFi AUS Smart Socket With Power Monitor Tuya Smart Home Life APP Smart Plug Timed Voice Control Alexa Google Home
€ 44.89 Oferta -
LoraTap Tuya Smart Life WiFi Curtains Blinds Switch Roller Shutters Motor Switch Backlight Style Google Home Alexa Voice Control
€ 5.09 Oferta -
Voice Control Quick Fast Charger Timing App Electrical Smart Life For Home Alexa 2 In 1 10a Universal Socket Tuya Smart
€ 159.03 Oferta -
Tuya 16A Smart WiFi Plug Waterproof Remote Voice Control APP Power Monitor Socket Timing Function Work With Alexa Google home
€ 48.18 Oferta -
Smart Plug WiFi Socket EU 16A/20A With Power Monitor Timing Function Tuya Smart Life APP Control Works With Alexa Google Home
€ 5.63 Oferta -
Smart Socket Outlet 2 4GHz WiFi App Control Compatible with Smart Speaker Assistant for Alexa for Google for Home
€ 4.84 Oferta -
Tuya Smart Home Wifi Thermostat RF433 Wireless Floor Heater Water Gas Boiler Smart Life Temperature Controller Alexa Google
€ 33.35 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 -
AXUS 16A 20A WiFi Tuya Smart Plug Outlet For Smart Life APP Alexa Google Home Smart Home Voice Timer Power Monitor
€ 10.18 Oferta -
Tuya ZigBee Brazil Smart Plug 16A Socket Live Metering Mobile Phone Voice Remote Control Smart Socket Works With Alexa Google
€ 12.20 Oferta -
Tuya Multi Mode ZigBee Bluetooth Gateway Hub Wireless Smart Home Appliances Remote Controller Bridge Support Alexa Google Home
€ 11.33 Oferta -
ZigBee 3.0 Thermostat Tuya Radiator Actuator Valve Smart Programmable TRV Temperature Controller Alexa Google Home Voice Control
€ 23.07 Oferta -
Zemismart Tuya Zigbee Smart Brazil Socket and Zigbee Light Switch 1/2/3/4/6 Gangs Alexa Google Home Voice Control 10A Tomada
€ 29.33 Oferta -
Brazilian Tomada USB Socket Tuya Smartlife App Control Work With Alexa Google Home Assistant
€ 11.81 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.
-
Controlador WiFi Switch 220V, Alexa / Google Home
€ 11.95 Oferta -
Tiras LED 10m, WiFi ,12V Tira Luces LED RGB Inteligente con Control App, Funciona con Alexa y Google Asistente, Modo Música para Habitación ( no
€ 23.48 Oferta -
Etc-shop – 4x rgb led Smart Home Lámparas de pie para exteriores Acero inoxidable Alexa Google App Luces de cambio de color dimmable
€ 178.14 Oferta -
Control Remoto Inteligente 360º ir Blaster de Qnect WiFi, 38Khz ir, Compatible con Alexa y Google Home, Convierte tu hogar en un Espacio Inteligente
€ 33.12 Oferta -
Hengda Interruptor de interruptor WiFi 4x Wifi Wifi Switch para Amazon Alexa Smart App Control Control de control Módulo de voz SwiFi Wifi – Weiß
€ 36.99 Oferta -
9 W inteligente Downlight LED, 2 Pack Luces para Alexa de 780 LM Wi-Fi, Focos LED empotrada compatible con Alexa y Google Home, Regulable de luz
€ 22.99 Oferta -
Asupermall – Controlador de temperatura inteligente Tuya Wifi Control de aplicación de teléfono móvil Compatible con Alexa Google Home para controles
€ 45.27 Oferta -
Sensor Puerta/ventana Wifi Tuya Google Alexa Isw001 Supisw001 – Superior
€ 18.51 Oferta -
Qnect – Cámara de vigilancia Interior 1080P, Sensor de Movimiento y Motion Tracking, conexión WiFi, visión Nocturna, Compatible con Alexa y Google
€ 56.26 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.
- PON A ALEXA EN TU MESITA DE NOCHE: Disfruta del control por voz para configurar alarmas y temporizadores, poner una playlist que te ayude a relajarte, prepararte para empezar el día con una rutina que encienda tus luces compatibles o consultar de un vistazo tu calendario o la información del tiempo.
- TAMAÑO COMPACTO, SONIDO POTENTE: Reproduce música, series, pódcast y más desde Amazon Music, Spotify, Prime Video y otros servicios de streaming y disfruta de un sonido con graves más potentes y voces más nítidas. Además, con la pantalla de 5,5", podrás ver series, visualizar los títulos de las canciones y más de un solo vistazo.
- MANTÉN TU CASA CONFORTABLE: Controla dispositivos de Hogar digital compatibles como luces y termostatos incluso cuando no estás en casa.
- VE AÚN MÁS CON LA CÁMARA INTEGRADA: Echa un vistazo a lo que pasa en casa con la cámara integrada y asegúrate de que tu familia o tus mascotas están bien. Usa las llamadas de Drop In cuando estés fuera o conecta un videotimbre compatible para ver quién hay en la entrada desde tu Echo Show 5.
- DISFRUTA DE TUS FOTOS EN PANTALLA: Cuando no estés interactuando con el dispositivo, podrás usarlo como marco de fotos digital para exponer tus fotos favoritas con Amazon Photos. Además, los miembros Prime cuentan con acceso a espacio de almacenamiento ilimitado en la nube para sus fotos.
- USA LAS VIDEOLLAMADAS PARA CONECTAR CON LOS TUYOS: 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 y envía comunicados a otros dispositivos compatibles en tu casa.
- DISEÑADO PARA PROTEGER TU PRIVACIDAD: Fabricado con múltiples capas de control de la privacidad, incluido un botón que desconecta los micrófonos y la cámara electrónicamente.
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.
-
Controlador WiFi Switch 220V, Alexa / Google Home
€ 11.95 Oferta -
Tiras LED 10m, WiFi ,12V Tira Luces LED RGB Inteligente con Control App, Funciona con Alexa y Google Asistente, Modo Música para Habitación ( no
€ 23.48 Oferta -
Etc-shop – 4x rgb led Smart Home Lámparas de pie para exteriores Acero inoxidable Alexa Google App Luces de cambio de color dimmable
€ 178.14 Oferta -
Control Remoto Inteligente 360º ir Blaster de Qnect WiFi, 38Khz ir, Compatible con Alexa y Google Home, Convierte tu hogar en un Espacio Inteligente
€ 33.12 Oferta -
Hengda Interruptor de interruptor WiFi 4x Wifi Wifi Switch para Amazon Alexa Smart App Control Control de control Módulo de voz SwiFi Wifi – Weiß
€ 36.99 Oferta -
9 W inteligente Downlight LED, 2 Pack Luces para Alexa de 780 LM Wi-Fi, Focos LED empotrada compatible con Alexa y Google Home, Regulable de luz
€ 22.99 Oferta -
Asupermall – Controlador de temperatura inteligente Tuya Wifi Control de aplicación de teléfono móvil Compatible con Alexa Google Home para controles
€ 45.27 Oferta -
Sensor Puerta/ventana Wifi Tuya Google Alexa Isw001 Supisw001 – Superior
€ 18.51 Oferta -
Qnect – Cámara de vigilancia Interior 1080P, Sensor de Movimiento y Motion Tracking, conexión WiFi, visión Nocturna, Compatible con Alexa y Google
€ 56.26 Oferta
-
16A EU Plug WIFI Smart Socket With Power Monitor Timing Smart Home Power Socket Vesync APP Smart Life With Alexa Google Home
€ 27.16 Oferta -
Kedia UK WiFi Smart Socket 16/20A 90-250V Smart Plug Power Outlet Home Appliance Alexa Google Home Voice Control Tuya Smart Life
€ 10.99 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 -
16A Tuya WiFi Smart Switch 2-way Control with Energy Monitor Switch Mini Smart Breaker Smart Life Control Alexa Via Google Home
€ 29.60 Oferta -
Tuya 16A WiFi AUS Smart Socket With Power Monitor Tuya Smart Home Life APP Smart Plug Timed Voice Control Alexa Google Home
€ 44.89 Oferta -
LoraTap Tuya Smart Life WiFi Curtains Blinds Switch Roller Shutters Motor Switch Backlight Style Google Home Alexa Voice Control
€ 5.09 Oferta -
Voice Control Quick Fast Charger Timing App Electrical Smart Life For Home Alexa 2 In 1 10a Universal Socket Tuya Smart
€ 159.03 Oferta -
Tuya 16A Smart WiFi Plug Waterproof Remote Voice Control APP Power Monitor Socket Timing Function Work With Alexa Google home
€ 48.18 Oferta -
Smart Plug WiFi Socket EU 16A/20A With Power Monitor Timing Function Tuya Smart Life APP Control Works With Alexa Google Home
€ 5.63 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:
- Philips Hue ha cambiado el panorama de la iluminación inteligente. Descubre las ventajas de su gama.
- En cualquier proyecto de bricolaje las herramientas correctas son esenciales. Vamos a deciros nuestras favoritas.
- Navidad 2023: Ideas únicas de obsequios especialmente diseñados para entusiastas de la innovación. No lo dejes para el final.
- Cómo usar el sensor Bayesian en Home Assistant.
- How to analyze energy data with Home Assistant through 3 examples
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
Buenas noches
Desarrollé una SKILL para conectar Alexa a mi Home Assistant.
Desafortunadamente mi router (DIGI ZTE H3600 V9 estoy ubicado en Madrid) bloqueó el puerto 443 por razones internas y no permite que se desbloquee. Cuando quiero vincular la cuenta, llego al nivel para poner la contraseña de Home assistant y entonces me sale el mensaje «No fue posible vincular la cuenta con Alexa. Vuelve a intentarlo más tarde»
¿Hay alguna forma de evitar este problema o necesito cambiar de proveedor internet?
La pruebe de la función LAMBDA funciona bien.
Muchas gracias