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

 找回密码
 立即注册
查看: 15292|回复: 14

[进阶教程] 【群晖docker】搭建hass+小度接入+设备接入等一站式教程

[复制链接]

15

主题

135

帖子

557

积分

高级会员

Rank: 4

积分
557
金钱
422
HASS币
0
发表于 2020-4-3 13:11:26 | 显示全部楼层 |阅读模式
本帖最后由 coli06 于 2020-4-5 22:09 编辑

·前言·


入坑home assistant也有几天了,这几天从入门到入坑,前前后后翻遍了hass论坛的所有帖子,终于是把hass搭建起来了。论坛里比较多的是基于树莓派搭建的,用群晖的相对较少,写这个帖子有两个目的:一是为了记录过程,方便以后再搭建时参考;二是作为一个分享,将各类教程进行一站式整合,并标注入坑注意事项。帖子会不定期更新。

理论上来说,如果你也是群晖搭建,也是较新的hass版本,一步一步按照下面相关的教程方法来做,几乎可以避开很多坑,一切都会顺利的多

过程总结:善用百度翻译、百度搜索及论坛搜索功能,你会发现,一切都会容易许多!



·内容索引·
1、群晖配置及网络配置等基础信息
2、docker+hass+mqtt+esphome安装
3、hass中hacs前端插件商店安装
4、小度智能音箱接入hass平台
5、斐讯DC1插座刷固件接入hass平台
6、控客小K智能插座接入hass平台
7、易微联设备接入hass平台
8、让homekit在外网也能控制
9、hass里设置自动化,实现插座定时开关10、向日葵插座(esp8266)刷固件接入hass





+++【1】群晖配置及网络配置等基础信息+++

我的群晖是使用华擎N3150B-ITX搭建的黑群晖,群晖版本是x3167的6.1.7版本。路由器是K3刷的梅林固件,已经设置好公网IP(需要外网控制或要接入智能音箱自建技能时得用到)

白群晖请自行购买,黑群晖搭建请自行百度(推荐隔壁网论坛和那是云论坛),开通公网IP及端口转发等也请自行百度!




+++【2】docker+hass+mqtt+esphome安装+++

一、docker+hass+mqtt的安装

参考教程:https://bbs.hassbian.com/thread-6062-1-1.html
下载教程备份: [基础教程] 黑群晖DOCKER版 homeassistant+homekit+mqtt 超详细小白教程.pdf (1.85 MB, 下载次数: 151)

在开启hass原生支持homekit时,可以使用notepad++这个软件来编辑yaml配置文件
我安装的hass版本号是0.107.7,下文之后所有的设备配置都是基于这个版本的hass进行操作的!

二、esphome主要用于接入diy的基于esp8266无线模块的设备,安装比较简单,按照下方步骤来做即可:
参考教程:https://bbs.hassbian.com/thread-6870-1-1.html   
下载教程备份: [经验分享] 群晖docker安装ESPHOME及简单配置.pdf (259.24 KB, 下载次数: 64)

1、在docker中搜索esphome,直接选择第一个最多人下载的下载就可以,版本选择默认的laste就行。下载完后,去映像中启动一个esphome容器。
2、在创建容器的高级设置里做以下几项设置修改:
     ①勾选高级设置里的“启用自动重新启动”选项;
     ②在网络那项中,勾选左下角的“使用与docker hosts相同的网络”;
     ③点击右下角的应用,然后一路下一步直到创建完成。此时通过群晖dsm的IP:6052就可以访问并打开esphome界面了(后续研究成功esp8266diy插座后再附上esphome的详细教程,大家也可以利用论坛搜索功能去了解esphome)



+++【3】hass中hacs前端插件商店安装+++

参考教程:https://bbs.hassbian.com/thread-7481-1-1.html
下载教程备份: [基础教程] 不需要hassio也可以有插件仓库了.pdf (285.71 KB, 下载次数: 84)

首先需要去https://github.com/custom-components/hacs/releases/latest下载插件文件,解压缩放到/config/custom_components/hacs里面
我也打包了一份我的插件,也可以用这份去装: hacs插件商店.zip (169.83 KB, 下载次数: 48)
然后需要去
https://github.com/settings/tokens登录,申请一个tokens(原教程的github网址打开错误,请用这里的这个去打开申请)
11.jpg
22.jpg
33.jpg
最后要在configuration.yaml配置文件中添加以下代码:
logger:
hacs:
  token: github_token  #此处填写刚从github获得的那串token
保存,并重启hass服务,然后左侧就会出现一个新菜单入口,如果没有的话,请到配置—集成的右下角加号里搜索HACS来手动添加
第一次进入应用商店会比较慢,请耐心等待。



===【4】小度智能音箱接入hass平台===
参考教程1:https://bbs.hassbian.com/thread-9309-1-1.html
参考教程2:https://bbs.hassbian.com/thread-5417-1-1.htmlhttps://bbs.hassbian.com/thread-4905-1-1.html

教程1和教程2是两种完全不同的方案,请自行选择合适的方案进行接入。教程1支持小爱、天猫、小度和叮咚等音箱,同时也提供了多种接入模式可选,相对来说比较简单。
教程2是基于小度音箱来做的,我采用的就是教程2的方案,教程2这个方案是自建小度技能,数据什么的都在自己这里,没有通过别的平台传输,相对比较安全,也比较稳定。
下面说一下教程2在基于群晖的hass平台中接入时要注意的几个要点
1、你需要有一个域名和域名对应的ssl域名证书,我使用的是腾讯云注册的域名,在后台申请1年期免费证书,并下载下来,解压后它有多个文件夹,选择nginx文件夹里的xxx.crt和xxx.key这两个文件,复制到/docker/homeassistant/cert文件夹里(cert文件夹需要自己创建),并将xxx.crt改名为xxx.pem
Snipaste_2020-04-03_17-00-09.jpg

2、打开群晖的ssh功能,启动群晖自带的nginx服务和设置反向代理
(此方法适用于群晖系统版本是6.2.1之前的,之后的版本请参考教程2的第二个链接)
(登录群晖dsm—控制面板—终端机和SNMP—启动SSH功能—应用),然后通过putty软件远程登录群晖(putty软件请百度下载)
Snipaste_2020-04-03_18-44-52.jpg

3、然后输入下面的代码,编辑Portal.mustache文件(直接复制粘贴进去)
vim /usr/syno/share/nginx/Portal.mustache
此时界面会自动打开该文件,通过键盘的上下左右光标键将光标移动到下图红圈处,然后按下键盘A键(英文状态下)进入编辑模式
Snipaste_2020-04-03_17-11-25.jpg
按上图操作,将下面的代码复制粘贴进去,然后按下键盘的Esc键,再输入”:wq“,回车,进行保存
        proxy_set_header        Upgrade             $http_upgrade;
        proxy_set_header        Connection          "upgrade";
Snipaste_2020-04-03_17-14-38.jpg

退出编辑后,输入下方代码,重启下nginx服务
sudo synoservicecfg --restart nginx
Snipaste_2020-04-03_17-18-32.jpg

完成上述操作后,再去群晖控制面板里设置一个反向代理,将https的访问代理到hass端口去,参照下图操作:
Snipaste_2020-04-03_17-21-57.jpg

4、在路由器中设置端口转发,将外网6001端口转发到内网6001端口,不然外网没办法访问。
注意:自此,hass平台就需要通过https://域名:6001/进行访问了,原有的IP地址访问的方式好像就不行了

5、在群晖里添加ssl证书,并配置给6001端口的域名
打开控制面板——安全性——证书,新增证书,选择“添加新证书——导入证书”,导入刚才放到hass文件夹里的xxx.crt和xxx.key证书
Snipaste_2020-04-03_17-48-41.jpg
接着选中刚添加的证书,点击“配置”,将其配置到6001端口
Snipaste_2020-04-03_17-50-02.jpg

6、去小度DuerOS开放平台创建小度技能https://dueros.baidu.com/open
Snipaste_2020-04-03_17-26-49.jpg
Snipaste_2020-04-03_17-27-02.jpg
选择智能家居类别的技能,然后设置一个名字,确定,就会跳转到技能配置页面,按照下图配置即可:
Snipaste_2020-04-03_17-31-23.jpg
设置好后,点击保存,然后再点击授权,此时会自动打开hass授权登录界面,输入hass账号密码,授权后页面会显示”授权成功“
接着回到小度技能开放平台,在“测试验证”里的“真机测试”中,打开“技能调试模式”,如下图:
Snipaste_2020-04-03_17-32-47.jpg

7、修改configuration.yaml配置文件
下载插件,将其解压缩到/config/custom_components/里面
插件下载: dueros.py (17.04 KB, 下载次数: 12)
然后在配置文件里添加以下代码,保存,先别着急重启hass服务
http:
  base_url: https://你的域名:8123
  ssl_certificate: /config/cert/ssl.pem    #ssl证书的位置
  ssl_key: /config/cert/ssl.key      #ssl证书的位置
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1
    - ::1
  ip_ban_enabled: true
  login_attempts_threshold: 5      
dueros:
  expire_hours: 180  #授权过期时间. 该参数不是必填
8、修改customize.yaml文件,设置要让小度音箱发现的设备,下面出示一个实例供参考:
switch.dc1_8305d4_1:        #设备的实体ID,可以在hass的“开发者工具—实体”里查询到
    friendly_name: 客厅灯        #设备名称,这个必须有,否则小度音箱可能会发现不了该设备
#dueros_hidden: true   #非必须,如果不想小度添加这个设备,可以把该参数前面的“#”号删掉
    dueros_deviceType: ['switch']  #自定设备类型
    dueros_actions: ['turnOn', 'turnOff'] #自定设备可执行操作
关于上面代码中的dueros_deviceType和dueros_actions两个属性的更多配置信息,可以自行查阅DuerOS开放平台的开发文档(传送门

做好customize.yaml文件的配置后,保存并重启hass服务,自此大功告成!
第一次操作需要唤醒小度,对其说“打开技能调试模式”,让它开启技能调试模式,然后对其说“发现新设备”,完了后在小度APP里就能看到被小度发现了的接入hass平台的设备了!




===【5】斐讯DC1插座刷固件接入hass平台===
参考教程:https://bbs.hassbian.com/thread-9668-1-1.html

DC1插座的教程我已经汇总到上面这个参考教程了,有两种方案,一个是三木大神的方案,可参考阿文菌的教程刷;另一个是罗总基于三木大神的固件修改的方案,参考我的教程刷即可。这两种方案的教程都在里面了,请自行食用我用的是罗总的方案,这个有比较完整的UI配置界面,相对简单点,这里附上罗总方案的固件: 罗总DC1固件.zip (263.68 KB, 下载次数: 2)
罗总方案对应的刷机工具请到esp8266厂商官网去下载:传送门




===【6】控客小K智能插座接入hass平台===
参考教程:https://sumju.net/?p=711
下载教程备份: HOME ASSISTANT 安装控客插件 KONKE插件.pdf (264.47 KB, 下载次数: 9)

我的小K插座是mini K,所以此处只简单说下这个型号的操作(mini K Pro版也可以用)
首先去hass插件商店的最后一项”setting“中添加一个插件地址:https://github.com/5high/homeassistant-konke

然后,在商店的第二项里搜索”konke“安装这个插件
Snipaste_2020-04-03_13-01-23.jpg

Snipaste_2020-04-03_13-02-46.jpg
Snipaste_2020-04-03_13-03-08.jpg
Snipaste_2020-04-03_13-03-32.jpg
最后,修改configuration.yaml配置文件,在里面添加如下代码,然后重启hass服务就可以在面板里添加了
在这里,强烈建议你在路由器中将小K插座绑定mac地址,设置固定IP,否则你会很头疼的!!
switch:
  - platform: konke
    name: "蚊香"   #自定义插座的名称
    host: 192.168.2.253   #将其改为你插座对应的IP地址
    model: minik    #如果你也是miniK的插座,这里不用改,如果是其他插座,请参考原教程,将其改为对应的model




===【7】易微联设备接入hass平台===
参考教程1:https://bbs.hassbian.com/thread-9442-1-1.html
参考教程2:https://bbs.hassbian.com/thread-9357-1-1.html

易微联设备接入其实很简单,结合上面两个教程,大家可以直接按照我下面这个流程去操作就可以,很简单的!
1、下载插件解压缩复制到/config/custom_components/里面
易微联插件下载: SonoffLAN.rar (12.81 KB, 下载次数: 72) 注意:这个对新版本hass可以用,有些旧版本好像由于文件架构不一样的原因是用不了的,具体请看参考教程。

2、编辑configuration.yaml配置文件,在里面添加以下代码:
sonoff:
  username: +8613300000000  #易微联账号(手机号前需要加“+86”)
  password: password     #易微联密码
  reload: always  # HA启动时刷新列表
  default_class: switch  # changes the default class of all devices from switch to light默认设备类型
3、保存并重启hass服务就可以了。
如果以上操作后,在面板里还没有发现易微联设备的话,请继续下面的操作:
打开/docker/HomeAssistant文件夹里的.sonoff.json文件,如下图:(可以用notepad++打开)
Snipaste_2020-04-03_16-32-40.jpg
Snipaste_2020-04-03_16-34-14.jpg

找到文件里的drviceID和drviceKey,然后在configuration.yaml配置文件刚第二步增加的“sonoff:”下面新增这些代码:
  devices:
    1000abcdefg:      #将这个改为你的drviceID
      devicekey: 9512321541-732132e-321-a457-323213213          #将这个改成你的drviceKey
      device_class: switch  # changes the default class of the device from switch to light设备类型
完成后,保存并重启hass服务就可以了。
比如我的易微联设备在.sonoff.json文件里的ID和key分别如下图所示
Snipaste_2020-04-03_16-41-03.jpg



======【8】让homekit在外网也能控制======

参考教程:https://www.bilibili.com/video/BV1jt411M7eu

如果要让homekit在非本局域网下(如4G网络下)也能控制家里的设备,很简单就能做到了!
首先你得有个ipad,使用ipad的家庭app接入hass(hass的通知里会显示接入的配对码)
hass好像只允许一个homekit设备接入,所以需要先移除已经接入hass的家庭(在接入hass的设备里的家庭app里移除)

接着去ipad的“设置app——appleid(即设置最上面的头像那)——iCloud”里打开家庭和钥匙串的icloud权限,再去设置app下拉中找到并进入“家庭”,打开“将此ipad作为家庭中枢”,下面截图来自教程视频:
Snipaste_2020-04-03_18-17-39.jpg

然后在ipad家庭app里点击左上角的小房子图标,进入“我的家”(app的默认名),点击“邀请”输入被邀请设备的appleid账号去邀请用户,(如果ipad和你手机是同一个appleid的话,就不用邀请,只要两个设备都开启了同步功能就会自动同步过去)

大功告成!!这样在外面也就同样可以控制家里接入homekit的设备了(实测略微有点延迟)
此方法唯一不足的是,如果你是通过客人身份(被邀请进去的)进入家庭的,所有设备的名称什么的你都无法修改,只能在ipad里修改。




======【9】hass里设置自动化,实现插座定时开关======


参考教程:https://www.bilibili.com/video/BV1n441127mW
因为家里有个鱼缸,需求是在上班时间段鱼缸的景观灯自动关闭,休息时间段景观灯自动打开。
因为我的hass版本是0.100后的版本,所以自动化设置相对简单,参考教程中的视频仅供参考。
下面以设置定时开关为例:
为了确保定时的时间是准确的,你首先需要先确认群晖的时间和你当地时间是否一致,另外还要在hass的“配置——通用”中设置好时区。我在国内沿海城市,所以就选了上海作为我的时区
Snipaste_2020-04-03_18-26-55.jpg

完成以上操作后,就可以添加自动化任务了:

1、在hass配置——自动化中,点右下角的加号新建一个自动化任务
Snipaste_2020-04-03_18-22-26.jpg
进入后,在最上面的“名称”里,可以修改自动化任务的名称

2、在触发条件的“触发条件类型”中选择“时间”,然后在下面输入时间,时间是24小时制,格式是“时:分”(中间是英文状态下的冒号),如果要在多个不同时间内触发该任务,可以点击下面的“添加触发条件”来增设
Snipaste_2020-04-03_18-29-35.jpg

3、在动作的“动作类型”中选择“调用服务”,如果要打开鱼缸灯,服务则选择“switch.turn_on”;要关闭鱼纲等,则选择“switch.turn_off”,更多关于服务的介绍和用法,可以在“开发者工具——服务”中去调阅查看不同设备都支持哪些调用服务
接着再选择要控制的设备,如果要控制多个设备,就点击下面的“添加触发条件”来增加。
Snipaste_2020-04-03_18-35-28.jpg
4、点击右下角的保存图标,保存后就可以在自动化中看到(注意:自动化任务会自动添加到homekit的列表里)
下图是我设置好的自动化任务,任务下方会显示上次触发的时间
Snipaste_2020-04-03_18-35-36.jpg




===【10】向日葵插座(esp8266)刷固件接入hass===

详细的方法我已经专门开贴谢啦,请移步:https://bbs.hassbian.com/forum.php?mod=viewthread&tid=9707&page=1&extra=#pid317602







                               
登录/注册后可看大图


·结束语·



home assistant这个平台真的很强大也很好用!非常感谢诸位大神的伟大奉献,才能有如此简单的操作就能完成一个hass平台的搭建!

本帖会不定期更新!如果引用的内容不恰当,还望海涵!联系我我会及时删改的

最后,再次致敬大神们!










评分

参与人数 1金钱 +2 收起 理由
dylanmoran + 2

查看全部评分

回复

使用道具 举报

15

主题

135

帖子

557

积分

高级会员

Rank: 4

积分
557
金钱
422
HASS币
0
 楼主| 发表于 2020-4-3 13:11:41 | 显示全部楼层
本帖最后由 coli06 于 2020-4-3 18:39 编辑

占楼备用
求教一个问题:我在帖子里设置了个内容索引,如何设置才能实现目录功能?在编辑界面里插入分页,然后呢??不知道怎么操作
回复

使用道具 举报

15

主题

135

帖子

557

积分

高级会员

Rank: 4

积分
557
金钱
422
HASS币
0
 楼主| 发表于 2020-4-3 13:16:37 | 显示全部楼层
在备份一个楼层
上述内容如有不当,请联系我删改
回复

使用道具 举报

19

主题

597

帖子

4047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4047
金钱
3435
HASS币
40
发表于 2020-4-3 17:07:38 | 显示全部楼层
哇,好丰富的一帖!支持!
回复

使用道具 举报

15

主题

135

帖子

557

积分

高级会员

Rank: 4

积分
557
金钱
422
HASS币
0
 楼主| 发表于 2020-4-3 18:53:31 | 显示全部楼层
whxciotw 发表于 2020-4-3 17:07
哇,好丰富的一帖!支持!

感谢支持
回复

使用道具 举报

5

主题

265

帖子

1899

积分

金牌会员

Rank: 6Rank: 6

积分
1899
金钱
1634
HASS币
0
发表于 2020-4-3 21:31:08 | 显示全部楼层
天猫精灵不是很好么。
回复

使用道具 举报

15

主题

135

帖子

557

积分

高级会员

Rank: 4

积分
557
金钱
422
HASS币
0
 楼主| 发表于 2020-4-4 12:50:23 | 显示全部楼层
zkxa 发表于 2020-4-3 21:31
天猫精灵不是很好么。

天猫精灵太罗嗦了~~让它关个灯,后面都得来一段话。让它报个天气,完了还得捎带一句广告语和其他内容的话~~~
回复

使用道具 举报

0

主题

35

帖子

1995

积分

金牌会员

Rank: 6Rank: 6

积分
1995
金钱
1960
HASS币
5
发表于 2020-4-9 16:57:34 | 显示全部楼层
支持支持
回复

使用道具 举报

0

主题

17

帖子

101

积分

注册会员

Rank: 2

积分
101
金钱
84
HASS币
0
发表于 2020-5-28 16:01:57 | 显示全部楼层
收藏了,感谢lz
回复

使用道具 举报

0

主题

3

帖子

25

积分

新手上路

Rank: 1

积分
25
金钱
22
HASS币
0
发表于 2020-7-3 10:41:16 | 显示全部楼层
易微联按照大佬方式,还是连不上     
You are using a custom integration for sonoff which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 02:52 , Processed in 0.069855 second(s), 41 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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