【 开发指南 】智能家居技能,持续更新_18.08.15
DuerOS-河童 发布于2018-08-08 22:17 浏览:6889 回复:15
5
收藏

目录

一、教学视频

二、整体架构

三、开发步骤&资料整理

四、常见问题解答

(持续更新,最近更新 2018.08.15)

五、智能家居文档 树状提纲

 

—————————————————————————————————————————————

 

一、教学视频 


>>点击观看<<

 

 

二、整体架构

面向 智能设备厂商 的技能类型

 

智能家居技能让用户通过语音来控制智能设备,查看设备的状态,如控制开灯、关灯。智能家居技能还支持 智能场景 的设置。

开发者仅需参照智能家居协议,实现授权及通讯,即可接入DuerOS设备云,成为受控设备。

 

当用户发出语音指令时,DuerOS解析出用户的意图,然后向技能发送该意图相应的指令。技能收到指令时,对设备进行相应的操作。

参见文档:

https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/smart-home-skill/intro-smart-skill_markdown

 

 

三、开发步骤

 

前期准备

1、开发者认证

2、创建智能家居技能

流程详见文档:

https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/smart-home-skill/create-smart-skill_markdown

 

3、配置OAuth 2.0 账号关联

4、配置设备云服务地址

 

开发步骤

1、学习Smarthome协议

https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/intro-protocol_markdown

 

2、填写技能基础信息

3、配置服务授权信息

4、根据Smarthome协议进行开发

设备发现

设备控制

设备查询

异步上报

5、模拟测试

6、申请发布

7、录制视频OR寄送设备,等待审核上线

8、版本迭代管理

 

详细步骤参见文档:https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/smart-home-skill/create-smart-skill_markdown

 

开发资料

技术文档:https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/smart-home-skill/intro-smart-skill_markdown

技术课堂:https://dueros.baidu.com/didp/news/technicalclass?id=dbp

开发协议:https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/intro-protocol_markdown

 

 

四、常见问题解答

 

如何搭建DuerOS智能家居系统

 

中控设备(如:小度音箱、小度在家等)

通过 设备开放平台,将设备接入DCS-SDK,具有DuerOS的对话AI能力;

 

受控设备(如:智能灯、空调等)

通过 技能开放平台,创建“智能家居技能”,只需授权设备信息和轻量化开发,即可轻松实现智能家居的指令控制;

 

 

智能家居技能支持哪些功能?

开关控制:打开、关闭电灯等

调控功能:调节房间的亮度、温度和湿度,或调整冰箱温度等

设备操控:播放家电娱乐设备、切换电视频道、调整音量大小、电视快进和回访等控制

智能场景:智能场景是指一些智能设备的组合使用,把多个智能设备调到预先设定好的状态。如用户使用睡眠场景时,智能家居技能会调暗灯光、关上窗帘。

 

目前可控制的设备类型和指令?

设备类型:

灯、空调、空气净化器、热水器、洗衣机、窗帘、插座、场景控制、电视、电风扇、加湿器、扫地机器人、取暖器、烤箱、微波炉、电饭煲、压力锅、烹饪机、破壁机

 

控制功能及示例指令:

 

 

有哪些成功的合作案例?目前哪些设备已可以被DuerOS控制?如何购买?

 

1、成功案例: Broadlink、小葱智能、LifeSmart、涂鸦智能、时在智能、咖浦智能…

 

2、查看已接入设备及购买方式

下载并打开 小度在家\小度音箱\...app

进入“智能家居”板块,点击“查看可以控制哪些设备”

选择所需的设备类别,即可查看可控的品牌和型号,点击所需商品将会跳转至相应的购买链接

 

用户如何使用 智能家居技能?

 

将中控设备(如:音箱)和被控设备(如:灯)成功联上WIFI

“技能商店”里启用技能,并登陆授权账号

即可通过“小度小度,打开灯”等语音指令进行控制;

 

有哪几种“发现设备”的方式?

 

法① 用户启用技能,并登陆授权时,DuerOS会自动拉取用户的设备列表

法② 为开发者提供用户设备的接口,开发者可以主动向DuerOS推送用户设备的更新列表数据;

参照文档:https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/discovery-message_markdown

 

法③ 用户也可以通过“小度小度,发现设备”的语音指令,来主动更新设备列表

 

开发实现&图示

支持设备的新增或名称的改变,可通过同步更新(A-B)异步更新(1-2-3)的方式来实现。

 

 

如何区分多台同类的设备?如:客厅灯、卧室灯

 

多个同类型的设备(如:多个灯),支持用户通过开发者\厂商的app来设置每个设备名称(如:客厅灯);

 

开发配置

设备名称

通过 discoveredAppliance.friendlyName字段,来传递用户设置的设备名称

是字符串类型,不能包含特殊字符和标点符号,长度不能超过128个字符。

 

分组控制

结构化同步厂商分组信息,支持以下表达

引导、澄清

1、当用户的表达指向多个设备,我们想办法引导用户明确表达

按设备名称澄清:“打开台灯还是床头灯?”

补充房间信息澄清:“打开卧室的灯还是客厅的灯?”

2、多个设备请用户表达设备名称

3、无法分辨引导用户改名

 

 

用户使用

1、用户如果为各设备设置了不同的名称但在表述时只是说了“小度小度,打开灯”

音箱会与用户确认“请问您要打开哪个灯?”

 

2、用户如果没有配置不同名称,则在控制时,会对所有的同款设备进行控制;

 

 

工作原理 & 技能调用流程

 

技能工作原理

 

技能调用方式

 

开发是否需要使用BOT-SDK?

智能家居无需考虑NLU的具体实现,不用使用BOT-SDK;只需参照智能家居协议进行开发即可。

 

如何填写 配置服务 的授权内容?

 

授权目的:授权DuerOS将识别后的控制指令,发给开发者的服务器或设备云。

 

授权内容说明

授权地址:开发者授权DuerOS访问的服务器或设备云地址,需遵守OAuth 2.0标准(打通百度账号和自有账号)。

Client_Id:开发者分配给DuerOS SH的Client_ID

ClientSecret:开发者分配给DuerOS SH的密钥

Scope:获取的用户数据的权限列表(名称,头像,年龄,性别…),多个权限之间请使用空格进行分开。

回调地址:每个技能创建时,在开放平台上生成的唯一URL地址,该地址不能修改。

Token地址:用于获取开发者的Access Token,以便DuerOS访问他们的服务器。需要遵守OAuth 2.0标准协议。

请求方式:Access Token的请求方式。

WebService:智能家居设备的设备云服务部署地址。

 

当前平台不支持的设备类型或控制指令,要如何设置?

平台暂时不支持开发者自行扩充,如有相关的需求,可联系我们补充优化相关的功能。

商务沟通邮箱:dueros-bd@baidu.com ,标题注明:【智能家居】

 

 

智能家居技能模拟测试\真机测试步骤?

  1. 创建技能
  2. 在平台完成配置服务授权(DuerOS与开发者的设备云、App账号等打通)
  3. 在开发者的APP里成功登陆并授权账号;

 

模拟测试

1、在平台右侧对话测试框内,输入“发现设备”,会反馈提示“正在查找设备,需要xx秒”

2、成功发现设备后,即可输入控制命令(如:打开灯),来操控绑定的设备;

 

真机测试

1、进入真机测试页面,点击启用

2、在真机设备上登录同一个百度账号

3、通过语音输入“小度小度,打开技能调试模式”进入技能;

4、可以通过“小度小度,发现设备”来更新可控设备列表,通过语音控制指令,测试控制智能家居。

 

 

如何发布上线智能家居技能?审核和视频录制有哪些要求?需要提供哪些资料?

 

申请上线:

技能开发完成,并通过模拟测试验证后,即可填写技能相关信息,在平台上申请发布上线;

 

录制视频:

技能提交申请上线后,DuerOS会进行技能的审核。

为了尽快通过审核,请录制设备控制视频,内容需包含主控和所有被控设备,需要可以成功控制被控设备的相关功能项。


视频请发送至 xudandan02@baidu.com

邮件格式:

邮件标题:【技能审核】待审核技能名称
邮件正文:正文需注明待审核技能ID,视频文件可使用附件或者网盘链接的形式发送

 

设备寄送(可选):

将技能中涉及的所有智能家居设备和设备相关使用文档邮寄给DuerOS,以便DuerOS审核该技能;

寄送前需将设备与开发者账号授权绑定完成,并在使用文档中提供对应的账号和密码。

 

寄送信息:

通讯地址:北京市海淀区西北旺东路10号院百度科技园4号楼

收件人:张忠琦

联系电话: 18521725422

 

正式发布上线的技能,将会在哪里显示?

小度音箱 等无屏音箱

针对无屏音箱等设备,可以使用 小度音箱\厂商自有 app

“智能家居” 里查看并启用已上线的智能家居技能;

 

小度在家 等有屏设备

小度在家\厂商自有app——发现更多——智能家居

小度在家设备内——更多——智能家居

 

 

亮度\风速…等是否支持设置成50%的程度值,是否提供相应的接口信息?

 

支持亮度等程度值的设定。以亮度为例,使用value参数,可控制灯光亮度的百分比值

为double类型,取值范围为0~100。其中0表示灯在打开时的最小亮度,100表示灯的最大亮度。

 

详情可参考 智能家居控制协议——控制消息:

https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/control-message_markdown

 

 

是否支持场景模式?如何自定义?

 

支持用户\开发者通过开发者\厂商的app来自定义场景模式的名称和功能;

 

开发配置:

通过SCENE_TRIGGER来触发场景模式控制;SCENE_TRIGGER 描述特定设备的组合场景

设备之间没有相互关联,无特定操作顺序。例如“打开睡眠模式”包括关灯和锁上房门,但是关灯和锁上房门之间没有必然联系,可以先关灯然后锁上房门,也可以先锁上房门后关灯。

使用 friendlyName字段,来传递场景模式的名称;

 

控制灯光颜色,使用的是什么色彩模式?

DuerOS采用的是HSB其中H代表色相;S代表饱和度;B代表亮度。;

 

设备名称出现ASR识别错误,要如何修正?

DuerOS会通过数据训练和算法升级不断优化ASR识别情况,也欢迎各位开发者为我们提供建议和需求一同优化技能体验。

如有识别率较低的词句,欢迎将此类例子及常见表达方式或误识别结果反馈给我们,定向的做泛化提优。

 

五、智能家居文档 树状提纲

 

 

收藏
点赞
5
个赞
共15条回复 最后由kingphosphor回复于2019-06-26 12:13
#2jiuzhou_dianqi回复于2018-08-14

1.现在场景只支持打开和关闭吗?是否支持设计触发条件?

 

2.发现设备时,每个属于场景模式下的设备都需要封装一次场景模式的数据结构吗?

 

3.DuerOS收到控制场景模式的命令时,是按设备分条请求控制指令吗?

0
#3DuerOS-河童回复于2018-08-15
#2 jiuzhou_dianqi回复
1.现在场景只支持打开和关闭吗?是否支持设计触发条件? 2.发现设备时,每个属于场景模式下的设备都需要封装一次场景模式的数据结构吗? 3.DuerOS收到控制场景模式的命令时,是按设备分条请求控制指令吗?
展开

1.现在场景只支持打开和关闭吗?是否支持设计触发条件?

目前不支持触发条件

 


2.发现设备时,每个属于场景模式下的设备都需要封装一次场景模式的数据结构吗?

不用,只发所有的设备关联的场景

 

3.DuerOS收到控制场景模式的命令时,是按设备分条请求控制指令吗?

不是,是下发场景控制指令,具体的设备控制需要设备云支持

 

具体可参考DBP平台智能家居相关技术文档

https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/discovery-message_markdown

 

0
#4howenwind回复于2018-08-28
1、请问DuerOS中智能家居技能,有支持网络摄像机和智能锁的设备类型或控制指令吗?
2、如果没有,请问要如何实现用小度音箱控制网络摄像机和智能锁呢?
1
#5jiangyou001回复于2018-09-22

uiot 的 摄像头设备,可以联动 小度

0
#6cst1718回复于2018-10-23

1.自有app如何与自有智能家居关联?是通过配置服务中的client_id还是上线成功之后会在设备控制台中的云端能力中启用?
2.DuerOs收到智能云回复的指令之后,返回给app端的指令目前除了voice_output之外,还有其他的诸如srceen或者hint吗,没有的话如何获取到语音对应的文本

0
#7943200288回复于2018-10-23

终于找到这个有用的帖子了

0
#8130******02回复于2019-05-09

已经上架的skill如何才能修改授权配置信息呢?

 

0
#9龙城飞将Can回复于2019-05-23

最近要做一个小度控制智能家居设备的功能。看到这个帖子,有几个疑问,想确认一下,

1)小度在这个场景中是提供语音识别以及触发指令的角色,实际控制设备的操作是由我们自己开发?

2)如果是这样,那查询消息(Query Message)主要是通过智能家居设备查询空气质量、查询空气湿度、查询设备温度、查询设备状态等信息。目前支持以下查询消息。这些操作也是要用户自己开发吗?

3)小度应该可以直接控制设备了吧,为什么还需要用户开发自定义的服务呢?

 

目前看到这个帖子后,有点理解也有些困惑。还望知道的解答一下。

急,在线等!!

0
#10ZhuKunlu回复于2019-05-24

@龙城飞将Can

1)小度在这个场景中是提供语音识别以及触发指令的角色,实际控制设备的操作是由我们自己开发?是的

2)如果是这样,那查询消息(Query Message)主要是通过智能家居设备查询空气质量、查询空气湿度、查询设备温度、查询设备状态等信息。目前支持以下查询消息。这些操作也是要用户自己开发吗?是的

3)小度应该可以直接控制设备了吧,为什么还需要用户开发自定义的服务呢?开发智能家居技能,需要在创建技能的时候,就选择智能家居技能,而不是自定义技能。

0
#11ZhuKunlu回复于2019-05-24

@130******02

已经上架的skill如何才能修改授权配置信息呢?直接在控制台上的这个页面设置:授权信息配置。

0
#12龙城飞将Can回复于2019-05-24

Token地址:用于获取开发者的Access Token,以便DuerOS访问他们的服务器。需要遵守OAuth 2.0标准协议。  我们需要提供refresh_token接口不?没看到有地方让我们设置

0
#13龙城飞将Can回复于2019-05-25

哪位知道发现设备时,如何组装ACTIVITY_TRIGGER,SCENE_TRIGGER这些组合场景的操作?
比如回家模式这个场景中,我要打开空调,打开窗户,这些信息要如何封装呢?
DiscoverAppliancesResponse中没有看到这部分信息的封装

0
#14龙城飞将Can回复于2019-05-26

面板类开关,假如有多路开关的,比如一个面板有4路开关,要对其中某一路进行控制,应该如何操作?

0
#15龙城飞将Can回复于2019-05-30

智能家居技能,现在有一个需求,需要在用户说小度小度,打开XXX的时候,打开某个指定的相关网页。

不知道这个需要怎么支持呢?最好还要有跟云端的交互,因为不同的用户打开的页面是不一样的。

0
#16kingphosphor回复于2019-06-26

创建了智能家居技能,oauth认证授权已经通过,但是设置的设备云未收到任何来自DuerOS的访问请求,在模拟测试的地方输入“小度小度,发现设备”,设备云也收不到发现设备的请求。

设备云需要什么特殊的设置么?还是其他什么问题影响了这个过程?

这个问题已经卡了一段时间了,换了百度的oauth服务,也是同样的问题,在群里问也没有什么回应

或者能不能提供一个设备云Demo让我们部署到自己的服务器测试一下啊??

0
TOP