本帖最后由 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, 下载次数: 152)
在开启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, 下载次数: 67)
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, 下载次数: 86)
首先需要去https://github.com/custom-components/hacs/releases/latest 下载插件文件,解压缩放到/config/custom_components/hacs里面
我也打包了一份我的插件,也可以用这份去装:
hacs插件商店.zip
(169.83 KB, 下载次数: 49)
然后需要去https://github.com/settings/tokens 登录,申请一个tokens(原教程的github网址打开错误,请用这里的这个去打开申请)
最后要在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.html 和https://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
2、打开群晖的ssh功能,启动群晖自带的nginx服务和设置反向代理
(此方法适用于群晖系统版本是6.2.1之前的,之后的版本请参考教程2的第二个链接)
(登录群晖dsm—控制面板—终端机和SNMP—启动SSH功能—应用),然后通过putty软件远程登录群晖(putty软件请百度下载)
3、然后输入下面的代码,编辑Portal.mustache文件(直接复制粘贴进去)
vim /usr/syno/share/nginx/Portal.mustache
复制代码
此时界面会自动打开该文件,通过键盘的上下左右光标键将光标移动到下图红圈处,然后按下键盘A键(英文状态下)进入编辑模式
按上图操作,将下面的代码复制粘贴进去,然后按下键盘的Esc键,再输入”:wq“,回车,进行保存
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
复制代码
退出编辑后,输入下方代码,重启下nginx服务
sudo synoservicecfg --restart nginx
复制代码
完成上述操作后,再去群晖控制面板里设置一个反向代理,将https的访问代理到hass端口去,参照下图操作:
4、在路由器中设置端口转发,将外网6001端口转发到内网6001端口,不然外网没办法访问。
注意:自此,hass平台就需要通过https://域名:6001/进行访问了,原有的IP地址访问的方式好像就不行了
5、在群晖里添加ssl证书,并配置给6001端口的域名
打开控制面板——安全性——证书,新增证书,选择“添加新证书——导入证书”,导入刚才放到hass文件夹里的xxx.crt和xxx.key证书
接着选中刚添加的证书,点击“配置”,将其配置到6001端口
6、去小度DuerOS开放平台创建小度技能https://dueros.baidu.com/open
选择智能家居类别的技能,然后设置一个名字,确定,就会跳转到技能配置页面,按照下图配置即可:
设置好后,点击保存,然后再点击授权,此时会自动打开hass授权登录界面,输入hass账号密码,授权后页面会显示”授权成功“
接着回到小度技能开放平台,在“测试验证”里的“真机测试”中,打开“技能调试模式”,如下图:
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, 下载次数: 10)
我的小K插座是mini K,所以此处只简单说下这个型号的操作(mini K Pro版也可以用)
首先去hass插件商店的最后一项”setting“中添加一个插件地址:https://github.com/5high/homeassistant-konke
然后,在商店的第二项里搜索”konke“安装这个插件
最后,修改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++打开)
找到文件里的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分别如下图所示
======【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作为家庭中枢”,下面截图来自教程视频:
然后在ipad家庭app里点击左上角的小房子图标,进入“我的家”(app的默认名),点击“邀请”输入被邀请设备的appleid账号去邀请用户,(如果ipad和你手机是同一个appleid的话,就不用邀请,只要两个设备都开启了同步功能就会自动同步过去)
大功告成!!这样在外面也就同样可以控制家里接入homekit的设备了(实测略微有点延迟)
此方法唯一不足的是,如果你是通过客人身份(被邀请进去的)进入家庭的,所有设备的名称什么的你都无法修改,只能在ipad里修改。
======【9】hass里设置自动化,实现插座定时开关======
参考教程: https://www.bilibili.com/video/BV1n441127mW
因为家里有个鱼缸,需求是在上班时间段鱼缸的景观灯自动关闭,休息时间段景观灯自动打开。
因为我的hass版本是0.100后的版本,所以自动化设置相对简单,参考教程中的视频仅供参考。
下面以设置定时开关为例:
为了确保定时的时间是准确的,你首先需要先确认群晖的时间和你当地时间是否一致,另外还要在hass的“配置——通用”中设置好时区。我在国内沿海城市,所以就选了上海作为我的时区
完成以上操作后,就可以添加自动化任务了:
1、在hass配置——自动化中,点右下角的加号新建一个自动化任务
进入后,在最上面的“名称”里,可以修改自动化任务的名称
2、在触发条件的“触发条件类型”中选择“时间”,然后在下面输入时间,时间是24小时制,格式是“时:分”(中间是英文状态下的冒号),如果要在多个不同时间内触发该任务,可以点击下面的“添加触发条件”来增设
3、在动作的“动作类型”中选择“调用服务”,如果要打开鱼缸灯,服务则选择“switch.turn_on”;要关闭鱼纲等,则选择“switch.turn_off”,更多关于服务的介绍和用法,可以在“开发者工具——服务”中去调阅查看不同设备都支持哪些调用服务
接着再选择要控制的设备,如果要控制多个设备,就点击下面的“添加触发条件”来增加。
4、点击右下角的保存图标,保存后就可以在自动化中看到(注意:自动化任务会自动添加到homekit的列表里)
下图是我设置好的自动化任务,任务下方会显示上次触发的时间
===【10】 向日葵插座(esp8266)刷固件接入hass ===
详细的方法我已经专门开贴谢啦,请移步:https://bbs.hassbian.com/forum.php?mod=viewthread&tid=9707&page=1&extra=#pid317602
·结束语·
home assistant这个平台真的很强大也很好用!非常感谢诸位大神的伟大奉献,才能有如此简单的操作就能完成一个hass平台的搭建!
本帖会不定期更新!如果引用的内容不恰当,还望海涵!联系我我会及时删改的
最后,再次致敬大神们!