Comment apprendre à Alice à gérer votre maison intelligente. Rapport Yandex

Fin septembre, notre première réunion pour les développeurs de matériel a eu lieu - Yandex.Zhelezo. Il s'agit pour nous d'une étape importante sur le marché des nouveaux fabricants d'appareils. Les participants (environ 150 personnes) ont écouté les rapports, parlé et passé beaucoup de temps sur les stands, où vous pouviez regarder à l'intérieur de la voiture sans pilote, désamorcer la "bombe" en coupant les fils nécessaires, démonter la Yandex.Station (enregistrement - 6 minutes 23 secondes), et également tester Ordinateur de bord Yandex.Auto et maison intelligente.





À propos de la plate-forme de maison intelligente et parlez aujourd'hui. Au printemps, nous l'avons lancé pour tous les développeurs, et sur Yandex.Zhelez, le responsable du développement de la plateforme, Marat Mavlyutov, a résumé les premiers résultats et montré comment établir la gestion des appareils. À partir du rapport, vous pouvez en apprendre davantage sur les termes de l'API vocale, les moyens de décrire et d'interagir avec l'appareil d'un utilisateur.



- Parlons de maison intelligente. Comment rendre votre maison un peu plus intelligente afin qu'aucun chat ne reste affamé et que toutes les portes d'Ekaterinbourg soient ouvertes? Commençons dès le début, nous comprendrons ce qu'est une maison intelligente. Il nous semble que c'est une maison où vous n'avez pas besoin de chercher la prise cachée derrière le rideau ou l'interrupteur. C'est une maison où vous n'avez pas besoin de chercher une télécommande depuis le téléviseur, un téléphone avec une application qui peut contrôler votre bouilloire ou ampoule. C'est une maison qui vous comprend, dans laquelle une personne utilise pour lui l'interface la plus naturelle et la plus naturelle - la voix.

Pourquoi avons-nous grimpé là-bas et que voulons-nous obtenir? Nous voulons vraiment nous assurer que notre assistant vocal n'est qu'un assistant, afin qu'il puisse non seulement activer la musique ou la vidéo, mais aussi aider dans les choses les plus naturelles et quotidiennes.

Nous comprenons également que nous ne pouvons pas écrire tout le code du monde et nous intégrer à tous les appareils. C'est pourquoi nous voulons que cette interface vocale fournisse aux développeurs, aux entreprises, aux personnes qui savent déjà comment fabriquer des appareils et les rendre cool. Ericsson indique que d'ici 2021, il y aura 28 milliards d'appareils connectés pour la maison intelligente dans le monde. Cela signifie, pendant un instant, que si vous imaginez que le monde entier est connecté à Internet, chaque personne aura en moyenne quatre appareils.



Juste avant le lancement, nous avons mené des recherches pour comprendre comment les gens utilisent les maisons intelligentes, ce qu'ils veulent voir, ce qu'ils veulent gérer. Nous avons choisi les trois destinations les plus prisées:
- contrôle des téléviseurs, récepteurs AV, appareils multimédias, etc.,
- contrôle de la lumière et des dispositifs d'éclairage,
- contrôle de la température - climatisation, thermostat, batterie, chaudière, etc.

La diapositive suivante contient des statistiques. Par exemple, nous avons commencé il y a à peine quatre mois, en mai, et nous constatons maintenant que le nombre moyen d'appareils sur notre plate-forme pour chaque utilisateur est de 3,8. J'ai regardé hier, il était de 3,93. Et il y a deux mois, ce chiffre était de 3,2. Cela signifie que les gens utilisent non seulement les maisons intelligentes, mais achètent également les appareils qu'ils aiment. Nous sommes fiers du chiffre suivant: 96% des utilisateurs contrôlent leur maison intelligente à l'aide de la voix, bien qu'ils aient tous une application à travers laquelle ces appareils intelligents peuvent également être contrôlés.

Et nous comprenons les limites de l'API actuelle, il y a vraiment très peu de choses qui peuvent être connectées ou décrites. Mais les fabricants, les passionnés ou les développeurs ont pu s'intégrer à notre plate-forme de sorte que nous y voyons maintenant plus de 800 modèles d'appareils différents. Ce sont précisément les modèles d'appareils: toutes sortes de bouilloires, climatiseurs, téléviseurs, etc.



Je le répète, nous ne sommes en production que depuis quatre mois, mais de si grandes sociétés distribuées ont déjà pu s'intégrer à notre plateforme, et je pense que c'est un grand mérite de l'équipe. Cela suggère que notre API est assez simple, de sorte que les gens ont pu s'intégrer à Yandex en quatre mois.



Des développeurs indépendants et des passionnés, nous voyons des gens écrire des compétences comme la maison intelligente. Ainsi, ils intègrent notre plateforme à d'autres systèmes: openHAB, Homebridge, Home Assistant, par exemple, afin que les appareils affûtés par l'écosystème Apple puissent également fonctionner avec Alice. Il y a quelques cas d'application de nos partenaires. Nous pensions que la maison intelligente de Yandex s'adresserait aux passionnés qui commencent tout juste à faire avancer ce marché. Mais des gens d'industries complètement différentes, presque sans Yandex, sont venus nous voir et ont dit qu'ils voulaient faire des installations avec une maison intelligente.

Par exemple, il existe un cas bien connu avec le développeur PIK et Rubetek. En tant que l'une des meilleures offres de décoration d'appartements, ils présentent une maison intelligente sur la plate-forme Yandex. Dans de tels appartements, dans de telles salles d'exposition déjà existantes, l'utilisateur peut venir demander à Alice de faire du café, d'ouvrir les rideaux ou de contrôler la lumière. Nous travaillons également avec des développeurs de bureaux en ce moment. Ils veulent, par exemple, intégrer Alice dans leurs salles de réunion afin de pouvoir faire vibrer la salle de réunion, appeler une autre ville ou contrôler, encore une fois, une sorte de luminaires. Et nous commençons également quelques expériences avec des hôtels. Vous pouvez demander le petit déjeuner dans votre chambre, changer votre oreiller pour un plus chaud ou activer une chaîne payante.

Plongeons maintenant un peu dans les détails techniques. Le schéma de travail avec une maison intelligente est assez simple. Il existe de nombreux fabricants d'appareils intelligents, et tous ces appareils peuvent être contrôlés via un téléphone mobile. Cela signifie que tous ces fabricants ont une sorte d'API avec laquelle l'utilisateur clique sur le téléphone mobile, le téléphone mobile envoie des demandes au cloud, respectivement, de ce fabricant, et l'appareil s'allume, s'éteint, la luminosité change, certains paramètres.

C'est donc dans cette direction que nous voulons nous intégrer. On peut dire que l'utilisateur ne tape pas sur le téléphone, mais parle d'une voix, par exemple. Et envoyez exactement la même demande au cloud de ce fabricant. C'est ce qu'on appelle l'interaction cloud à cloud. Sur la diapositive suivante, il est décrit en détail.



Autrement dit, une personne contrôle soit à l'aide d'un téléphone mobile ou de la voix. D'autres serveurs Yandex partent du cloud du fabricant correspondant et l'appareil s'allume.



Comment Yandex découvre-t-il l'appareil dont dispose un utilisateur? Pour ce faire, nous utilisons la procédure standard. Il s'agit de la liaison de compte Oauth2. L'utilisateur a juste besoin d'aller dans l'application Yandex, de lier ce qu'on appelle des comptes. En gros, sur les doigts, ça fonctionne comme ça.

Lorsque nous souhaitons connecter notre compte à Philips, l'utilisateur entre son nom d'utilisateur, son mot de passe ou nous indique un jeton spécial, et nous supposons utiliser ce jeton pour le nom d'utilisateur Philips.



La deuxième grande partie du protocole de la maison intelligente est constituée d'intentions vocales. Le premier et le plus important est Discovery. Avec un jeton utilisateur, nous allons dans le cloud du fabricant correspondant, et le fabricant nous dit: l'utilisateur a de tels appareils. Et puis tout est simple. Requête, action. Yandex est livré avec une demande à Query pour savoir dans quel état se trouve l'appareil - le fer est éteint, allumé ou quelle température est actuellement sur le climatiseur. Et Action, cela signifie que le statut actuel doit être changé. La déconnexion se produit lorsqu'un utilisateur décide de rompre le groupe de comptes afin que Yandex oublie complètement tous les appareils qui le sont.



Descendons encore plus profondément et voyons comment fonctionnent toutes ces intentions. Ce sont d'abord et avant tout des types d'appareils - type d'appareil. Les types de périphériques affectent uniquement les représentations de périphériques dans l'interface. Ce sont des dispositions spéciales dans l'application mobile. De plus, la chose la plus importante est probablement que les types d'appareils généralisent une sorte de représentation vocale, certaines commandes vocales. Autrement dit, peu importe ce que l'utilisateur appelle sa lampe, il doit toujours répondre au mot «lumière», par exemple. Ou cela ne devrait pas être important du tout, l'utilisateur dit «allumez le climatiseur» ou «condo». De plus, ce climatiseur peut s'appeler n'importe quoi.

Et deuxièmement, pour comprendre comment contrôler l'appareil, nous devons savoir que cet appareil le peut. Nous appelons ces choses des capacités. Autrement dit, c'est comme un bloc de construction, qui parle de ce que l'appareil peut faire.



Un peu plus sur le type d'appareil. Au tout début, nous en avions six, à mon avis. Maintenant, nous avons atteint une telle quantité. Par exemple, il y a deux semaines, ils ont sorti ouvrable, et les gars ont pu ouvrir leurs portes. Ils peuvent désormais dire: «Alice, ouvre la porte» et non «Alice, ouvre la porte», par exemple.



Parlons maintenant des fonctionnalités, des fonctionnalités disponibles et de la manière de faire comprendre à Alice comment gérer votre appareil.

La première chose, la plus importante et la plus simple est on_off. Presque tous les appareils ont cette capacité. Pour dire à Alice que l'appareil peut s'allumer et s'éteindre, ajoutez simplement ces deux lignes de Jason et définissez l'indicateur récupérable. Ce drapeau signifie que vous pouvez savoir depuis l'appareil actuel s'il est allumé ou non.

Un exemple simple avec un téléviseur. Vous avez probablement tous un téléviseur à la maison, et en regardant la télécommande du téléviseur, il est impossible de comprendre si le téléviseur est allumé ou éteint, bien sûr, si cette télécommande est infrarouge.



Le prochain type de capacité qui décrit les luminaires est le paramètre color_setting. Il a également un indicateur récupérable. Mais surtout, ces deux paramètres sont color_model. En utilisant ce paramètre, le fabricant nous dit qu'il sait contrôler la couleur. Cette couleur peut être en mode hsv ou rbg.



Et le second est la gradation du blanc. Autrement dit, on peut dire que mon ampoule peut être blanc froid, jaune chaud, etc., de sorte que l'utilisateur puisse dire: "s'il vous plaît, faites chauffer la lumière".



Ensuite, nous irons aux capacités, généralisant certains modes. Une très bonne analogie avec l'interface est les boutons radio, lorsque vous devez choisir l'un des différents modes. Ou pensez à une machine à laver de type krutilochka, où il y a définitivement un mode «linge de coton», «lavage délicat», etc.



Ici, il est important pour nous de savoir exactement quelle instance de ce mode vaut. Actuellement, il y en a déjà six. Mais ce sont précisément ceux que nous avons mis en œuvre au tout premier stade, il s'agit d'un exemple de climatiseur - mode automatique, refroidissement, etc. Ou, par exemple, il y a un exemple, le mode de fonctionnement du ventilateur est le plus lent, moyen ou, encore une fois, automatique.

Et en ce qui concerne le mode, nous pouvons dire: "Veuillez activer le mode suivant." Et il est très pratique pour les climatiseurs ou pour la même machine à laver.



Une autre capacité est la portée. Appliqué à l'analogie des interfaces, ce type de curseur de la valeur minimale à la valeur maximale peut réguler quelque chose. Ce curseur a également une instance. Par exemple, il s'agit de la température, du volume, de la luminosité, etc., presque toutes les plages pouvant être décrites. Cette unité, car certaines personnes, comme il s'est avéré, pour vérifier les climatiseurs, disent la température en Fahrenheit. Et ce sont donc des températures complètement différentes. Lorsqu'une personne demande à être incluse en Fahrenheit ou en Celsius, cela doit également être compris.

Le drapeau d'accès aléatoire est probablement bien connu de vous, c'est quand nous pouvons donner le nombre exact sur lequel définir la valeur dans cette plage. Un exemple assez simple, encore une fois, avec les téléviseurs. Le volume ne peut être contrôlé que de haut en bas. Et la température sur les climatiseurs peut être spécifiée avec précision.

Et la description même de la plage, lorsque nous connaissons une valeur minimale, une valeur maximale et le petit pas avec lequel nous pouvons modifier cette valeur. Sur les climatiseurs, encore une fois, il peut s'agir d'une sorte d'ensemble ou de fractions de dizaines.



Cette dernière fonctionnalité est similaire à l'interface, c'est une sorte de coche. Rappelez-vous, dans les anciens ordinateurs, il y avait un tel mode turbo - vous appuyez et l'ordinateur fonctionne plus vite? Ici, vous dites: «Alice, coupe le son», nous appuyons sur le bouton muet et le son disparaît. On peut dire, probablement, qu'il s'agit d'une sorte de mode binaire.

Et une combinaison de toutes ces capacités, de toutes les compétences. Nous pouvons décrire toutes sortes d'appareils actuellement sur le marché.



Par exemple, une ampoule intelligente. Elle sait comment allumer, éteindre. Elle sait comment ajuster la couleur et elle sait comment ajuster la luminosité. Mais si tout est simple avec une ampoule, essayons ensemble de décrire un autre appareil. Par exemple, une bouilloire.



À votre avis, que devrait faire une bouilloire intelligente? Je vous ai donné un indice, une capture d'écran de l'interface de l'application Yandex. Comment décririez-vous la bouilloire? La température Plus? Oui, et allumez-le et éteignez-le. La bouilloire est un appareil assez simple. Il sait comment l'allumer et l'éteindre, et, par exemple, mon thé vert préféré, je veux le faire à 85 degrés. A-t-il de l'eau? Oui, un bon point. Ici, nous attendons des informations du fabricant.



Je voudrais vous parler d'autres appareils. L'un des appareils les plus sophistiqués actuellement disponibles est la climatisation. Selon vous, que devrait faire la climatisation? Chaud ou frais. Réglez la température. Mode avec rideaux. Vitesse du ventilateur. Tout est correct. Et le climatiseur, qui peut maintenant être décrit dans nos capacités, peut faire tout cela. Il sait comment allumer, éteindre, sélectionner le mode de refroidissement, régler la température et la vitesse du ventilateur, avec lequel il souffle de l'air froid ou chaud. Il peut y avoir de l'air pur dans le mode sans climatisation.



Allons encore plus bas et voyons le genre de réponses que nous attendons des fabricants lors de la description des appareils. C'est une découverte intentionnelle. Il y a un peu de YAML ici, mais c'est assez facile à lire.

Au moment où l'utilisateur associe les comptes, nous demandons au fabricant ce que cet utilisateur possède, quels appareils - juste pour comprendre comment les gérer.

D'abord et avant tout: nous attendons le user_id de cet utilisateur et une liste de périphériques.



Un seul appareil est décrit ici: l'utilisateur a une ampoule, devices.types.light. Il peut s'agir non seulement d'une ampoule. Il peut s'agir d'une sorte de bande RVB ou d'une tondeuse à gazon avec rétro-éclairage. Cela ne nous concerne pas du tout. L'essentiel est qu'il réagisse au mot "lumière" et que dans l'interface, nous pouvons dessiner la capacité, qui est responsable de la lumière.



Notre tondeuse à gazon semble savoir comment allumer et éteindre. Elle sait comment changer la luminosité. Et elle sait comment ajuster la couleur. Et pas seulement la couleur - ce luminaire a également un réglage de la température de couleur.



Supposons qu'un utilisateur demande: "Alice, quel est l'état de mon ampoule maintenant?" ou "Alice, ma lumière est-elle allumée?" Ensuite, nous envoyons une telle question au fournisseur, nous disons qu'un tel appareil doit être demandé dans quel mode de couleur il se trouve actuellement et si l'appareil lui-même est allumé.





Si l'utilisateur veut changer ce mode, il peut par exemple dire: "Alice, éteins la lumière". Il y a une ampoule avec l'identifiant abc-123, "Veuillez l'éteindre", valeur false.



Nous attendons que le fabricant de l'appareil de l'autre côté du cloud nous réponde: ok, light abc-123, action_result, status DONE. La lumière s'est donc éteinte.



Un peu plus sur les scripts. Nous comprenons que les utilisateurs souhaitent non seulement gérer leurs appareils individuellement, mais également les regrouper. Par exemple, quand ils se réveillent, ils disent: «Alice, bonjour» et ils veulent qu'une certaine combinaison d'actions soit effectuée.

En conséquence, dans l'application Yandex, vous pouvez le dire, et Alice allumera de la musique, éteindra la veilleuse, la bouilloire commencera à fonctionner, bouillira de l'eau pour faire votre café préféré.



À propos des plans. Nous comprenons que cela fonctionne dans sa forme actuelle, bien qu'il vous permette de décrire un grand nombre d'appareils, mais, par exemple, ne vous permet pas de recevoir des informations de capteurs. Nous ne pourrons configurer aucun événement dans les scénarios afin que nous puissions comprendre par le capteur de fuite, de fumée ou d'ouverture de porte que quelque chose s'est produit. Nous visons à le faire. Nous comprenons également qu'à l'heure actuelle, nous ne sommes pas en mesure de contrôler mediastream. L'exemple le plus simple est qu'un coursier est venu chez vous avec une pizza chaude et qu'une poussée avec une photo de cette personne vient sur votre téléphone. C'est super! Maintenant, il est impossible de le faire avec les capacités actuelles - très probablement, des capacités apparaîtront qui décrivent les caméras.

À propos des capteurs, je vais aborder un sujet glissant - IFTTT. Avec IFTTT, nous voulons exécuter un script non seulement en voix, comme cela se fait maintenant. Nous voulons les exécuter sur différents événements: sur la minuterie, les horaires, le lever ou le coucher du soleil et d'autres événements. Et nous voulons vraiment que la maison intelligente ne soit pas seulement pour les geeks qui comprennent pourquoi ils doivent transférer leur mot de passe à partir d'une ampoule Wi-Fi. Nous voulons faire en sorte que les personnes qui ne sont absolument pas connectées à la maison intelligente ou qui ne comprennent pas comment cela fonctionne, achètent simplement une sorte de bouilloire, machine à laver, ampoule, peu importe. Et Alice a dit: «Il semble que vous ayez une sorte d'appareil neuf dans votre maison. Voulez-vous le connecter? " Et tout fonctionne immédiatement.

En conclusion, je veux dire: pour utiliser cette technologie, la maison intelligente, il vous suffit de lire la documentation et de décrire correctement votre appareil en utilisant les types d'appareils et les capacités existantes. Je vous remercie

Source: https://habr.com/ru/post/fr471062/


All Articles