请选择 进入手机版 | 继续访问电脑版

『瀚思彼岸』» 智能家居第一站

 找回密码
 立即注册
查看: 1472|回复: 26

[进阶教程] 小度音箱 百度Dueros接入Homeassistant支持

[复制链接]

9

主题

233

帖子

1039

积分

论坛分享达人

积分
1039
金钱
801
HASS币
0
发表于 2018-6-14 21:58:49 | 显示全部楼层 |阅读模式
本帖最后由 huex 于 2018-6-14 21:58 编辑

百度Dueros接入homeassistant


小度音箱,官方基本采用猫精的办法云端控制,目前已经接入了几家,包括博联和yeelight,看开发群里也有不少装要支持的,看到gayhub有提供dueros的homeassistant代码,基本跟猫精差不多,所以就在这里啰嗦一下,感谢代码提供者https://github.com/Deschanel/DuerSmartHome!

接入过程基本跟猫精类似,确保你的HASS外网SSL,授权oauth,配置duerosgate


一,OAUTH认证部分

从https://github.com/Deschanel/DuerSmartHome下载后
修改serverDuerOS.php中的dbname、host、username和password!
修改homeassistant_conf.php中的地址和密码,注意格式https://domain.xxx.xxx:端口!

1. 插入数据库

CREATE TABLE oauth_clients (
  client_id             VARCHAR(80)   NOT NULL,
  client_secret         VARCHAR(80),
  redirect_uri          VARCHAR(2000),
  grant_types           VARCHAR(80),
  scope                 VARCHAR(4000),
  user_id               VARCHAR(80),
  PRIMARY KEY (client_id)
);

CREATE TABLE oauth_access_tokens (
  access_token         VARCHAR(40)    NOT NULL,
  client_id            VARCHAR(80)    NOT NULL,
  user_id              VARCHAR(80),
  expires              TIMESTAMP      NOT NULL,
  scope                VARCHAR(4000),
  PRIMARY KEY (access_token)
);

CREATE TABLE oauth_authorization_codes (
  authorization_code  VARCHAR(40)     NOT NULL,
  client_id           VARCHAR(80)     NOT NULL,
  user_id             VARCHAR(80),
  redirect_uri        VARCHAR(2000),
  expires             TIMESTAMP       NOT NULL,
  scope               VARCHAR(4000),
  id_token            VARCHAR(1000),
  PRIMARY KEY (authorization_code)
);

CREATE TABLE oauth_refresh_tokens (
  refresh_token       VARCHAR(40)     NOT NULL,
  client_id           VARCHAR(80)     NOT NULL,
  user_id             VARCHAR(80),
  expires             TIMESTAMP       NOT NULL,
  scope               VARCHAR(4000),
  PRIMARY KEY (refresh_token)
);

CREATE TABLE oauth_users (
  username            VARCHAR(80),
  password            VARCHAR(80),
  first_name          VARCHAR(80),
  last_name           VARCHAR(80),
  email               VARCHAR(80),
  email_verified      BOOLEAN,
  scope               VARCHAR(4000),
  PRIMARY KEY (username)
);

CREATE TABLE oauth_scopes (
  scope               VARCHAR(80)     NOT NULL,
  is_default          BOOLEAN,
  PRIMARY KEY (scope)
);

CREATE TABLE oauth_jwt (
  client_id           VARCHAR(80)     NOT NULL,
  subject             VARCHAR(80),
  public_key          VARCHAR(2000)   NOT NULL
);

2. 认证信息

插入client_secret client_id callback 等

insert into oauth_clients (client_id, client_secret, redirect_uri) VALUES ("your clientid", "your secret", "your callback address这个地址就是你在百度里面的回调地址
");

your callback address这个地址就是你在百度里面的 回调地址 下段DUEROS的图中红框展示的地址就是 oauth.png

3. gateDuerOS.php

gateDuerOS.php为配置设备部分。找到对应的段落,
修改applianceTypes 设备类型目前只有支持light,switch,mediaplayer
applianceId为你的hass设置entity id,
其它部分对应修改即可,注意两设备代码括号之间的','间隔

                                array(
                                        "actions"  =>  array("turnOn", "turnOff"),
                                        "applianceTypes"  => array("LIGHT"),
                                        "additionalApplianceDetails"  =>  array(),
                                        "applianceId"  =>  "light.lampaisle",
                                        "friendlyDescription"  =>  "过道灯",
                                        "friendlyName"  =>  "过道灯",
                                        "isReachable"  =>  true,
                                        "manufacturerName"  =>  "Nodemcu",
                                        "modelName"  =>  "fancyLight",
                                        "version"  =>  "1.0"
                                )

4. oauth2-server-php文件

从https://codeload.github.com/bshaffer/oauth2-server-php 下载文件,放到同目录列表如下

20180614213441.png


二、百度DUEROS部分

小度音箱支持百度智能dueros,所以我们只需增加dueros技能就可以了
https://dueros.baidu.com/dbp

登入后创建新技能-智能家居

授权信息配置对应下图填写

dueros.png

进入模拟测试

输入
'''
打开  ”家庭助手“
zs.png
输入

发现设备

然后就会展示在gatedueros里添加的设备了

sb.png

完成设备的发现,后面直接就可以在小度里面控制了
效果如下

TIM图片20180614215649.png

三、其它

从接入手段,所以认为基本跟天猫一样,论坛的大佬们是否也弄个论坛接入呢?另外好像申请开发者可以使用百度的web server,这样一来我们只需要做HA外网SSL就行了

关于HA的SSL,大家可以使用nginx ssl来转发就行了,这样可以避免域名证书的问题,官方有nignx ssl proxy ha的介绍
写得比较简陋,有不对的地方大神轻喷






评分

参与人数 3金钱 +50 收起 理由
咸味土豆 + 10
windgo + 10 膜拜大神!
Jones + 30 膜拜大神!

查看全部评分

回复

使用道具 举报

73

主题

2115

帖子

6769

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
6769
金钱
4629
HASS币
34
发表于 2018-6-14 22:18:29 | 显示全部楼层
可以考虑来个论坛接入,不过现在用户估计没多少吧!~
回复

使用道具 举报

0

主题

47

帖子

210

积分

中级会员

Rank: 3Rank: 3

积分
210
金钱
163
HASS币
0
发表于 2018-6-14 23:38:09 | 显示全部楼层
Jones 发表于 2018-6-14 22:18
可以考虑来个论坛接入,不过现在用户估计没多少吧!~

jones 如果论坛接入,我就去买个带屏幕的
回复

使用道具 举报

8

主题

345

帖子

1026

积分

论坛分享达人

积分
1026
金钱
681
HASS币
0
发表于 2018-6-15 00:17:49 来自手机 | 显示全部楼层
好像猫精啊,
回复

使用道具 举报

33

主题

245

帖子

1060

积分

金牌会员

Rank: 6Rank: 6

积分
1060
金钱
810
HASS币
0
发表于 2018-6-15 08:17:11 来自手机 | 显示全部楼层
牛逼牛逼牛逼
回复

使用道具 举报

33

主题

245

帖子

1060

积分

金牌会员

Rank: 6Rank: 6

积分
1060
金钱
810
HASS币
0
发表于 2018-6-15 08:18:17 来自手机 | 显示全部楼层
这个貌似可以自定义名称,比天猫好(✪▽✪)
回复

使用道具 举报

13

主题

134

帖子

576

积分

论坛分享达人

积分
576
金钱
442
HASS币
0
发表于 2018-6-15 09:44:31 | 显示全部楼层
潜力贴, 如果小度可以自定义设备名称, 体验会好很多
回复

使用道具 举报

9

主题

233

帖子

1039

积分

论坛分享达人

积分
1039
金钱
801
HASS币
0
 楼主| 发表于 2018-6-15 11:30:39 | 显示全部楼层
w_anghe 发表于 2018-6-15 09:44
潜力贴, 如果小度可以自定义设备名称, 体验会好很多

可以自定义的
回复

使用道具 举报

13

主题

134

帖子

576

积分

论坛分享达人

积分
576
金钱
442
HASS币
0
发表于 2018-6-15 16:00:37 | 显示全部楼层

楼主测试小度好不好用? 唤醒距离,唤醒率情况如何?
回复

使用道具 举报

12

主题

584

帖子

1615

积分

金牌会员

Rank: 6Rank: 6

积分
1615
金钱
1021
HASS币
0

活跃会员

发表于 2018-6-15 18:36:41 | 显示全部楼层
Jones 发表于 2018-6-14 22:18
可以考虑来个论坛接入,不过现在用户估计没多少吧!~

我有,。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2018-7-20 01:23 , Processed in 0.245635 second(s), 43 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表