A finales de septiembre, se celebró nuestra primera reunión para desarrolladores de hardware: Yandex.Zhelezo. Este es un paso importante en el mercado de nuevos fabricantes de dispositivos para nosotros. Los participantes (alrededor de 150 personas) escucharon los informes, hablaron y pasaron mucho tiempo en las gradas, donde podían mirar dentro del automóvil no tripulado, desactivar la "bomba" cortando los cables necesarios, desmontar la estación Yandex. (Registro - 6 minutos 23 segundos), y también probar Ordenador de a bordo Yandex. Auto y hogar inteligente.



Solo sobre la plataforma de casa inteligente y habla hoy. En la primavera, lo
lanzamos para todos los desarrolladores, y en Yandex.Zhelez, el gerente de desarrollo de plataformas Marat Mavlyutov resumió los primeros resultados y mostró cómo establecer la administración de dispositivos. A partir del informe, puede conocer los términos de la API de voz, las formas de describir e interactuar con el dispositivo de un usuario.

- Hablemos de casa inteligente. ¿Cómo hacer que su casa sea un poco más inteligente para que ni un solo gato permanezca hambriento y se abran todas las puertas en Ekaterimburgo?
Comencemos desde el principio, entenderemos de qué se trata una casa inteligente. Nos parece que esta es una casa donde no es necesario buscar la salida que está oculta detrás de la cortina o el interruptor. Esta es una casa donde no necesita buscar un control remoto desde el televisor, un teléfono con una aplicación que pueda controlar su hervidor o bombilla. Esta es una casa que te entiende, en la que una persona usa la interfaz más nativa y natural para él: la voz.
¿Por qué subimos allí y qué queremos conseguir? Realmente queremos asegurarnos de que nuestro asistente de voz sea solo un asistente, para que no solo pueda encender la música o el video, sino ayudarlo en las cosas más naturales y cotidianas.
También entendemos que no podemos escribir todo el código del mundo e integrarnos con todos los dispositivos. Es por eso que queremos que esta interfaz de voz proporcione desarrolladores, empresas, personas que ya saben cómo hacer dispositivos y hacerlos geniales. Ericsson dice que para 2021 habrá 28 mil millones de dispositivos domésticos inteligentes conectados en todo el mundo. Esto significa, por un momento, que si imagina que todo el mundo está conectado a Internet, cada persona tendrá un promedio de cuatro dispositivos.

Justo antes del lanzamiento, realizamos una investigación para comprender cómo las personas usan hogares inteligentes, qué quieren ver, qué quieren administrar. Hemos elegido los tres destinos más importantes:
- control de televisores, receptores AV, dispositivos multimedia, etc.
- control de dispositivos de luz e iluminación,
- control de temperatura - aire acondicionado, termostato, batería, caldera, etc.
La siguiente diapositiva tiene estadísticas. Por ejemplo, comenzamos hace solo cuatro meses, en mayo, y ahora vemos que el número promedio de dispositivos en nuestra plataforma para cada usuario es 3.8. Miré ayer, era 3.93. Y hace dos meses, esta cifra era 3.2. Esto significa que las personas no solo usan hogares inteligentes, sino que también compran dispositivos que les gustan. Estamos orgullosos de la siguiente cifra: el 96% de los usuarios controlan su hogar inteligente usando la voz, aunque todos tienen una aplicación a través de la cual estos dispositivos inteligentes también pueden controlarse.
Y entendemos las limitaciones de la API actual, realmente todavía hay muy poco que se pueda conectar o describir. Pero los fabricantes, entusiastas o desarrolladores pudieron integrarse con nuestra plataforma, por lo que ahora vemos más de 800 modelos de dispositivos diferentes en ella. Estos son precisamente los modelos de dispositivos: todo tipo de hervidores, aires acondicionados, televisores, etc.

Repito, hemos estado en producción durante solo cuatro meses, pero empresas distribuidas tan grandes ya han podido integrarse con nuestra plataforma, y creo que este es un gran mérito del equipo. Esto sugiere que nuestra API es bastante simple, de modo que las personas pudieron integrarse con Yandex en cuatro meses.

De desarrolladores independientes y entusiastas, vemos personas escribiendo habilidades como el hogar inteligente. Por lo tanto, integran nuestra plataforma con otros sistemas: openHAB, Homebridge, Home Assistant, por ejemplo, para que los dispositivos mejorados por el ecosistema de Apple también puedan funcionar con Alice. Hay algunos casos de solicitud de nuestros socios. Pensamos que la casa inteligente de Yandex estará dirigida a aquellos entusiastas que recién comienzan a impulsar este mercado. Pero personas de industrias completamente diferentes, casi sin Yandex, vinieron a nosotros y dijeron que quieren hacer instalaciones con un hogar inteligente.
Por ejemplo, hay un caso bien conocido con el desarrollador de PIK y Rubetek. Como una de las mejores ofertas para decorar apartamentos, presentan una casa inteligente en la plataforma Yandex. En tales apartamentos, en salas de exhibición ya existentes, el usuario puede venir y pedirle a Alice que prepare café, abra las cortinas o controle la luz. También estamos trabajando con desarrolladores de oficina en este momento. Quieren, por ejemplo, incrustar a Alice en sus salas de reuniones para que puedan tocar la sala de reuniones, llamar a otra ciudad o controlar, de nuevo, algún tipo de lámparas. Y también comenzamos algunos experimentos con hoteles. Puede solicitar el desayuno en su habitación, cambiar su almohada por una más cálida o encender algún canal pago.
Pasemos ahora un poco a los detalles técnicos. El esquema de trabajar con una casa inteligente es bastante simple. Hay muchos fabricantes de dispositivos inteligentes, y todos estos dispositivos pueden controlarse a través de un teléfono móvil. Esto significa que todos estos fabricantes tienen algún tipo de API con la que el usuario hace clic en el teléfono móvil, el teléfono móvil envía algunas solicitudes a la nube, respectivamente, de este fabricante, y el dispositivo se enciende, se apaga, el brillo cambia, algunos parámetros
En consecuencia, es en esta dirección que queremos integrar. Podemos decir que el usuario no toca el teléfono, sino que habla en voz, por ejemplo. Y envíe exactamente la misma solicitud a la nube de este fabricante. Esto se llama interacción de nube a nube. En la siguiente diapositiva se describe en detalle.

Es decir, una persona controla el uso de un teléfono móvil o la voz. Otros servidores Yandex van desde la nube del fabricante correspondiente y el dispositivo se enciende.

¿Cómo se entera Yandex del dispositivo que tiene un usuario? Para hacer esto, utilizamos el procedimiento estándar. Se llama enlace de cuenta Oauth2. El usuario solo necesita ingresar a la aplicación Yandex, vincular lo que se llama cuentas. En términos generales, en los dedos, funciona así.
Cuando queremos conectar nuestra cuenta con Philips, el usuario ingresa su nombre de usuario, contraseña o nos dice un token especial, y supuestamente vamos con este token al nombre de usuario de Philips.

La segunda parte principal en la que consiste el protocolo de casa inteligente son las intenciones de voz. El primero y más importante es Discovery. Nosotros con un token de usuario vamos a la nube del fabricante correspondiente, y el fabricante nos dice: el usuario tiene dichos dispositivos. Y luego todo es simple. Consulta, Acción. Yandex viene con una solicitud de Consulta para averiguar en qué estado se encuentra el dispositivo: la plancha está apagada, encendida o qué temperatura tiene el aire acondicionado en este momento. Y Acción, esto significa que el estado actual necesita ser cambiado. La desvinculación ocurre cuando un usuario decide romper el paquete de cuentas para que Yandex se olvide por completo de todos los dispositivos que existen.

Vamos a profundizar aún más y ver cómo funcionan todos estos intentos. En primer lugar, estos son tipos de dispositivos: tipo de dispositivo. Los tipos de dispositivos solo afectan las representaciones de dispositivos en la interfaz. Estos son diseños especiales en la aplicación móvil. Además, lo más importante es probablemente que los tipos de dispositivos generalizan algún tipo de representación de voz, algunos comandos de voz. Es decir, no importa lo que el usuario llame a su lámpara, debería responder a la palabra "luz", por ejemplo. O no debería ser importante en absoluto, el usuario dice "encienda el aire acondicionado" o "condominio". Además, este aire acondicionado se puede llamar como sea.
Y segundo, para entender cómo controlar el dispositivo, necesitamos saber que este dispositivo puede. Llamamos a estas cosas capacidades. Es decir, es como un bloque de construcción, que habla sobre lo que puede hacer el dispositivo.

Un poco más sobre el tipo de dispositivo. Al principio, teníamos seis, en mi opinión. Ahora hemos crecido a tal cantidad. Por ejemplo, hace dos semanas lanzaron abribles, y los muchachos pudieron abrir sus puertas. Ahora pueden decir: "Alice, abre la puerta" y no "Alice, enciende la puerta", por ejemplo.

Ahora hablemos de las capacidades, qué capacidades están disponibles y cómo hacer que Alice entienda cómo administrar su dispositivo.
Lo primero, lo más importante y lo más simple es on_off. Casi todos los dispositivos tienen esta capacidad. Para decirle a Alice que el dispositivo puede encenderse y apagarse, simplemente agregue estas dos líneas de Jason y defina la bandera recuperable. Este indicador significa que puede averiguar desde el dispositivo actual si está encendido o no.
Un ejemplo simple con un televisor. Probablemente todos tengan un televisor en casa, y mirando el control remoto del televisor, es imposible entender si el televisor está encendido o apagado, por supuesto, si este control remoto es infrarrojo.

El siguiente tipo de capacidad que describe los artefactos de iluminación es color_setting. También tiene una bandera recuperable. Pero lo más importante, estos dos parámetros son color_model. Con este parámetro, el fabricante nos dice que sabe cómo controlar el color. Este color puede estar en modo hsv o rbg.

Y el segundo es la gradación del blanco. Es decir, se puede decir que mi bombilla puede ser de color blanco frío, amarillo cálido, etc., de modo que el usuario pueda decir: "por favor, calienta la luz".

A continuación, iremos capacidades, generalizando ciertos modos. Una muy buena analogía con la interfaz son los botones de radio, cuando necesita elegir uno de varios modos. O piense en una lavadora tipo krutilochka, donde definitivamente hay un modo de "ropa de algodón", "lavado delicado", etc.

Aquí es importante para nosotros averiguar exactamente qué instancia de este modo vale la pena. Instancia actual, ya hay seis de ellos. Pero son precisamente los que implementamos en la primera etapa, esta es una instancia del aire acondicionado: modo automático, enfriamiento, etc. O, por ejemplo, hay un modo de funcionamiento del ventilador que es el más lento, el promedio o, nuevamente, el automático.
Y con respecto al modo, podemos decir: "Activa el siguiente modo". Y es muy conveniente para aires acondicionados o para la misma lavadora.

Otra capacidad es el alcance. Aplicado a la analogía de las interfaces, este tipo de control deslizante desde el valor mínimo al máximo puede regular algo. Este control deslizante también tiene instancia. Por ejemplo, esto es temperatura, volumen, brillo, etc., casi cualquier rango que se pueda describir. Esta unidad, porque algunas personas, como resultó, para comprobar los aires acondicionados, dicen que la temperatura en Fahrenheit. Y estos, en consecuencia, son temperaturas completamente diferentes. Cuando una persona solicita su inclusión en Fahrenheit o Celsius, esto también debe entenderse.
Probablemente conozca el indicador de acceso aleatorio, es cuando podemos dar el número exacto para establecer el valor en este rango. Un ejemplo bastante simple, de nuevo, con televisores. El volumen solo se puede controlar hacia arriba y hacia abajo. Y la temperatura en los acondicionadores de aire se puede especificar con precisión.
Y la descripción misma del rango, cuando conocemos un valor mínimo, un valor máximo y el pequeño paso con el que podemos cambiar este valor. En los acondicionadores de aire, nuevamente, puede ser algún tipo de conjunto, o en fracciones de decenas.

La última capacidad es similar a la interfaz, es una especie de marca de verificación. Recuerde, en las computadoras antiguas había un modo turbo: ¿presiona y la computadora funciona más rápido? Aquí dices: "Alice, apaga el sonido", presionamos el botón de silencio y el sonido desaparece. Podemos decir, probablemente, que este es algún tipo de modo binario.
Y una combinación de todas estas capacidades, todas las habilidades. Podemos describir todo tipo de dispositivos que están actualmente en el mercado.

Por ejemplo, una bombilla inteligente. Ella sabe cómo encender, apagar. Ella sabe cómo ajustar el color y sabe cómo ajustar el brillo. Pero si todo es simple con una bombilla, intentemos juntos describir otro dispositivo. Por ejemplo, una tetera.

¿Qué crees que debería ser capaz de hacer un hervidor inteligente? Te di una pista, una captura de pantalla de la interfaz de la aplicación Yandex. ¿Cómo describirías la tetera? Temperatura Más? Sí, y enciéndelo y apágalo. El hervidor de agua es un dispositivo bastante simple. Él sabe cómo encenderlo y apagarlo, y, por ejemplo, mi té verde favorito, quiero hacerlo a 85 grados. ¿Tiene agua? Si, un buen punto. Aquí estamos esperando información del fabricante.

Me gustaría contarle sobre otros dispositivos. Uno de los dispositivos más sofisticados disponibles en este momento es el aire acondicionado. ¿Qué crees que el aire acondicionado debería poder hacer? Cálido o frío Ajusta la temperatura. Modo con cortinas. Velocidad del ventilador Todo esta correcto. Y el aire acondicionado, que ahora se puede describir en nuestra capacidad, puede hacer todo esto. Él sabe cómo encender, apagar, seleccionar el modo de enfriamiento, ajustar la temperatura y la velocidad del ventilador, con el que sopla aire frío o caliente. Puede haber aire puro en el modo sin aire acondicionado.

Vayamos aún más abajo y veamos qué tipo de respuestas esperamos de los fabricantes al describir los dispositivos. Este es el intento de descubrimiento. Aquí hay un poco de YAML, pero es bastante fácil de leer.
En el momento en que el usuario asocia las cuentas, le preguntamos al fabricante qué tiene este usuario, qué dispositivos, solo para comprender cómo administrarlos.
Primero y principal: estamos esperando el user_id de este usuario y una lista de dispositivos.

Aquí solo se describe un dispositivo: el usuario tiene una bombilla, devices.types.light. Puede ser, por cierto, no solo una bombilla. Puede ser algún tipo de cinta RGB o una cortadora de césped con luz de fondo. No nos importa en absoluto. Lo principal es que reacciona a la palabra "luz" y que en la interfaz podemos extraer la capacidad, que es responsable de la luz.

Nuestra cortadora de césped parece saber encender y apagar. Ella sabe cómo cambiar el brillo. Y ella sabe cómo ajustar el color. Y no solo el color: este accesorio de iluminación también tiene un ajuste de temperatura de color.

Supongamos que un usuario pregunta: "Alice, ¿cuál es el estado de mi bombilla ahora?" o "Alice, ¿está encendida mi luz?" Luego enviamos una pregunta al proveedor, decimos que se debe preguntar a ese dispositivo en qué modo de color está ahora y si el dispositivo está encendido.


Si el usuario quiere cambiar este modo, puede, por ejemplo, decir: "Alice, apaga la luz". Hay una bombilla con la identificación abc-123, "Por favor apáguelo", valor falso.

Estamos esperando que el fabricante del dispositivo en el otro lado de la nube nos responda: está bien, luz abc-123, action_result, estado HECHO. Entonces la luz se ha apagado.

Un poco más sobre los guiones. Entendemos que los usuarios desean no solo administrar sus dispositivos individualmente, sino también agruparlos. Por ejemplo, cuando se despiertan, dicen: "Alice, buenos días", y quieren que se realice una determinada combinación de acciones.
En consecuencia, en la aplicación Yandex, puede decirlo, y Alice encenderá algo de música, apagará la luz de la noche, la tetera comenzará a funcionar, hervirá agua para hacer su café favorito.

Sobre los planes. Entendemos que funciona en su forma actual, aunque le permite describir una gran cantidad de dispositivos, pero, por ejemplo, no le permite recibir información de los sensores. No podremos configurar ningún evento en los escenarios para que podamos entender por el sensor de fugas, humo o abrir la puerta que algo ha sucedido. Nuestro objetivo es hacerlo. También entendemos que en este momento no podemos controlar el flujo de medios. El ejemplo más simple es que un mensajero llegó a su casa con pizza caliente, y un empujón con una foto de esa persona llega a su teléfono. Esto es super! Ahora es imposible hacer esto con las capacidades actuales; lo más probable es que aparezcan capacidades que describan las cámaras.
Acerca de los sensores tocaré un tema resbaladizo: IFTTT. Con IFTTT, queremos ejecutar un script no solo en voz, como se hace ahora. Queremos ejecutarlos en diferentes eventos: en el temporizador, horarios, amanecer o atardecer y otros eventos. Y realmente queremos que la casa inteligente sea no solo para geeks que entienden por qué necesitan transferir su contraseña desde una bombilla Wi-Fi. Queremos hacerlo para que las personas que no están absolutamente conectadas con el hogar inteligente, o que no entienden cómo funciona, simplemente compren algún tipo de hervidor de agua, lavadora, bombilla, no importa. Y Alice dijo: “Parece que tienes algún tipo de dispositivo nuevo para mí en tu casa. ¿Quieres conectarlo? Y todo para trabajar de inmediato.
En conclusión, quiero decir: para usar esta tecnología, hogar inteligente, solo necesita leer la documentación y describir correctamente su dispositivo utilizando los tipos de dispositivos y las capacidades existentes. Gracias