Integrate gratis Amazon Echo (Alexa) con Home Assistant (a través de haaska e AWS)

11 minutos de lectura
Propósitos de la guía:
Conceptos tratados con:
  • Configuración de software
Componentes de software utilizados:
Requisitos previos:
  • Home Assistant configurado y funcionando (versión mínima de 0.62)
  • Home Assistant remoto a través de HTTPS (explicado más adelante)
  • Amazon Echo / Alexa cuenta configurada y en funcionamiento y relacionada Amazon conectado a ella
  • Una cuenta personal Amazon
Dispositivos físicos utilizados:
  • La computadora en la que se está ejecutando Home Assistant
  • Smartphone en el que ejecutar elapp "Amazon Alexa "(Android y / o iOS)
  • Amazon Echo (cualquier modelo o modelo de altavoz inteligente que monte Amazon Alexa como software integrado)
GUÍA más indicada para:

Todos los ambientes

Notas y descargo de responsabilidad
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • cualquier cambio implementado en proantes es un proresponsabilidad personal, así como un proprimer riesgo y peligro (esta guía es solo para fines educativos);
  • cualquier cambio implementado en proantes de que un dispositivo anule la garantía.
Revisión de manejo: +1.7

Home Assistant Amazon-Echo-Plus

Abstract

La llegada al mercado de Altavoz inteligente está cambiando lentamente los hábitos de muchos que, todos los díasnamente, se vuelven familiares y familiares con la posibilidad de interactuar con un e real proprimer asistente personal simplemente usando la voz y el lenguaje natural.

Amazon Echo es uno de los device de éxito más amplio y más reconocido. Como explicamos, este altavoz inteligente utiliza el software para funcionar Alexa, que está disponible, incluso para altavoces inteligentes proproducido por terceros, así como cómo appComunicación independiente para teléfonos inteligentes / tabletas con Android e iOS.

Cualquier altavoz inteligente que uses Amazon Alexa se puede integrar fácilmente con Home Assistant.
Pero por qué, ya que muchos componentes domóticos declaran compatibilità con Amazon Eco - y por lo tanto puede ser controlado "de fábrica" ​​por dicho altavoz inteligente - es útil integrarlos con este último Home Assistant? [Antes de responder la preguntaquien lee tener claro El concepto de integración en domótica.]

semplice: por qué a través de un HUB personal como Home Assistant podemos definir escenarios, accesorios virtuales, automatizaciones de lo contrario no se puede definir con el uso por separado de los componentes individuales. Como se explica también en un episodio de nuestro podcast, escenarios como "buenas noches"(Que tal vez cuando se evoca apague todas las luces, el televisor y active elalarma perimétrico) simplemente no se pueden realizar sin la ayuda de una plataforma común o un Hub personal.

En el momento en que se integra así HUB personal (por lo tanto Home Assistant en el caso específico de esta guía) con Amazon eco, puede verificar todos los componentes y el entidad - qué escenarios (y otros) - definidos en él a través de mi asistente personal. Una de las muchas razones para adoptar un HUB personal para el proPrimera domótica. Un enfoque sobre este importante tema está disponible aquí.

Los elementos (definidos domini) definido en la configuración Home Assistant y controlable a través de la integración con Amazon Alexa (Amazon Eco y altavoces compatibles) son:

  • alerta (avisos de alarma)
  • automatización (automatización) - encendido / apagado
  • (aires acondicionados y termostatos) - ajuste de temperatura objetivo.
  • cubierta (oscuro)
  • ventilador (ventiladores) - encendido / apagado
  • Grupo (grupos)
  • entrada booleana (entrada booleana)
  • ligero (luces)
  • bloquear (cerraduras) - apertura y cierre
  • media_player (riproreproductores multimedia) - riproducción, pausa, parada, ajuste de volumen, ajuste de volumen, seguimiento hacia adelante / atrás
  • escena
  • guión - activación / activación solamente
  • sensor (Sensores)
  • cambiar (interruptores)
N.b. Integrar Amazon Alexa con Home Assistant hay dos caminos:

Esta guía le muestra cómo aprovechar la segunda oportunidad, el libre.

Finalmente, es bueno saber que Alexa puede integrarse a Home Assistant también como reproproductor multimedia y como sistema de notificación por voz, o "hacerlo hablar" automáticamente cuando surgen ciertas condiciones en la automatización del hogar.

se inicia

Requisitos previos

Como se muestra arriba, los requisitos previos principales son dos:

  • versión de Home Assistant mayor o igual que 0.62;
  • Home Assistant configurado para control remoto a través de HTTPS.

El segundo punto es que el proinstancia Home Assistant es accesible remotamente y por proHTTPS tocol. En caso de que estés usando Home Assistant instalado en Raspberry (instalación manual o HASSBIAN) está disponible una guía detallada para procedimento.

También hay requisitos previos para el corolario.

REQUISITOS PREVIOS SOBRE LA BASE DE INSTALACIÓN HOME ASSISTANT
USUARIOS RASPBIANOS (o Linux)Usuarios que usan Home Assistant instalado en Raspbian (también modelado HASSBIAN) tienen la única necesidad de appinstar a poder conectarse al sistema de archivos Raspbian a través de SFTP (usando Filezilla u otras herramientas) para recuperar un archivo que será generado por Raspbian.
USUARIOS HASSIOUsuarios que usan HASSIO necesariamente deben haber instalado SSH o Servidor Samba (HASSIO Add-on) para recuperar un archivo que será generado por HASSIO mismo.
USUARIOS Windows Usuarios que usan Home Assistant instalado en Windows - Además de los consejos para cambiar el entorno operativo en el que ejecutarlo - es necesario tener una computadora con sistema operativo RaspbianmacOS/ Linux, necesario para generar el archivo esperado en uno de los siguientes pasos.
USUARIOS MACUsuarios que usan Home Assistant instalado en Mac necesario appinstamos a que, a través de "Terminal", estén disponibles los siguientes comandos:

  • apt-get
  • wget
  • hacer

Si no están presentes, instálelos. Alternativamente, use una computadora Linux / Raspbian, necesaria para generar el archivo esperado en uno de los siguientes pasos.

Finalmente, es (obviamente) necesario que su Home Assistant no es operacional integración pagada a través de Nabu Casa.
Si es necesario, desactívelo primero para comenzar con la ejecución de esta guía.

Activa API y Alexa

En primer lugar, es necesario indicar a Home Assistant para activar el componente "API" y el componente "Alexa".
La configuración del archivo configuration.yaml es trivial:

api:
alexa:
  smart_home:

reanudar Home Assistant.
NB Observe cómo estos son dos bloques distintos. El primero activa el componente "Fármacos activos"El segundo"Alexa".

En este punto, Home Assistant exhibirá proprimer API en

https://il_tuo_dominio:porta/api/alexa/smart_home

Dirección que será utilizada por la integración para interactuar con la nube AWS con nuestra instancia de Home Assistant.
La dirección a la que vamos a exponer AWS será solo la primera parte, es decir:

https://il_tuo_dominio:porta/api

TOKEN creación larga vida

En este punto es necesario crear un "TOKEN larga vida", O una clave válida por años 10.
Para hacer esto, desde una interfaz Home Assistant Haga clic en el círculo de color que contiene la primera letra de su usuario.name ubicado en la esquina superior izquierda, en la columna izquierda.

Una vez que haya accedido a la página, despegue la parte inferior hasta que la encuentre el siguiente cuadro:

Home Assistant - Ficha de acceso de larga duración

Haga clic ahora en "CREAR TOKEN"Y, a solicitud del nombre del token que se creará, ingrese"haaska".
En este punto, ahorrar la cuerda que vendrá prodesarrollado por Home Assistant.

Crear el paquete para AWS

En este punto, es necesario generar un paquete que contenga "haaska"Preconfigurado con TOKEN appena creado (y su URL de conexión a Home Assistant).

Este archivo puede ser generado:

PARA LOS QUE TIENEN RASPBIANO / LINUX /MAC

desde la Terminal, ejecute:

sudo apt-get install python3 python3-venv python3-pip zip unzip -y
cd ~
mkdir temp
cd temp
sudo wget https://github.com/mike-grant/haaska/archive/master.zip
unzip master.zip

En caso de error en comando wget y / o descomprimir, ejecuta:

sudo apt-get update
sudo apt-get install zip wget -y

y luego vuelva a ejecutar el wget.
entonces:

cd haaska-master/config
sudo cp config.json.sample config.json
sudo nano config.json

En este punto, se enfrentará a una configuración de este tipo:

{
  "url": "http://localhost:8123/api",
  "bearer_token": "",
  "debug": false,
  "ssl_verify": true,
  "ssl_client": []
}

En este punto, tenga cuidado de cambiar la configuración ingresando:

NB Observe cómo cambia la dirección de "http" a "https".

Guardar y salir (CTRL + X, Y, ingresar).
Por último:

cd ..
make

En este punto se realizará uno procedura automática que generará un archivo llamado haaska.zip. Recupérelo a través de Filezilla (use SFTP) conectándolo a la Raspberry IP.

USUARIOS HASSIO

Stessa proprocedimiento anterior, pero usando los siguientes comandos alternativos para ingresar a través de Terminal SSH (el servicio debe estar instalado cómo add-on HASSIO):

mkdir temp
cd temp/
apk add make
apk add zip
apk add wget
apk add nano
apk add py-pip
wget https://github.com/mike-grant/haaska/archive/master.zip
unzip master.zip
cd haaska-master/config/
cp config.json.sample config.json
nano config.json

en este punto realice los cambios de configuración explicados anteriormente, luego concluya con:

cd ..
make
cd /
cp ~/temp/haaska-master/haaska.zip /share

Finalmente, recupere el archivo usando "Configurador"(El archivo estará en la carpeta"share").

Amazon Consola de desarrollador

En este punto, es necesario registrarse (si aún no lo ha hecho) en el "Amazon Consola de desarrollador", Un sitio satelital para el clásico Amazon.com / .it en el que ya debe estar registrado previamente.

Ir por lo tanto a https://developer.amazon.com/home.html y usa el proprimer usuarioname/ contraseña (de Amazon.com / .it) para entrar. Luego haga clic en "Iniciar sesión con Amazon"

Amazon Consola de desarrollador: inicie sesión con AmazonIel sitio le pedirá (si no se ha hecho previamente) que configure el servicio "Iniciar sesión con Amazon", Que le permite utilizar el prousuario de prianame/ contraseña de Amazon.com / .it (entre otras cosas ya utilizadas para configurar el proprimer entorno Alexa) en todos los sitios satelitales como, por ejemplo,appungido "Amazon Consola de desarrollador":

Amazon Consola de desarrollador: inicie sesión con Amazon

Una vez que tenga acceso, haga clic en "Crear nuevo prohilo de seguridad".
En los campos obligatorios, ingrese:

  • Nombre de prohilo de seguridad"HASSIO";
  • Descripción de la prohilo de seguridad"HASSIO";
  • URL de consentimiento de privacidad: lo que se cree, es indiferente, ya que la Habilidad que prepararemos no será pública sino privada:

Amazon Consola de desarrollador: nueva prohilo de seguridad

Haga clic en "Ahorrar".
En el finestEso se abrirá. Haga clic en la rueda en la parte inferior derecha y seleccione "Configuraciones web":

Amazon Consola de desarrollador: configuración web Prohilo de seguridad

La siguiente página contiene las coordenadas de proprio prohilo de seguridad:

Amazon Consola de desarrollador: configuración web Prohilo de seguridad - Detalles

Deja el fi abiertonestra y seguir adelante.

Consola de desarrollador Alexa

Ponga a un lado la página anterior, abra una nueva pestaña / página y conéctese a la dirección https://developer.amazon.com/alexa/console/ask luego usando el proprimer uso Amazon.com / .it para autenticar. El propósito es ir y definir una habilidad ad-hoc para nuestro medio ambiente

En este punto, la página principal de la "abrióConsola de desarrollador", Haz clic en"Crear habilidad":

Amazon Consola de desarrollador - Crear habilidad

En la siguiente página indique el nombre de la habilidad ("Haaska" - o lo que prefieras) y "Smart Home"Me gusta tipología:

Amazon Consola de desarrollador: nueva habilidad

En la página siguiente, deje "seleccionado"v3". Tome nota de la cadena debajo del encabezado "Tu ID de habilidad"(Servirá más tarde).
Amazon Consola de desarrollador - Nueva habilidad - Versión de carga útil e ID de habilidad

También deja este fi abiertonestra y seguir adelante.

Amazon Servicios web (AWS)

Ahora necesitas definir un recurso lambda en AWS.

Abrir una nueva pestaña / fineste inicie sesión (creando una cuenta, si no tiene una) en la dirección https://console.aws.amazon.com/console/home.

NB La posible creación de una nueva cuenta requiere la entrada obligatoria de una tarjeta de crédito válido, a lo que sin embargo no se le cobrará ningún costo (el cargo del dólar 1 posterior a la inserción es ficticio; es necesario AWS solo para verificar la validez de la tarjeta en sí). La configuración dictada por esta guía no incluye ningún gasto, a menos que los cambios posteriores en los términos de uso de AWS cuya lectura y aceptación es responsabilidad del usuario que se suscribe al servicio.

Además, está claro que si el usuario implementa posteriormente otras características que absorben los recursos pagados AWS, esta tarjeta se usará para débitos. Si desea mantener la calma, use una tarjeta recargable.

AWS Amazon Servicios web - Acceso

AMI

Una vez autenticado, haga clic en "Servicios"(Arriba) y seleccione el elemento"AMI"Abajo"Seguridad, identidad y cumplimiento". Luego, a la izquierda, haga clic en "Roles"Y finalmente"Crear rol".

AWS Amazon Servicios web - IAM

En la página que se abre, seleccione "AWS Servicio"Y"lambda":

AWS Amazon Servicios web - IAM - Nueva función

A continuación, haga clic en "Siguiente: Autorizaciones".
En la página siguiente, busque en el cuadro de búsqueda "administrador de base de datos"; una vez encontrado, seleccione el elemento y finalmente haga clic en "Siguiente: etiqueta":

AWS Amazon Servicios web - IAM - Nueva función - 2

En la siguiente página, ingrese "lambda_basic_execution"En la cabeza"Nombre de rol"; finalmente haga clic a continuación "Crear rol":

AWS Amazon Servicios web - IAM - Nueva función - 3

LAMBDA

Haga clic en el elemento "Servicios"(Arriba) y seleccione el elemento"lambda"Abajo"calcular".

ATENCION: Recibiendo un mensaje típico en respuesta "¡El registro de su servicio está casi completo! Gracias por registrarte con Amazon Servicios web. Sus servicios pueden tardar hasta 24 horas en activarse por completo ...", Se da la causa (9 en 10) por no haber entrado Una tarjeta de crédito válida en el momento de la creación de la cuenta.

Arriba a la derecha seleccione "UE - Irlanda"(atención para no olvidar este paso):

AWS Amazon Servicios web - Lambda

Haga clic ahora en el botón naranja "Crear una función".
Los campos se deben completar de la siguiente manera:

  • Crea desde cero;
  • Nombre: "Haaska";
  • Runtime: "Python 3.6";
  • Papel: "Seleccionar un rol existente";
  • Rol existente: "Lambda_basic_execution "

AWS Amazon Servicios web - Lambda - Nueva función

Hecho esto, haga clic en "Crear función", Abajo a la derecha.

En la nueva página, baja hasta la mitad y busca el cuadro "Código de función". Haz clic en el menú desplegable "Tipo de entrada de código"Y seleccionar"Subir un archivo .zip":

AWS Amazon Servicios web - Lambda - Subir archivo

Las voces "Runtime"Y"gerente"Debe establecerse respectivamente en"3.6 Python"Y"haaska.event_handler". Si no están configurados, corríjalos como se indica.

En este punto, haga clic en el ícono rappmostrando una flecha apuntando hacia arriba / prover enviar a AWS el archivo .zip del paquete proaprendido en procedure inicial.

Después de eso, baja aún más y encuentra la caja "Rol de ejecución", Que debe establecerse de la siguiente manera:

AWS Amazon Servicios web - Lambda - Rol de ejecución

Ahora regrese a la página, al cuadro "Diseñador"Y seleccione el elemento"Alexa Smart Home":

AWS Amazon Servicios web - Lambda - Diseñador

NB si el artículo "Alexa Smart Home" está ausente es porque anteriormente el prohilo aUE (Irlanda)".

Bájate y encuentra la caja "Desencadenar".
En el campo editable ingrese el "ID de habilidad" previamente obtenido (por ejemplo, "amzn1.ask.skill.2e4e ....")

AWS Amazon Servicios web - Lambda - Activador

Luego haga clic en el "Añadir".
Finalmente, vaya a la parte superior de la página y presione el botón naranja "Ahorrar".

Inmediatamente encima del botón "Ahorrar"Hay una cadena definida"arn": Escríbelo.

También deja este fi abiertonestra y seguir adelante.

Habilidad completada

Volver a la resumen de habilidades e insertar en el campo "Punto final predeterminado"El valor del campo"arnCopiado en el punto anterior.
Seleccione la casilla de verificación a continuaciónEuropa, India"(atención para no olvidar este pasaje). Aquí también copia lo mismo "arn".

En la esquina superior derecha de la página, haga clic en "AHORRE".

Ahora haga clic en la entrada en la columna izquierdaENLACE DE CUENTA".
En la página que se abre, ingrese los siguientes valores:

  • Autorización URI: "Https://www.amazon.com/ap/oa"
  • URI de token de acceso: "Https://api.amazon.com/auth/o2/token"
  • ID de cliente: el valor del ID de CLIENTE obtenido de página de recapitulación del proprio prohilo de seguridad;
  • Secreto del cliente: el valor SECRETO DEL CLIENTE obtenido de la página de resumen del proprio prohilo de seguridad;
  • Esquema de autenticación del cliente: HTTP BASIC (Recomendado);
  • Haga clic en "+ Agregar alcance"Y insertar"pro"Archivos.

En la esquina superior derecha de la página, haga clic en "AHORRE".

También deja este fi abiertonestra: pronto necesitaremos el "Redirigir URL" appquemado al final de esta página.

Volver a la página de recapitulación del proprio prohilo de seguridad, haga clic en "Modificación"E inserte, debajo de"URL de retorno permitidas", todo y try las URL obtenidas en el paso anterior.

Una vez completado, haga clic en "Ahorrar".

EXAMEN:

Regrese a la página de definición de "lambda"Y haga clic en"Selección de eventos de prueba."Y luego"Configurar eventos de prueba".
Se abrirá un finestsimilar a esto:

AWS Amazon Servicios web - Lambda - PRUEBA

En el campo "Nombre del evento"Insertar"Prueba".
Luego elimine todas las líneas de prueba y reemplácelas con el siguiente texto:

{
  "directive": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover",
      "payloadVersion": "3",
      "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "payload": {
      "scope": {
        "type": "BearerToken",
        "token": "access-token-from-skill"
      }
    }
  }
}

Finalmente haga clic en "Ahorrar".

En este punto ejecuta el "Prueba"Al hacer clic en el botón"Ejecutar pruebas": La respuesta debería ser positivo. De manera diferente, verifique todos los pasos implementados hasta ahora.

Definición de dominios

Antes de concluir la integración, es una buena regla especificar de antemano en la configuracion Home Assistant ¿Cuáles son los dominios que deben estar disponibles para Amazon Echo / Alexa, entonces qué accesorios, escenas, entidad etcétera

La lista de dominios exportables es la siguiente:

  • alerta (avisos de alarma)
  • automatización (automatización) - encendido / apagado
  • (aires acondicionados y termostatos) - ajuste de temperatura objetivo.
  • cubierta (oscuro)
  • ventilador (ventiladores) - encendido / apagado
  • Grupo (gruppi)
  • entrada booleana (entrada booleana)
  • ligero (luces)
  • bloquear (cerraduras) - apertura y cierre
  • media_player (riproreproductores multimedia) - riproducción, pausa, parada, ajuste de volumen, ajuste de volumen, seguimiento hacia adelante / atrás
  • escena
  • guión - activación / activación solamente
  • sensor (Sensores)
  • cambiar (interruptores)

Luego agrega un bloque similar a lo que sigue la configuración Home Assistant:

alexa:
  smart_home:
    filter:
      include_entities:
        - light.cucina
        - light.camera
      include_domains:
        - switch
      exclude_entities:
        - switch.terrazzo
      exclude_domains:
        - lock
    entity_config:
      light.cucina:
        name: Nome personalizzato per Alexa
        description: La luce della cucina
      switch.scale:
        display_categories: LIGHT

En este ejemplo, bloque estan incluidos en el dominio Amazon Alexa las características de encender luces de cocina y dormitorio, están incluidos todos los interruptores, excepto que de la terraza. El dominio "bloqueo" (bloqueos) está excluido en su totalidad.
Además, el comportamiento / nombre fue personalizado de luz de cocina y el interruptor de las escaleras.

El campo display_categories se puede personalizar según las categorías disponible dentro de Alexa.

Añade la habilidad a Alexa

Aqui estamos: ahora es posible agregar la habilidad appena creado al proprio proHilo de Alexa.

Dado que de facto hemos creado un ad hoc de habilidad (privado), solo abra elapp (Móvil o web) Alexa, navega por la sección "Tus habilidades"Bajo el encabezado"Habilidad". Una vez encontrado el prohabilidad para el primer autoproaprendido (llamado "haaska", O de forma diferente cómo elegiste llamarlo), selecciónalo y haz clic en"Permitir". L 'app pedirá asociar una cuenta: usa el de Amazon.com / .it.

Al final de la procedura, realiza una búsqueda completa del dispositivo. Este nuevo proprocedimiento provvederà para llevar a cabo el descubrimiento automático cualquier entidad presentar en Home Assistant y expuesto a Alexa basado en la configuración del párrafo anterior.

En caso de no personalización, Alexa encontrará todas las entidades (no recomendado).

Esto termino procedura, Alexa estará completamente integrada en Home Assistant.

Esta entrada es 1 minuto.


Home Assistant Logo oficialATTENZIONE: recuerda que hay en nuestra comunidad FORO una sección ad hoc dedicada a Home Assistant, para cualquier duda, pregunta, información en el mérito específico de estos componentes.


Por favor comente abajo

"Hacer que la gente hable" Amazon Alexa como un sistema de notificación de automatización del hogar en Home Assistant