如何教爱丽丝管理您的智能家居。 Yandex报告

9月底,我们召开了第一次硬件开发人员会议-Yandex.Zhelezo。 对于我们来说,这是新设备制造商市场的重要一步。 与会者(约150人)在看台上听了报告,交谈并花费了很多时间,您可以在无人驾驶的汽车内窥视,通过切断必要的电线来消除“炸弹”,拆卸Yandex.Station(记录-6分23秒),还进行测试车载计算机Yandex.Auto和智能家居。





关于智能家居平台,今天就聊。 春季,我们为所有开发人员启动了该工具,并在Yandex.Zhelez上,平台开发经理Marat Mavlyutov总结了最初的结果,并展示了如何建立设备管理。 从该报告中,您可以了解语音API的术语,描述用户设备并与之交互的方式。



-让我们谈谈智能家居。 如何使您的房子更聪明一点,以免一只猫饿了,叶卡捷琳堡的所有大门都打开了? 让我们从头开始,我们将了解智能家居的全部含义。 在我们看来,这是一所房子,您无需寻找隐藏在窗帘或开关后面的插座。 这是一所房子,您无需在电视上寻找遥控器,在电视上,它可以控制水壶或灯泡。 这是一间了解您的房子,其中一个人为他使用了最自然,最自然的界面-声音。

我们为什么要爬到那里,我们想要得到什么? 我们确实要确保语音助手只是助手,这样他不仅可以打开音乐或视频,还可以帮助他们处理最自然的日常事物。

我们还了解到,我们根本无法编写世界上所有的代码,也无法与所有设备集成。 这就是为什么我们希望该语音界面能够为开发人员,公司,已经知道如何制造设备并使它们变酷的人们提供服务。 爱立信表示,到2021年,全球将有280亿台联网的智能家居设备。 有一瞬间,这意味着,如果您将整个地球想象成与Internet连接,那么每个人平均将拥有四个设备。



在发布之前,我们进行了研究,以了解人们如何使用智能家居,他们想要看到的东西,他们想要管理的东西。 我们选择了三个最热门的目的地:
-控制电视,AV接收机,媒体设备等,
-控制照明设备
-温度控制-空调,恒温器,电池,锅炉等

下一张幻灯片具有统计信息。 例如,我们在四个月前的五月开始,现在我们看到平台上每个用户的平均设备数量为3.8。 我昨天看了看,当时是3.93。 而两个月前,这个数字是3.2。 这意味着人们不仅会使用智能家居,还会购买他们喜欢的设备。 我们为下图感到骄傲:96%的用户使用语音控制智能家居,尽管他们都有一个可以控制这些智能设备的应用程序。

而且我们了解当前API的局限性,实际上仍然很少可以连接或描述。 但是制造商,发烧友或开发人员都可以与我们的平台集成,因此现在我们可以在其中看到800多种不同的设备型号。 这些正是设备的模型:各种水壶,空调,电视等。



我再说一遍,我们已经投入生产仅四个月,但是如此大型的分布式公司已经能够与我们的平台集成,我相信这对团队来说是一个很大的优点。 这表明我们的API非常简单,因此人们可以在四个月内与Yandex集成。



从独立开发人员和发烧友那里,我们看到人们在编写诸如智能家居之类的技能。 因此,他们将我们的平台与其他系统集成在一起:例如openHAB,Homebridge,Home Assistant,这样,经过Apple生态系统优化的设备也可以与Alice一起使用。 我们的合作伙伴提供了一些应用案例。 我们认为Yandex的智能家居将针对那些刚刚开始推动该市场向前发展的发烧友。 但是来自完全不同行业(几乎没有Yandex)的人们来找我们,说他们想用智能家居进行安装。

例如,PIK开发人员和Rubetek有一个众所周知的案例。 作为装饰公寓的最佳选择之一,他们在Yandex平台上展示了​​智能家居。 在这样的公寓中,在这样的现有陈列室中,用户可以来找爱丽丝煮咖啡,打开窗帘或控制灯光。 我们现在也正在与Office开发人员合作。 例如,他们希望将爱丽丝(Alice)嵌入他们的会议室中,以便他们可以嗡嗡地会议室,呼叫另一个城市或再次控制某种照明设备。 我们也开始对酒店进行一些实验。 您可以在房间里享用早餐,将枕头换成一个温暖的枕头,或者打开一些收费频道。

现在让我们深入探讨技术细节。 使用智能家居的方案非常简单。 智能设备的制造商很多,所有这些设备都可以通过手机进行控制。 这意味着所有这些制造商都有某种API,用户可以通过它们单击手机,手机分别向该制造商的云发送一些请求,然后设备打开,关闭,亮度改变,参数。

因此,我们要朝这个方向进行整合。 例如,我们可以说用户没有拨电话,而是讲话。 并将完全相同的请求发送到该制造商的云。 这称为云到云交互。 在下一张幻灯片中将对其进行详细说明。



即,人可以使用手机或语音进行控制。 进一步的Yandex服务器从相应制造商的云中移出,设备打开。



Yandex如何查找用户拥有的设备? 为此,我们使用标准程序。 这称为Oauth2帐户链接。 用户只需要进入Yandex应用程序,链接所谓的帐户即可。 粗略地说,在手指上,它的工作原理是这样的。

当我们想将我们的帐户与Philips连接时,用户输入他们的用户名,密码或告诉我们一个特殊的令牌,我们应该将此令牌与Philips用户名一起使用。



智能家居协议所包含的第二个主要部分是语音意图。 第一个也是最重要的是发现。 我们用用户令牌转到相应制造商的云中,制造商告诉我们:用户拥有此类设备。 然后一切都很简单。 查询,操作。 Yandex要求查询以查明设备处于什么状态-熨斗已关闭,正在打开或当前空调的温度是多少。 而Action,这意味着需要更改当前状态。 当用户决定中断帐户捆绑时,将发生取消链接,因此Yandex将完全忘记所有存在的设备。



让我们更深入地了解所有这些意图是如何工作的。 首先,这些是设备类型-设备类型。 设备类型仅影响界面中的设备表示形式。 这些是移动应用程序中的特殊布局。 另外,最重要的是,设备的类型可以概括某种语音表示形式,某些语音命令。 就是说,用户称呼他的灯并不重要,例如,它仍应响应单词“ light”。 或根本不重要,用户说“打开空调”或“公寓”。 而且,这种空调可以被称为任何东西。

其次,要了解如何控制设备,我们需要知道该设备可以。 我们称这些东西为功能。 也就是说,它就像一个构建块,谈论设备可以做什么。



有关设备类型的更多信息。 我认为一开始我们就有六个。 现在我们已经增长到如此数量。 例如,两周前他们发布了openable,而这些家伙得以打开大门。 他们现在可以说:“爱丽丝,打开大门”,而不是“爱丽丝,打开大门”。



现在让我们讨论功能,可用功能以及如何使Alice了解如何管理设备。

首先,最重要和最简单的方法是on_off。 几乎每个设备都具有此功能。 要告诉Alice设备可以打开和关闭,只需添加这两行Jason并定义可检索标志。 此标志意味着您可以从当前设备中查找其是否已打开。

电视的简单示例。 你们大家都可能在家中有一台电视,并且看着电视遥控器,就无法了解电视是打开还是关闭,当然,如果该遥控器是红外的。



描述灯具的另一种功能是颜色设置。 它还具有一个可检索的标志。 但最重要的是,这两个参数是color_model。 使用此参数,制造商告诉我们他知道如何控制颜色。 此颜色可以处于hsv或rbg模式。



第二个是白色的渐变。 也就是说,可以说我的灯泡可以是冷白色,暖黄色等,以便用户可以说:“请使灯变暖”。



接下来,我们将介绍各种模式的功能。 当您需要选择几种模式之一时,与该接口非常相似的是单选按钮。 或者想想一台krutilochka型洗衣机,那里肯定有“棉麻”,“精致洗涤”模式等。



在这里,对于我们而言,准确找出该模式的哪个实例是值得的很重要。 当前实例中已经有六个。 但这恰恰是我们在第一阶段就实现的,这是空调的一个实例-自动模式,制冷等。或者例如,在某些情况下,风扇运行模式是最慢,平均或自动的。

关于模式,我们可以说:“请打开下一个模式。” 这对于空调或同一台洗衣机非常方便。



另一个功能是范围。 当应用于类比接口时,这种从最小值到最大值的滑块可以调节某些东西。 此滑块也有实例。 例如,这是温度,体积,亮度等,几乎可以描述的任何范围。 因为有人证明要检查空调,所以这个单位说的是华氏温度。 因此,这些是完全不同的温度。 当一个人要求包含华氏温度或摄氏温度时,这也需要理解。

随机访问标志可能是您众所周知的,这是我们可以给出在该范围内设置值的确切数字时的情况。 同样,电视是一个非常简单的例子。 音量只能上下调节。 并且可以精确地指定空调的温度。

还有范围的描述,当我们知道一些最小值,最大值以及可以更改此值的小步幅时。 同样,在空调上,它可以是某种整体,也可以是几十分之一。



后者的功能类似于界面,只是某种标记。 还记得吗,在旧计算机中有这样的加速模式-按一下,计算机运行速度会更快吗? 在这里,您说:“爱丽丝,关闭声音”,我们按下静音按钮,声音消失了。 大概可以说,这是某种二进制模式。

并结合所有这些功能和所有技能。 我们可以描述当前市场上的各种设备。



例如,智能灯泡。 她知道如何打开,关闭。 她知道如何调整颜色,并且知道如何调整亮度。 但是,如果用灯泡一切都很简单,让我们一起来描述其他设备。 例如水壶。



您认为智能水壶应该能做什么? 我给了你一个提示,即Yandex应用程序界面的屏幕截图。 您如何形容水壶? 温度范围 还有吗 是的,然后将其打开和关闭。 水壶是一个非常简单的设备。 他知道如何打开和关闭它,例如,我最喜欢的绿茶,我想将其制成85度。 它有水吗? 是的,很好。 在这里,我们正在等待制造商的信息。



我想告诉您其他设备。 当前可用的最复杂的设备之一是空调。 您认为空调应该能做什么? 温暖或凉爽。 调节温度。 带有窗帘的模式。 风扇转速。 一切正确。 现在可以用我们的能力描述的空调可以完成所有这些工作。 他知道如何打开,关闭,选择冷却模式,调节风扇的温度和速度,以风扇吹冷空气或热空气。 没有空调的模式下可能会有普通空气。



让我们走得更低,看看我们在描述设备时对制造商的期望。 这是意图发现。 这里有一些YAML,但是很容易阅读。

在用户关联帐户时,我们会询问制造商该用户拥有什么设备,哪些设备-只是为了了解如何进行管理。

首先,最重要的是:我们正在等待该用户的user_id和设备列表。



这里仅描述一个设备:用户有一个灯泡,devices.types.light。 顺便说一下,它不仅可以是灯泡。 它可以是某种RGB胶带或带背光的割草机。 对我们来说都没有关系。 最主要的是它对“光”一词做出反应,并且在界面中我们可以绘制负责光的功能。



我们的割草机似乎知道如何打开和关闭。 她知道如何更改亮度。 而且她知道如何调整颜色。 不仅色彩-该照明灯具还具有色温调节功能。



假设用户问:“爱丽丝,我的灯泡现在处于什么状态?” 或“爱丽丝,我的灯亮了吗?” 然后,我们将这样的问题发送给提供商,我们说应该询问这种设备现在处于哪种颜色模式以及设备本身是否已打开。





如果用户想要更改此模式,则可以例如说:“爱丽丝,把灯关掉。” 有一个灯泡,灯泡的abc-123 ID为“请关闭它”,值为false。



我们正在等待云另一端的设备制造商回答我们:好,指示灯abc-123,动作结果,状态为DONE。 因此,灯已熄灭。



有关脚本的更多信息。 我们知道用户不仅要单独管理他们的设备,而且希望将它们组合在一起。 例如,当他们醒来时,他们说:“爱丽丝,早上好”,他们希望执行某种特定的动作组合。

因此,在Yandex应用程序中,您可以这样说,Alice将打开一些音乐,关闭夜灯,水壶将开始工作,烧开水以制成您喜欢的咖啡。



关于计划。 我们理解该工作以当前形式进行,尽管它允许您描述大量设备,但是例如,它不允许您从传感器接收信息。 我们将无法在方案中配置任何事件,以使我们无法通过泄漏,烟雾或打开门的传感器了解发生了什么事情。 我们的目标是做到这一点。 我们也了解到,目前我们无法控制媒体流。 最简单的示例是快递员带着热比萨饼来到您家,而带有该人照片的推送则进入您的电话。 太好了! 现在,使用当前功能无法做到这一点-很可能会出现描述摄像机的功能。

关于传感器我将讨论一个湿滑的话题-IFTTT。 使用IFTTT,我们希望不仅像现在那样以语音形式运行脚本。 我们想在不同的事件上运行它们:在计时器,时间表,日出或日落以及其他事件上。 我们真的希望智能家居不仅适合那些了解为什么需要通过Wi-Fi灯泡传输密码的极客。 我们希望做到这一点,以便绝对不连接智能家居或不了解智能家居工作原理的人们,只需购买某种水壶,洗衣机,灯泡,都没关系。 爱丽丝说:“看来您家里有某种新设备。 您要连接吗?” 一切立即生效。

最后,我想说:要使用智能家居技术,您只需要阅读文档并使用设备类型和现有功能正确描述您的设备。 谢谢啦

Source: https://habr.com/ru/post/zh-CN471062/


All Articles