AIoT方案输出

一、简介

DUI智能家居平台是一个开放式的语音IoT平台;基于思必驰语音技术,联通多家IoT云设备,为音箱、电视、车载等AI设备厂商提供语音智能控制和管理的AIoT解决方案,实现声控照明、调温等。DUI智能家居方案拥有以下特点:

1.1 内置语音交互界面(VUI)

无需设计和开发VUI,您可以使用DUI智能家居VUI,它为常见的设备类型(例如灯光、空调)提供专用的语音模型和对话服务,拥有更自然更高效的语音体验

1.2 多设备联通能力

50+品牌设备接入,支持30+设备类型,基本覆盖生活全品类家电,海量设备满足用户不同的控制需求

1.3 多平台支持

支持Linux、iOS、Android等多个设备平台,输出API/SDK/H5多种方式,APP、音箱、电视等带屏设备和无屏设备均可集成

1.4 隐身接入

提供全套API接口,支持客户使用自有账号系统,完美融入第三方系统,实现真正的隐身

 

二、集成流程

2.1 通用流程

PS:适用于没有IoT平台的音箱、中控、电视、车载等客户

以Android集成流程为例:

1、技能授权:详情参考本文档3.1章节

2、集成DCA SDK:DCA SDK中封装有智能家居相关的API接口,详情参考本章3.2

3、账号接入:提供思必驰账号和客户使用自有账号两种接入方式,具体参考Android DCA SDK文档7.2

4、设备授权:语音请求控制设备时需要使用思必驰的账号信息(userid、authcoder等),设备授权是指账号接入完成后将获取到的思必驰userid、authcoder等字段传给音箱等中控设备;参考Android DCA文档5.1和5.2

5、用户账号授权:获取智能家居技能列表并登录第三方IoT平台账号(例如涂鸦)进行账号授权绑定,参考Android DCA文档13.1~13.4

6、获取IoT设备列表:通过智能家居协议发现设备和授权获取的AccessToken,获取该用户的设IoT备列表,展示在app或带屏设备上,参考Android DCA文档13.5

7、设备名称/位置同步:如果用户在第三方IoT APP上设置/修改了设备名称(例如空调名称为“我房间空调”),需要调用一次DCA SDK设备名称和位置同步接口,主动同步第三方IoT APP设置/修改的设备名称(参照13.10),同步后才可以通过设备名称精准控制设备,比如“打开我房间空调”

8、设备管理:空间中的设备名称、位置、场景模式等属性管理,实现分房间分设备控制和多设备场景控制,具体参考Android DCA文档13.6、13.8以及8.13

 

 

2.2 控制自有IoT设备的集成流程

PS:适用于有IoT平台的客户(前提是IoT平台已经与DUI云平台云对云互通,参考IoT设备接入)

部分客户有自己的IoT平台和设备,例如开关、灯等,期望自己的音箱等智能设备能够语音控制自有的家居设备,以Android集成流程为例:

1、技能授权:详情参考本文档3.1章节

2、集成DCA SDK:DCA SDK中封装有智能家居相关的API接口,详情参考本章3.2

3、账号接入:提供思必驰账号和客户使用自有账号两种接入方式,具体参考Android DCA文档4.1和4.2

4、设备授权:语音请求智能家居技能时需要使用思必驰的账号信息(userid、authcoder等),设备账号授权是指账号接入完成后将获取到的思必驰userid、authcoder等字段传给音箱等中控设备;参考Android DCA文档7.2

5、跳过Oauth2.0登录授权流程:当集成DCA SDK开发者和智能家居厂商是同一家公司的时候,客户app登录完成后,如果使用智能家居技能,则还需要登录一次,那么这个体验会很差。为了解决这个问题,我们提供了跳过二次智能家居平台的登录页面接口,参考Android DCA文档13.9

6、获取IoT设备列表:通过智能家居协议发现设备,获取用户的设备列表,展示在app/带屏设备上,参考Android DCA文档13.5

7、设置名称/位置同步:如果用户在第三方IoT APP上设置/修改了设备名称(例如空调名称为“我房间空调”),需要调用一次DCA SDK设备名称和位置同步接口,主动同步第三方IoT APP设置/修改的设备名称(参照13.10),同步后才可以通过设备名称精准控制设备,比如“打开我房间空调”

8、设置场景:场景设置有两种方式,一种是客户的IoT平台将已设置的场景通过DUI智能家居协议同步到DUI,用户可以通过“打开+场景名称”触发场景;另外一种方式是调用“快捷指令”的接口(Android DCA文档8.13)完成场景设置,这种方式的好处是用户可以完全自定义场景,并灵活配置触发场景的语句,比如“我回家了”“我要上班了”

 

三、使用说明

3.1 技能授权

对于音箱、电视等智能产品, 要使用DUI智能家居服务,除了要使用思必驰语音服务外,还需要在控制台的语音产品中授权添加智能家居技能。

步骤如下:创建/编辑产品->版本开发->基本配置->打开智能家居开关;开启后“智能家居”技能就添加到您的产品中,如果您已经创建好产品,可以重新编辑产品后保存并发布新版本。

Minion

 

测试技能:对设备说“打开空调“, 一般用户未账号授权时设备会回复“你还没有添加空调,请绑定账号后再试吧”,说明已经命中 『智能家居』技能

 

3.2 集成DCA SDK

智能家居服务使用需要用户完成第三方IoT平台账号授权、IoT设备管理以及设置场景(情景)模式等;对于无屏设备,需要借助设备配套APP完成这些操作,而DCA SDK是用来帮助厂商快速创建接入DUI平台的设备配套app,DCA SDK中集成有智能家居相关的接口和H5页面。对于Android带屏设备例如带屏音箱、智能电视、车载设备等(Linux带屏设备需要配套APP),可直接在带屏设备上集成DCA SDK;文档参考

DCA SDK开发文档(android)

DCA SDK开发文档(ios)

 

Minion Minion

3.3 账号系统接入

智能家居技能服务是使用思必驰账号来进行账号授权,如果使用智能家居技能,则需要接入思必驰账号系统,思必驰提供两种账号系统接入方式:

1)使用思必驰账号系统
2)客户使用自有账号系统

客户根据自己的需求选择账号的接入方式,如果没有账号,建议直接使用思必驰账号

 

思必驰支持客户直接使用自有账号系统,用户在app上无需登录思必驰账号,可以无感知地使用家居技能。具体账号对接流程如下:

1)用户在客户的配套app注册登录,登录成功后客户从自身云端获取该用户的UID和AccessToken;

2)客户调用SDK的账号接口,传入上述的UID和AccessToken;
3)思必驰云端接收客户的UID+AccessToken,并与客户云端互通校验UID和Token(客户需要提供一个校验接口,方便思必驰服务端和客户服务端互通);
4)客户返回给思必驰校验结果后,思必驰基于合法的客户的UID生成思必驰C端账号;
5)思必驰将思必驰C端账号的userID和Token传给DCA SDK,实现SDK登录授权

具体流程参考DCA SDK开发文档(android)DCA SDK开发文档(ios)

3.4 智能家居云对云开放接口

智能家居云对云开发接口采用API Key授权方式,需要在请求的querystring中携带apikey、resourceId、scope参数,其中apikey的获取方式请参考获取API Key方式(创建server产品),resourceId为API Key对应的产品Id,scope固定为dds。

备注:接口请求方式为https

3.4.1 设备名称/位置同步

POST /dcas/v1/applianceAliasSync?userId=xxx&productId=xxx&apikey=xxx&resourceId=xxx&scope=dds
Host: m.duiopen.com
 
body:
{"skillList":[{"skillId":"1234","skillVersion":"3"},{"skillId":"1235","skillVersion":"1"}]}


成功:200 {"result":{"appliances":[{"applianceType":"SOCKET","modelName":"xxxx","alias":"小明","discription":"","manufacturerName":"lifeSmart","actions":["TurnOn","TurnOff"],"friendlyName":"多孔插座","applianceId":"34ea34cf2e64","skillId":"ssss"},{"applianceType":"LIGHT","modelName":"xxxx","alias":"","discription":"","manufacturerName":"lifeSmart","actions":["TurnOn","TurnOff"],"friendlyName":"灯","applianceId":"34ea34cf2egg","skillId":"ssss"},{"applianceType":"SOCKET","modelName":"xxxx","alias":"","discription":"","manufacturerName":"lifeSmart","actions":["TurnOn","TurnOff"],"friendlyName":"单孔插座","applianceId":"34ea34cf2eff","skillId":"ssss"}]},"errId":0}

失败:200 {"errId":"108900","errMsg":"xxx"}
 
参数说明:
userId:       思必驰帐号系统用户Id
productId:    产品Id
skillList:    需要同步的家居技能列表,如果需要训练所有的技能,则请求体为"{}"
apikey:      授权参数,获取方式见本章节开头
resourceId:  apikey对应的产品Id
scope:       固定为dds

注:
当errId为108920时代表部分别名由于格式问题同步失败,仍会返回设备列表

 

四、行业解决方案(酒店)

酒店场景与家居场景不同,每个房间的控制是相互独立的。思必驰支持可以在一个账号下创建多个独立空间(客房),一次同步实现多个空间的独立控制。该方案是基于DUI智能家居流程基础上做的扩展,实现不同房间的空间隔离

1、中控设备在用户语音请求时比如“打开空调”同时上传位置(通过DDS SDK cinfo接口,具体可咨询项目经理)

2、命中智能家居技能后思必驰智能家居云服务获取位置参数例如“1101房间”(思必驰服务内部完成)

3、调用设备发现接口从第三方IoT云服务获取用户的IoT设备列表(包含位置和名称)(思必驰服务内部完成)

4、智能家居云服务根据中控位置参数对IoT设备列表进行过滤,只返回“1101房间”的设备列表,控制时就精准找到了1101房间的空调(思必驰服务内部完成)

 

Q:语音中控设备如何设置位置?

A:这里有很多方法,我这边提供一个方法,通过酒店后台将中控设备SN码与房间号关联,中控设备调用接口获取位置信息,灵活性非常高

 

关联阅读