Wie Sie Alice beibringen, Ihr Smart Home zu verwalten. Yandex-Bericht

Ende September fand unser erstes Treffen für Hardwareentwickler statt - Yandex.Zhelezo. Dies ist für uns ein wichtiger Schritt auf dem Markt für neue Gerätehersteller. Die Teilnehmer (ca. 150 Personen) hörten sich die Berichte an, unterhielten sich und verbrachten viel Zeit an den Ständen, wo Sie in das unbemannte Auto schauen, die „Bombe“ entschärfen konnten, indem Sie die erforderlichen Kabel abschneiden, die Yandex.Station zerlegen (Rekord - 6 Minuten 23 Sekunden) und auch testen konnten Bordcomputer Yandex.Auto und Smart Home.





Nur über die Smart-Home-Plattform und sprechen Sie heute. Im Frühjahr haben wir es für alle Entwickler veröffentlicht. Auf Yandex.Zhelez fasste der Plattformentwicklungsmanager Marat Mavlyutov die ersten Ergebnisse zusammen und zeigte, wie das Geräte-Management eingerichtet werden kann. In dem Bericht erfahren Sie mehr über die Bedingungen der Sprach-API sowie über Möglichkeiten zur Beschreibung und Interaktion mit dem Gerät eines Benutzers.



- Reden wir über Smart Home. Wie können Sie Ihr Haus ein wenig schlauer machen, damit keine einzige Katze hungrig bleibt und alle Tore in Jekaterinburg geöffnet sind? Beginnen wir von vorne, wir werden verstehen, worum es bei einem Smart Home geht. Es scheint uns, dass dies ein Haus ist, in dem Sie nicht nach der Steckdose suchen müssen, die sich hinter dem Vorhang oder dem Schalter verbirgt. Dies ist ein Haus, in dem Sie nicht nach einer Fernbedienung vom Fernseher suchen müssen, einem Telefon mit einer Anwendung, die Ihren Wasserkocher oder Ihre Glühbirne steuern kann. Dies ist ein Haus, das Sie versteht, in dem eine Person die ursprünglichste, natürlichste Schnittstelle für sie verwendet - die Stimme.

Warum sind wir dort geklettert und was wollen wir bekommen? Wir möchten wirklich sicherstellen, dass unser Sprachassistent nur ein Assistent ist, damit er nicht nur Musik oder Videos einschalten, sondern auch in den natürlichsten, alltäglichen Dingen helfen kann.

Wir verstehen auch, dass wir nicht den gesamten Code der Welt schreiben und in alle Geräte integrieren können. Aus diesem Grund möchten wir, dass diese Sprachschnittstelle Entwicklern, Unternehmen und Personen zur Verfügung steht, die bereits wissen, wie man Geräte herstellt und sie cool macht. Laut Ericsson wird es bis 2021 weltweit 28 Milliarden vernetzte Smart-Home-Geräte geben. Dies bedeutet für einen Moment, dass jede Person durchschnittlich vier Geräte hat, wenn Sie sich vorstellen, dass der gesamte Globus mit dem Internet verbunden ist.



Kurz vor dem Start haben wir untersucht, wie Menschen Smart Homes nutzen, was sie sehen und was sie verwalten möchten. Wir haben die drei Top-Ziele ausgewählt:
- Steuerung von Fernsehgeräten, AV-Receivern, Mediengeräten usw.
- Steuerung von Licht und Beleuchtungsgeräten,
- Temperaturregelung - Klimaanlage, Thermostat, Batterie, Kessel usw.

Die nächste Folie enthält Statistiken. Zum Beispiel haben wir erst vor vier Monaten im Mai begonnen und jetzt sehen wir, dass die durchschnittliche Anzahl von Geräten auf unserer Plattform für jeden Benutzer 3,8 beträgt. Ich habe gestern geschaut, es war 3,93. Und vor zwei Monaten war diese Zahl 3,2. Dies bedeutet, dass Menschen nicht nur Smart Homes nutzen, sondern auch Geräte kaufen, die sie mögen. Wir sind stolz auf die folgende Zahl: 96% der Benutzer steuern ihr Smart Home über Sprache, obwohl sie alle über eine Anwendung verfügen, über die diese Smart Devices auch gesteuert werden können.

Und wir verstehen die Einschränkungen der aktuellen API, es gibt wirklich noch sehr wenig, was verbunden oder beschrieben werden kann. Hersteller, Enthusiasten oder Entwickler konnten sich jedoch in unsere Plattform integrieren, sodass wir jetzt mehr als 800 verschiedene Gerätemodelle darin sehen. Dies sind genau die Modelle von Geräten: alle Arten von Wasserkochern, Klimaanlagen, Fernsehgeräten usw.



Ich wiederhole, wir sind erst seit vier Monaten in Produktion, aber so große verteilte Unternehmen konnten sich bereits in unsere Plattform integrieren, und ich glaube, dass dies ein sehr großer Verdienst des Teams ist. Dies deutet darauf hin, dass unsere API recht einfach ist, sodass die Benutzer in vier Monaten in Yandex integrieren konnten.



Von Indie-Entwicklern und Enthusiasten sehen wir Menschen, die Fähigkeiten wie Smart Home schreiben. So integrieren sie unsere Plattform in andere Systeme: openHAB, Homebridge, Home Assistant, sodass Geräte, die vom Apple-Ökosystem geschärft wurden, auch mit Alice zusammenarbeiten können. Es gibt einige Anwendungsfälle von unseren Partnern. Wir dachten, dass das Smart Home von Yandex sich an diejenigen Enthusiasten richten wird, die gerade erst anfangen, diesen Markt voranzutreiben. Aber Menschen aus ganz anderen Branchen, fast ohne Yandex, kamen zu uns und sagten, dass sie Installationen mit einem Smart Home machen wollen.

Zum Beispiel gibt es einen bekannten Fall mit dem PIK-Entwickler und Rubetek. Als eines der Top-Angebote für die Dekoration von Apartments präsentieren sie ein Smart Home auf der Yandex-Plattform. In solchen Wohnungen, in solchen bereits vorhandenen Ausstellungsräumen, kann der Benutzer Alice bitten, Kaffee zu kochen, die Vorhänge zu öffnen oder das Licht zu steuern. Derzeit arbeiten wir auch mit Büroentwicklern zusammen. Sie möchten beispielsweise Alice in ihre Besprechungsräume einbetten, damit sie im Besprechungsraum herumtollen, eine andere Stadt anrufen oder wieder eine Art Leuchte steuern können. Und wir beginnen auch einige Experimente mit Hotels. Sie können in Ihrem Zimmer um Frühstück bitten, Ihr Kissen gegen ein wärmeres austauschen oder einen kostenpflichtigen Kanal einschalten.

Lassen Sie uns nun ein wenig auf die technischen Details eingehen. Das Schema der Arbeit mit einem Smart Home ist recht einfach. Es gibt viele Hersteller von Smart-Geräten, und alle diese Geräte können über ein Mobiltelefon gesteuert werden. Dies bedeutet, dass alle diese Hersteller über eine API verfügen, mit der der Benutzer auf das Mobiltelefon klickt, das Mobiltelefon einige Anforderungen an die Cloud dieses Herstellers sendet und das Gerät ein- und ausgeschaltet wird, die Helligkeit sich ändert Parameter.

Dementsprechend wollen wir in diese Richtung integrieren. Wir können sagen, dass der Benutzer nicht am Telefon stochert, sondern zum Beispiel mit einer Stimme spricht. Und senden Sie genau die gleiche Anfrage an die Cloud dieses Herstellers. Dies wird als Cloud-zu-Cloud-Interaktion bezeichnet. Auf der nächsten Folie wird es ausführlich beschrieben.



Das heißt, eine Person steuert entweder mit einem Mobiltelefon oder mit der Stimme. Weitere Yandex-Server gehen aus der Cloud des entsprechenden Herstellers und das Gerät wird eingeschaltet.



Wie erfährt Yandex von dem Gerät, über das ein Benutzer verfügt? Dazu verwenden wir das Standardverfahren. Es heißt Oauth2-Kontoverknüpfung. Der Benutzer muss nur in die Yandex-Anwendung gehen und so genannte Konten verknüpfen. Grob gesagt funktioniert es an den Fingern so.

Wenn wir unser Konto mit Philips verbinden möchten, gibt der Benutzer seinen Benutzernamen und sein Kennwort ein oder teilt uns ein spezielles Token mit, und wir gehen mit diesem Token angeblich zum Philips-Benutzernamen.



Der zweite Hauptteil, aus dem das Smart-Home-Protokoll besteht, sind Sprachabsichten. Das erste und wichtigste ist Discovery. Wir gehen mit einem Benutzertoken in die Cloud des entsprechenden Herstellers, und der Hersteller sagt uns: Der Benutzer hat solche Geräte. Und dann ist alles einfach. Abfrage, Aktion. Yandex fordert Query auf, herauszufinden, in welchem ​​Status sich das Gerät befindet - das Bügeleisen ist ausgeschaltet, eingeschaltet oder die Temperatur an der Klimaanlage ist gerade. Und Aktion, dies bedeutet, dass der aktuelle Status geändert werden muss. Die Aufhebung der Verknüpfung erfolgt, wenn ein Benutzer beschließt, das Kontenpaket aufzubrechen, sodass Yandex alle vorhandenen Geräte vollständig vergisst.



Lassen Sie uns noch tiefer gehen und sehen, wie all diese Absichten funktionieren. In erster Linie sind dies Gerätetypen - Gerätetyp. Gerätetypen wirken sich nur auf Gerätedarstellungen in der Schnittstelle aus. Dies sind spezielle Layouts in der mobilen Anwendung. Außerdem ist das Wichtigste wahrscheinlich, dass die Gerätetypen eine Art Sprachdarstellung, einige Sprachbefehle verallgemeinern. Das heißt, es spielt keine Rolle, wie der Benutzer seine Lampe nennt, sie sollte beispielsweise immer noch auf das Wort „Licht“ reagieren. Oder es sollte überhaupt nicht wichtig sein, der Benutzer sagt "Klimaanlage einschalten" oder "Wohnung". Darüber hinaus kann diese Klimaanlage wie auch immer genannt werden.

Und zweitens müssen wir wissen, dass dieses Gerät dies kann, um zu verstehen, wie das Gerät gesteuert wird. Wir nennen diese Dinge Fähigkeiten. Das heißt, es ist wie ein Baustein, der darüber spricht, was das Gerät kann.



Ein bisschen mehr über den Gerätetyp. Ganz am Anfang hatten wir meiner Meinung nach sechs. Jetzt sind wir auf eine solche Menge angewachsen. Zum Beispiel haben sie vor zwei Wochen openable veröffentlicht und die Jungs konnten ihre Tore öffnen. Sie können jetzt sagen: "Alice, öffne das Tor" und nicht "Alice, mach das Tor an".



Lassen Sie uns nun über Funktionen sprechen, welche Funktionen verfügbar sind und wie Alice verstehen kann, wie Sie Ihr Gerät verwalten.

Das erste, wichtigste und einfachste ist on_off. Fast jedes Gerät verfügt über diese Fähigkeit. Um Alice mitzuteilen, dass das Gerät ein- und ausgeschaltet werden kann, fügen Sie einfach diese paar Zeilen von Jason hinzu und definieren Sie das abrufbare Flag. Dieses Flag bedeutet, dass Sie am aktuellen Gerät feststellen können, ob es eingeschaltet ist oder nicht.

Ein einfaches Beispiel mit einem Fernseher. Sie alle haben wahrscheinlich einen Fernseher zu Hause, und wenn Sie auf die TV-Fernbedienung schauen, ist es unmöglich zu verstehen, ob der Fernseher ein- oder ausgeschaltet ist, natürlich, wenn diese Fernbedienung infrarot ist.



Die nächste Art von Funktion, die Leuchten beschreibt, ist color_setting. Es hat auch eine abrufbare Flagge. Am wichtigsten ist jedoch, dass diese beiden Parameter color_model sind. Mit diesem Parameter teilt uns der Hersteller mit, dass er weiß, wie man Farben steuert. Diese Farbe kann im hsv- oder rbg-Modus sein.



Und die zweite ist die Abstufung von Weiß. Das heißt, es kann gesagt werden, dass meine Glühbirne kaltweiß, warmgelb usw. sein kann, so dass der Benutzer sagen kann: "Bitte machen Sie das Licht wärmer."



Als nächstes werden wir auf Funktionen eingehen und bestimmte Modi verallgemeinern. Eine sehr gute Analogie zur Benutzeroberfläche sind Optionsfelder, wenn Sie einen von mehreren Modi auswählen müssen. Oder denken Sie an eine Waschmaschine vom Typ Krutilochka, bei der es definitiv einen Modus für „Baumwollleinen“, „Feinwäsche“ usw. gibt.



Hier ist es wichtig, dass wir genau herausfinden, welche Instanz dieses Modus es wert ist. Derzeit gibt es bereits sechs davon. Aber genau diese haben wir in der ersten Phase implementiert. Dies ist eine Instanz der Klimaanlage - automatischer Modus, Kühlung usw. Oder es gibt beispielsweise eine Instanz, in der der Lüfterbetriebsmodus der langsamste, durchschnittliche oder wiederum automatische ist.

Und in Bezug auf den Modus können wir sagen: "Bitte schalten Sie den nächsten Modus ein." Und es ist sehr praktisch für Klimaanlagen oder für die gleiche Waschmaschine.



Eine weitere Fähigkeit ist die Reichweite. In Bezug auf die Analogie von Schnittstellen kann diese Art von Schieberegler vom minimalen zum maximalen Wert etwas regulieren. Dieser Schieberegler hat auch eine Instanz. Dies sind beispielsweise Temperatur, Volumen, Helligkeit usw., fast jeder Bereich, der beschrieben werden kann. Dieses Gerät, weil einige Leute, wie sich herausstellte, um die Klimaanlagen zu überprüfen, sagen die Temperatur in Fahrenheit. Und das sind dementsprechend völlig unterschiedliche Temperaturen. Wenn eine Person die Aufnahme in Fahrenheit oder Celsius beantragt, muss dies ebenfalls verstanden werden.

Das Direktzugriffsflag ist Ihnen wahrscheinlich bekannt. In diesem Fall können wir die genaue Zahl angeben, für die der Wert in diesem Bereich festgelegt werden soll. Wieder ein ziemlich einfaches Beispiel mit Fernsehern. Die Lautstärke kann nur nach oben und unten geregelt werden. Und die Temperatur an den Klimaanlagen kann genau angegeben werden.

Und genau die Beschreibung des Bereichs, wenn wir einen Minimalwert, einen Maximalwert und den kleinen Schritt kennen, mit dem wir diesen Wert ändern können. Bei Klimaanlagen kann es sich wiederum um eine Art Ganzes oder um Bruchteile von zehn handeln.



Die letztere Funktion ähnelt der Schnittstelle, es ist eine Art Häkchen. Denken Sie daran, in alten Computern gab es einen solchen Turbomodus - Sie drücken und der Computer läuft schneller? Hier sagst du: "Alice, schalte den Ton aus", wir drücken die Stummschalttaste und der Ton verschwindet. Wir können wahrscheinlich sagen, dass dies eine Art Binärmodus ist.

Und eine Kombination all dieser Fähigkeiten, aller Fähigkeiten. Wir können alle Arten von Geräten beschreiben, die derzeit auf dem Markt sind.



Zum Beispiel eine intelligente Glühbirne. Sie weiß, wie man ein- und ausschaltet. Sie weiß, wie man die Farbe einstellt, und sie weiß, wie man die Helligkeit einstellt. Aber wenn mit einer Glühbirne alles einfach ist, versuchen wir gemeinsam, ein anderes Gerät zu beschreiben. Zum Beispiel ein Wasserkocher.



Was sollte ein intelligenter Wasserkocher Ihrer Meinung nach können? Ich habe Ihnen einen Hinweis gegeben, einen Screenshot von der Yandex-Anwendungsoberfläche. Wie würden Sie den Wasserkocher beschreiben? Temperatur Noch? Ja, und schalten Sie es ein und aus. Der Wasserkocher ist ein ziemlich einfaches Gerät. Er weiß, wie man es ein- und ausschaltet, und zum Beispiel mein Lieblingsgrüntee, ich möchte es bei 85 Grad machen. Hat es Wasser? Ja, ein guter Punkt. Hier warten wir auf Informationen des Herstellers.



Ich möchte Ihnen von anderen Geräten erzählen. Eines der derzeit modernsten Geräte ist die Klimaanlage. Was sollte eine Klimaanlage Ihrer Meinung nach können? Warm oder kalt. Stellen Sie die Temperatur ein. Modus mit Vorhängen. Lüftergeschwindigkeit. Alles ist richtig. Und die Klimaanlage, die jetzt in unserer Fähigkeit beschrieben werden kann, kann all dies. Er weiß, wie man ein- und ausschaltet, den Kühlmodus auswählt, die Temperatur und Geschwindigkeit des Lüfters einstellt, mit dem er entweder kalte oder heiße Luft bläst. Im Modus ohne Klimaanlage befindet sich möglicherweise reine Luft.



Lassen Sie uns noch tiefer gehen und sehen, welche Antworten wir von Herstellern erwarten, wenn wir Geräte beschreiben. Dies ist eine absichtliche Entdeckung. Hier gibt es ein bisschen YAML, aber es ist ziemlich einfach zu lesen.

In dem Moment, in dem der Benutzer die Konten verknüpft, fragen wir den Hersteller, was dieser Benutzer hat, welche Geräte - nur um zu verstehen, wie sie verwaltet werden.

In erster Linie: Wir warten auf die Benutzer-ID dieses Benutzers und eine Liste der Geräte.



Hier wird nur ein Gerät beschrieben: Der Benutzer hat eine Glühbirne, device.types.light. Es kann übrigens nicht nur eine Glühbirne sein. Es kann sich um eine Art RGB-Band oder einen Rasenmäher mit Hintergrundbeleuchtung handeln. Es ist uns überhaupt egal. Die Hauptsache ist, dass es auf das Wort "Licht" reagiert und dass wir in der Schnittstelle die Fähigkeit zeichnen können, die für Licht verantwortlich ist.



Unser Rasenmäher scheint zu wissen, wie man ein- und ausschaltet. Sie weiß, wie man die Helligkeit ändert. Und sie weiß, wie man die Farbe anpasst. Und nicht nur Farbe - diese Leuchte hat auch eine Farbtemperatureinstellung.



Angenommen, ein Benutzer fragt: "Alice, wie ist der Zustand meiner Glühbirne jetzt?" oder "Alice, ist mein Licht an?" Dann senden wir eine solche Frage an den Anbieter, wir sagen, dass ein solches Gerät gefragt werden sollte, in welchem ​​Farbmodus es sich gerade befindet und ob das Gerät selbst eingeschaltet ist.





Wenn der Benutzer diesen Modus ändern möchte, kann er beispielsweise sagen: "Alice, mach das Licht aus." Es gibt eine Glühbirne mit der ID "Bitte ausschalten" abc-123 mit dem Wert false.



Wir warten darauf, dass der Gerätehersteller auf der anderen Seite der Cloud uns antwortet: Okay, Licht abc-123, action_result, Status DONE. Das Licht ist also ausgeschaltet.



Ein bisschen mehr über die Skripte. Wir verstehen, dass Benutzer ihre Geräte nicht nur einzeln verwalten, sondern auch gruppieren möchten. Wenn sie zum Beispiel aufwachen, sagen sie: „Alice, guten Morgen“ und möchten, dass eine bestimmte Kombination von Aktionen ausgeführt wird.

Dementsprechend können Sie dies in der Yandex-Anwendung sagen, und Alice schaltet Musik ein, schaltet das Nachtlicht aus, der Wasserkocher beginnt zu arbeiten und kocht Wasser, um Ihren Lieblingskaffee zuzubereiten.



Über die Pläne. Wir verstehen, dass die Arbeit in ihrer aktuellen Form zwar eine große Anzahl von Geräten beschreiben kann, Sie jedoch beispielsweise nicht den Empfang von Informationen von Sensoren ermöglichen. Wir können in den Szenarien kein Ereignis so konfigurieren, dass wir anhand des Sensors für Leckage, Rauch oder Öffnen der Tür erkennen können, dass etwas passiert ist. Wir wollen es tun. Wir verstehen auch, dass wir im Moment nicht in der Lage sind, Mediastream zu steuern. Das einfachste Beispiel ist, dass ein Kurier mit heißer Pizza zu Ihnen nach Hause kam und ein Push mit einem Foto dieser Person auf Ihr Telefon kommt. Das ist super! Jetzt ist es unmöglich, dies mit den aktuellen Funktionen zu tun - höchstwahrscheinlich werden Funktionen angezeigt, die die Kameras beschreiben.

Über Sensoren werde ich ein rutschiges Thema ansprechen - IFTTT. Mit IFTTT möchten wir ein Skript nicht nur in Sprache ausführen, wie dies jetzt der Fall ist. Wir möchten sie für verschiedene Ereignisse ausführen: für Timer, Zeitpläne, Sonnenaufgang oder Sonnenuntergang und andere Ereignisse. Und wir möchten wirklich, dass das Smart Home nicht nur für Geeks gedacht ist, die verstehen, warum sie ihr Passwort von einer Wi-Fi-Glühbirne übertragen müssen. Wir wollen es so machen, dass Menschen, die absolut nicht mit dem Smart Home verbunden sind oder nicht verstehen, wie es funktioniert, einfach eine Art Wasserkocher, Waschmaschine, Glühbirne kaufen, es spielt keine Rolle. Und Alice sagte: „Es sieht so aus, als hätten Sie ein neues Gerät in Ihrem Haus. Möchten Sie es verbinden? " Und alles sofort zu arbeiten.

Abschließend möchte ich sagen: Um diese Technologie, Smart Home, nutzen zu können, müssen Sie nur die Dokumentation lesen und Ihr Gerät anhand von Gerätetypen und vorhandenen Funktionen korrekt beschreiben. Vielen Dank.

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


All Articles