『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: 姚远

[经验分享] 小度音箱接入hass详细过程

  [复制链接]

69

主题

692

帖子

4185

积分

论坛元老

Rank: 8Rank: 8

积分
4185
金钱
3488
HASS币
80
发表于 2020-4-18 23:43:46 | 显示全部楼层
姚远 发表于 2020-4-18 23:33
我不知道是否理解了你的问题,按照这样的配置,在hass下可以看到havcs.reload,换句话就是havcs在hass下 ...

1、插件安装成功的,服务中有havcs.reload。
2、百度授权也成功了的。
3、你看到的设备是安装你这个图片的方法新配置的,但主配置中没有出现,reload多次,都没有出现。
4、小度音箱有原生支持的设备,也能控制,但我配置的设备没有出现,也无法控制我配置的设备。
5、v3 可能在修改中,还不能使用。原大大可能还来不及搞说明,插件说明很乱,很不清楚。
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
 楼主| 发表于 2020-4-18 23:59:47 | 显示全部楼层
zhenxiwen 发表于 2020-4-18 23:43
1、插件安装成功的,服务中有havcs.reload。
2、百度授权也成功了的。
3、你看到的设备是安装你这个图片 ...

明白了,说白了就是havcs-ui.yaml好像有点问题。前端配置了,这个文件没有改动。这个文件填写的,前端页面也看不见。但是前端页面新增的设备,app是看得见,也可以控制的;原先有的设备,文件里加的,前端页面又看不见的,app不能控制了。如果是这样,要么是这个文件没起作用,起作用的文件不知跑哪去了。又或者前端新增的设备,在这个文件看得见,就是在这个文件里增加的,看不见。这多半是文件里每个设备的第一行那个havcs.xxx什么的有问题。就是在前端配置,这第一行新增的时候也会犯病。
这描述的咋这么乱呢?V3版改进很多,配置好了也好用了。就是绕来绕去的,又要兼顾老版本升级,又要兼顾模式一、模式三的。
回复

使用道具 举报

69

主题

692

帖子

4185

积分

论坛元老

Rank: 8Rank: 8

积分
4185
金钱
3488
HASS币
80
发表于 2020-4-19 14:12:58 | 显示全部楼层
姚远 发表于 2020-4-18 23:59
明白了,说白了就是havcs-ui.yaml好像有点问题。前端配置了,这个文件没有改动。这个文件填写的,前端 ...

也许,但这应该是插件作者才能解决的问题哦,用户解决不了。
回复

使用道具 举报

0

主题

154

帖子

2107

积分

金牌会员

Rank: 6Rank: 6

积分
2107
金钱
1953
HASS币
10
发表于 2020-4-23 22:17:58 | 显示全部楼层
zhenxiwen 发表于 2020-4-19 14:12
也许,但这应该是插件作者才能解决的问题哦,用户解决不了。

重定向的问题我也出现了 ,请问你是怎么解决的?
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
 楼主| 发表于 2020-5-7 09:53:59 | 显示全部楼层
本帖最后由 姚远 于 2020-5-11 09:30 编辑

最近大神升级havcs插件到v3版,很多同学也做好了内网穿透,但在v3版配置和应用时出现了一些问题。这些问题几乎都集中在配置上。所以,在这里特别对v3版模式一(自建插件)的配置做一个说明。以下的配置成功率几乎是百分之百,请v3版的同学参考。
v3版分为了两个方案,方案一和方案二。两个方案的配置略有不同,请同学们首先选择你要使用哪个方案:
配置方案
方案一
hass下的配置
参考:https://ljr.im/articles/plugin-smart-speaker-access-home-assistant-integration-plusplus/,自建技能方式接入
hass configuration.yaml配置如下,不要增加内容,就直接抄到你的configration.yaml文件中。其中clients下面的配置直接抄,不要修改。比如你是小度音箱,就直接抄“duerosxxx: 123456”。这个配置是给方案二使用的,方案一不会发生作用,但也必须在这个位置填写内容。所以,你直接抄下来就好了。
# {HA配置目录}/configuration.yaml
havcs:
  platform: # 音箱平台服务网关,至少启用一个
    - aligenie # 天猫精灵
    - dueros # 小度
    - jdwhale # 叮咚
  http:
    clients: 
      duerosxxx: 123456
      aligeniexxx: 123456
      jdwhalexxx: 123456
  device_config: ui



技能平台的配置
参考:https://ljr.im/articles/plugins-havcs-edible-instructions/,关于自建技能,《方案一 使用HA自带的授权页面》
#方案一 使用HA自带的授权页面

#授权页面网址
https://{你的域名及端口}/auth/authorize

#Token页面网址
https://{你的域名及端口}/havcs/auth/token

#WebService(服务网关)网址
https://{你的域名及端口}/havcs/service

#Client Id
小度:https://xiaodu.baidu.com
天猫:https://open.bot.tmall.com

#Client Secret   随便填写,不做校验
技能平台配置参考
1234.png

方案二
hass下的配置
参考:https://ljr.im/articles/plugin-smart-speaker-access-home-assistant-integration-plusplus/,自建技能方式接入

这里要特别注意clients下面的配置,例如“duerosxxx: 123456”。这个配置是要在音箱技能平台登陆到hass时进行验证的关键值,这与方案一不同。其中“:”前面的对应到client_id,“:”后面的对应clientsecret。所以,在这个配置下,个人可以修改“:”前后的值,并记住这两个值。这两个值只是在音箱技能平台与hass联通时,后台使用。
# {HA配置目录}/configuration.yaml
havcs:
  platform: # 音箱平台服务网关,至少启用一个
    - aligenie # 天猫精灵
    - dueros # 小度
    - jdwhale # 叮咚
  http:
    clients: 
      duerosxxx: 123456                    # 填写自己喜欢的值。比如 duerosjouewjou: 435457103445
      aligeniexxx: 123456                  #                               比如 aligeniejouewjou: 435457103445
      jdwhalexxx: 123456                   #                               比如 jdwhalejouewjou: 435457103445
  device_config: ui



技能平台的配置
参考:https://ljr.im/articles/plugins-havcs-edible-instructions/,关于自建技能,《方案二 使用插件的授权页面》

#授权页面网址
https://{你的域名及端口}/havcs/auth/authorize

#Token页面网址
https://{你的域名及端口}/havcs/auth/token

#WebService(服务网关)网址
https://{你的域名及端口}/havcs/service

#Client Id,hass配置文件clients下面的配置,“:”,之前的部分。比如 duerosjouewjou
与插件(配置文件)所设置的一致

#Client Secret,hass配置文件clients下面的配置,“:”,之后的部分。比如 435457103445
与插件(配置文件)所设置的一致
技能平台参考
1234.png

几点使用说明
havcs的v3版需要几个过程:
1. 启用havcs插件:下载最新版插件到指定目录,按照上面的方案配置configuration.yaml,重启hass;之后,可以在hass页面的左侧栏看到新增的havcs条目。标明启用插件成功。(第一次重启可能报错,再重启即可)
2. 联通技能平台和hass。按照上面的配置方案配置技能平台之后,在技能平台授权、输入hass登陆用户名和密码,系统授权成功。此时说明音箱技能平台与hass已经联通。(有时可能登录hass之后,授权页面迟迟不出来,在技能平台再次授权即可)
3. hass平台的havcs下面新增设备。新增设备,保存,点右下角刷新即可。(如果是在havcs-ui.yaml文件中新增的设备,而在havcs配置页面看不到设备,那就说明配置文件有问题。建议先在havcs配置页面新增一个设备,然后在havcs-ui.yaml中按照新增设备的格式修改原设备的配置)
4. app应用。hass平台下的havcs配置页面新增设备之后,音箱app就能看到新设备了。如果app看不到新设备,那就说明音箱技能平台与hass联通有问题,回到第2步,重新去授权
5. 音箱控制设备。app可以看见设备了,音箱就可以控制设备了。但猫精平台怪怪的,可能还是无法控制设备。此时应该与havcs插件、hass平台无关了,需要检查猫精的音箱配置。建议在app中解绑音箱,然后重新绑定音箱试试看,问题是否可以解决。

建议大家采用方案一,成功率非常高。猫精平台怪怪的,有很多同学采用了方案二。
最后和大家说一下,v3版非常稳定,配置简单,成功率几乎是百分之百。同学们在配置的时候要相信配置方案,不要自己随意混搭、修改。照抄,照抄,照抄!

如果有问题需要解决,请同学们先描述几个问题:
1. 使用大神havcs哪个模式、哪个方案
2. 如果是模式一,需要保证内网穿透是正确的。测试方法是,使用手机,停用wifi,使用https的域名方式,直接访问hass。如果可以,就是穿透成功的。
3. 如果是模式一,需要说明是在hass中配置的auth认证,还是在前面的nginx进行的反向代理。也就是,你的ssl认证在哪里配置的
4. 需要贴出HA configuration.yaml中相关配置。如果是模式二、或者三,请将key等关键内容盖住,或使用一个假字符串代替
5. 如果是模式一,需要贴出智能音箱技能平台的配置。需要将域名和端口号盖住,也可以使用一段假域名、假端口号
6. 描述一下问题
7. 注意,第一次配置havcs插件,重启HA的时候,系统可能会提示,大意是一个外来的、没有经过认证的插件,可能会影响系统。别理它,启动之后系统自己就认了。
经过以上几步描述,一般自己都会发现问题所在了



回复

使用道具 举报

69

主题

692

帖子

4185

积分

论坛元老

Rank: 8Rank: 8

积分
4185
金钱
3488
HASS币
80
发表于 2020-5-11 00:24:48 | 显示全部楼层
姚远 发表于 2020-5-7 09:53
最近大神升级havcs插件到v3版,很多同学也做好了内网穿透,但在v3版配置和应用时出现了一些问题。这些问题 ...

非常感谢你这么认真详细的教程,我换了个系统,小度成功接入了。但是,天猫一直无法接入。天猫精灵平台授权不了,总是弹出:Oauth token 返回不正确,请检查, 3秒后返回设备列表。
这个问题困扰很久,一直没有解决,不知道是什么原因。

天猫精灵授权:Oauth token 返回不正确问题
https://bbs.hassbian.com/thread-9134-1-1.html
(出处: 『瀚思彼岸』» 智能家居技术论坛)
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
 楼主| 发表于 2020-5-11 09:18:55 | 显示全部楼层
zhenxiwen 发表于 2020-5-11 00:24
非常感谢你这么认真详细的教程,我换了个系统,小度成功接入了。但是,天猫一直无法接入。天猫精灵平台授 ...

智能音箱与hass(或是任何其他系统)集成,说简单很简单,你只要按照开发大神的思路去做,一般不会有问题,智能音箱平台的接口也是很稳定很标准的。但是说难,也很难,往往成功率很低,这是因为两个系统打通,中间环节太多、打通的方案也太多了。所以,我们需要谨记两个方面,第一个方面就是相信开发大神的插件和配置文件,第二个方面就是搞清楚自己的两个系统打通方案。有关大神的插件和配置,不多说,上面已经很清楚了,而且我在小度和猫精两个平台、两个方案都测试过,基本没有问题。小度技能逻辑更清晰,一次成功率更高。猫精有点神经病,需要有点耐心,可能需要重复一两次。
主要说的还是打通问题,一般出现问题,有一半原因是这里。
1、首先是内网穿透,如果你小度打通了,说明内网穿透没有问题了
2、再说ssl配置。这里有一个原则,ssl配置在哪里,就在哪里生效。你配制在了homeassistant中,那它就只在这里生效。也就是说你的ssl证书只能在这一个地方使用了。大大限制了一个证书的使用范围。所以,我后来使用了nginx反向代理,把ssl证书放置在路由器之后的nginx中,内网应用再在nginx之后使用。这样你的HA就是内网应用了,所有的配置都按照内网应用进行配置
3、如果你在HA中配置了ssl,那一定会启用HA的auth认证。如果你是在路由器之后,改用nginx反向代理,你的HA配置就要注销掉与网络、auth认证相关的内容。
4、如果你在HA中配置了ssl认证,那么havcs这个插件有个情况,就是一旦你启用了havcs,并且在HA进行了ssl认证的启动,可能插件里有些内容就会发生变化。说人话就是,HA ssl认证+havcs平台+havcs插件,在第一次启动之后,可能就绑定了。可能啊,不一定是这样的,但是你可以测试一下。
  HA configuration.yaml中只配置猫精平台,插件目录删除掉,重新下载、放置havcs插件,你看看猫精是不是可以使用了。然后再把小度平台启用,看看小度平台还能正常使用吗?理论上不行,但是小度平台授权也有点怪,还真就有可能使用了。
5、如果你是在路由器之后立即使用了nginx反向代理,HA配置文件也没有网络相关、auth相关的配置,小度可以使用,猫精还不能使用,那你就可以肯定,两个系统打通没有问题,是猫精插件、技能平台配置问题了。
说这么多,就是告诉同学们,不要乱,定位准问题所在。
回复

使用道具 举报

69

主题

692

帖子

4185

积分

论坛元老

Rank: 8Rank: 8

积分
4185
金钱
3488
HASS币
80
发表于 2020-5-11 22:06:44 | 显示全部楼层
本帖最后由 zhenxiwen 于 2020-5-11 22:29 编辑
姚远 发表于 2020-5-11 09:18
智能音箱与hass(或是任何其他系统)集成,说简单很简单,你只要按照开发大神的思路去做,一般不会有问题 ...

我原来直接在configuration.yaml 中设置ssl和证书,后来用ha官方NGINX插件做代理,现在是用群晖做反向代理。
你说的:把ssl证书放置在路由器之后的nginx中,内网应用再在nginx之后使用。是什么意思,我不太明白,要怎么设置才可以这样。

另外,我觉得大神的这个插件是有bug的,经常出现下面这个页面指向错误,或者是月某个其他插件冲突,当我把全部packages关掉,就能正常显示,或者有时重启ha几次莫名其妙又自己好了:

havcsV3没有设备出现.JPG
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
 楼主| 发表于 2020-5-12 17:31:11 | 显示全部楼层
本帖最后由 姚远 于 2020-5-12 17:33 编辑
zhenxiwen 发表于 2020-5-11 22:06
我原来直接在configuration.yaml 中设置ssl和证书,后来用ha官方NGINX插件做代理,现在是用群晖做反向代理 ...

大神在v3启用了页面配置。HA侧边栏配置要求,提供一个url,以便显示右边设备设置的页面。这个指向url,一定是havcs插件内部做好了设定。而你这问题现象,就是破坏了havcs内部设定的url,而是指向了HA的主页。这里可能出现问题的就是havcs-->http-->ha_url这个设置。
基本知道你的配置情况了。有可能这几个点出问题了,
1. 如果之前在ha使用了ssl认证,或按照官网nginx配置了些东西,configuration.yaml文件中可能有如下配置:
homeassistant:
  #auth_providers:
  #  - type: homeassistant
  #  - type: trusted_networks
  #    trusted_networks:
  #      - 192.168.0.0/24
  #      - 127.0.0.1
#http:
#  base_url: hassbj.beexecllent.top
#  ssl_certificate: /home/pi/ssl_keys/cert.pem
#  ssl_key: /home/pi/ssl_keys/cert.key
需要全部注释掉。在内网应用时,这些配置是不需要的,直接使用configuration默认设置就可以了。做了nginx反代之后,HA就是内网应用
2. havcs中的设置,一定要像我上面的设置一样,尤其是“ha_url”这一行要注掉
# {HA配置目录}/configuration.yaml
havcs:
  platform:                               # 音箱平台服务网关,至少启用一个
    - aligenie                            # 天猫精灵
    - dueros                              # 小度
    - jdwhale                             # 叮咚
  http:
    clients:                              # 音箱平台客户端认证信息,其节点下的键值对代表"client_id: client_secret",其中client_id起始字符会匹配音箱平台,音箱平台上设置要与此处设置一致
      dueros{自定义字符}: {自定义密码}      # 小度平台认证信息,样例:duerosdemo:123 代表client_id为duerosdemo,client_secret为123
      aligenie{自定义字符}: {自定义密码}    # 天猫精灵平台认证信息,样例:aligeniedemo:123 代表client_id为aligeniedemo,client_secret为123
      jdwhale{自定义字符}: {自定义密码}     # 叮咚平台认证信息,样例:jdwhaledemo: 123 代表client_id为jdwhaledemo,client_secret为123
#      use_ha_auth_html: 123               # 如果不使用插件授权页面,随意设置一个键值对
#    ha_url: http://localhost:8123         # HA主机本地访问地址,如果HA没配置base_url(http:组件里),可自动识别不用设置;否则设置# http://localhost:{端口号} 或 https://localhost:{端口号}(HA启用ssl)
#    expire_in_hours: 24                   # token超时时间,单位小时,不设置则默认24h
  device_config: ui  



回复

使用道具 举报

69

主题

692

帖子

4185

积分

论坛元老

Rank: 8Rank: 8

积分
4185
金钱
3488
HASS币
80
发表于 2020-5-12 23:19:03 | 显示全部楼层
姚远 发表于 2020-5-12 17:31
大神在v3启用了页面配置。HA侧边栏配置要求,提供一个url,以便显示右边设备设置的页面。这个指向url,一 ...

这些插件可靠性太差,成功不成功好像全靠运气,台折腾了,没意思。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-24 04:42 , Processed in 2.550334 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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