6.4 Dueros智能家居商用接口对接
6.4Dueros智能家居商用接口对接
设计最初的目标是在以个人现有的知识水平为基础,尽可能的使所设计产品趋近于商用级别。Dueros官方考虑到智能家居设备控制在实际生活中会存在一些安全隐患,所以针对智能家居设备规定了一套标准的控制协议来确保设备控制的安全性,且对申请上线的设备有着严格的审核,需要把样机邮寄到总部进行测试,只有测试通过的产品才能被正式授权。当然本次设计制作的硬件,仅完成了商用接口协议的对接,并没有送审授权,所以也只能被个人使用。
dueros的智能家居其实从服务器角度看,也属于技能范畴,它与自定义技能的区别就是,智能家居技能不需要处理逻辑对话的服务器,因此智能家居技能不可以自定义问答内容。
智能家居技能是通过百度出品智能音箱进行语言交互控制的,个人搭建的交互终端不开放智能家居权限,当然如果你是厂商,需要赋予自己产品语言交互的能力,则需要通过商业合作的方式获取权限。需要注意的是智能家居技能需要一个oauth2.0授权服务器进行授权,这个基于oauth2.0协议的授权服务器需要我们自己来搭建的。
对于oauth2.0授权非专业的人事可能不太了解,但在生活中绝对使用过。最常见的就是访问一个网站,网站可以使用第三方账号进行登陆。以CSDN网站为例,简单介绍下oauth授权过程,以便对接下来的智能家居授权有个深入理解。
我们在CSDN首页点击登陆时,假如选用第三方QQ登陆,浏览器会给CSDN网站发送一个授权的请求,这时CSDN网站会返回一个重定向的地址,这里重定向的地址就是QQ授权服务器的地址,接着浏览器将自动访问这个地址,请求QQ授权服务器授权。QQ授权服务器收到浏览器的授权请求后,会返回一个code码,也就是授权码。浏览器接着携带着授权码再向CSDN发起请求,CSDN第二次收到请求后,会解析提取请求中携带的授权码,并通过授权码向QQ授权服务器发起请求,换取token令牌,QQ授权服务器验证授权码有效后,会返回token令牌给CSDN,CSDN拿到token令牌后,会再次请求QQ授权服务器,用token令牌换取用户信息,只有QQ授权服务器验证token正确后,会返回用户信息给CSDN,CSDN拿到用户信息后,经过查找、筛选、读取等处理,将用户对应的数据渲染到页面上,并将渲染后的页面返回给浏览器。此时就达到了第三方账号授权登陆目的。
对于智能家居技能来说,在创建技能时需要配置oauth2.0授权服务器,并将服务器地址填入技能配置项内,配置完成后dueros服务器会自动去请求ouath2.0授权服务器,通过一系列的请求应答,获取到token令牌。在每次通过智能音箱下达语音控制指令时,dueros服务器会携带token令牌去请求设备云,设备云需要根据智能家居协议进行适配,才可以实现控制。协议包括了各种常用的家电,针对不同的控制电器也有不同的控制标准,如灯类除控制开关外,还有调色、调光的接口,空调有调温、模式切换、定时开关等接口。设备云在设计时,必须按协议正确且及时的回复应控制结果,dueros服务器才会根据控制结果,使智能音箱做出不同的回应。除此之外,设备云还需要对dueros请求携带的token令牌做校验,设定token令牌的过期时间,只有严格遵循这些规则,才能使智能家居设备和音箱正常交互,保障控制系统稳定运行。