前言
Home Assistant(以下简称HA)是个开源的智能家居平台,也叫家庭助手,就像一个软件,比如我们的QQ软件,微信软件。
Home Assistant把家中的智能家居设备整合到HA中,它能够接入的设备非常的多比如大名鼎鼎的小米、博联、易微联、飞利浦、特斯拉…,也可以接入软件,让后让各个品牌之间的设备可以联网。
一个设备,在没接入HA之前,它是个单一设备,只能在自己的生态里面联动,一旦接入到HA上,它就活了,它可以在所有接入的平台里面自己联动,实现各种各样的自动化。
下面介绍Home Assistant 面板+cpolar内网穿透实现在外随时随地远程访问。
1. 安装Home Assistant
这里使用vmwhere 虚拟机进行安装,通过Home Assistant官网的下载链接下载,下载后解压。
vmdk文件:https://www.home-assistant.io/installation/linux#install-home-assistant-container
然后创建一个虚拟机
选择自定义虚拟机
直接下一步
选择稍后安装操作系统
然后选择Linux
,版本选择4.x内核64位
设置一下虚拟机名称,然后下面安装的位置可以自己选择,也可以默认
处理器可以选择1个,内核选择两个,这里配置的数量越多,消耗电脑性能越大,可根据本机配置设置
按照官网的要求,需2G以上,这里选择3G
选择NET网络模式
直接下一步
磁盘类型可以默认,也可以选择SATA
这里需要选择现有磁盘
这里选择我们上面官网下载的.vmdk文件
然后选择保持现有格式
最后,点击完成即可
安装成功后启动虚拟机,启动完成后我们可以看到局域网ip地址和端口信息,8123就是管理面板的端口
2. 配置Home Assistant
启动虚拟机后,我们在浏览器上,输入Home Assistant的局域网ip地址加上8123的端口号,就可以看到管理面板
首次访问登陆,需要创建账户,填写相关用户名密码,创建账户
地区选择,可以手动定位,也可以选择自动检测
接下来默认点击下一步即可
然后点击完成,这里提示添加智能设备,可以先点击完成,后面自己设置
然后就进入了控制面板界面
3. 安装cpolar内网穿透
在局域网下的浏览器访问成功后,我们接下来用cpolar内网穿透将其映射到公网上,实现在公网环境下也可以远程访问家里的HA,不需要公网IP,也无需设置路由器。
cpolar官网:https://www.cpolar.com/
访问cpolar官网,注册一个账号,然后下载并安装客户端,具体安装教程可以参考官网文档教程。
3.1 windows系统
在cpolar官网下载安装包后,双击安装包一路默认安装即可。
3.2 Linux系统
cpolar支持一键自动安装脚本,详细请参考文章教程
3.3 macOS系统
可通过homebrew安装,可参考文章教程
4. 映射Home Assistant端口
cpolar安装成功后,在浏览器上访问本地9200端口,访问cpolar web UI管理界面【http://localhost:9200】,使用cpolar账号登录。
点击左侧仪表盘的隧道管理——创建隧道,创建一个http隧道,指向8123端口 ,即Home Assistant的端口
隧道名称
:可自定义命名,注意不要与已有的隧道名称重复协议
:选择http本地地址
:home assistant 局域网ip+端口域名类型
:免费选择随机域名地区
:选择China vip
点击创建
隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址
5. 公网访问Home Assistant
打开浏览器,使用刚刚获取的公网地址进行连接访问,此时会出现一个400的错误,如果没有的话,可以跳过此步骤
我们查看日志,看一下提示具体错误,点击左下角配置,点击系统
可以看到日志,点击日志
打开日志后,我们可以看到这么一个问题,大致意思是:从192.168.191.1收到来自反向代理的请求,但HTTP集成未针对反向代理进行设置,所以我们需要修改一下配置文件
解决方法:打开面板,找到左下角配置,点击加载项
去商店下载一个文件编辑器,我们需要修改一个配置文件
找到File editor 文件编辑器
点击安装这个File editor
安装成功后点击启动
然后为了方便下次使用,可以勾选一个在侧边栏显示
开启后,我们从侧边栏即可进入,然后点击左上角文件目录
找到并且点击configuration.yaml的文件,点击一下即可
在文件上添加如下配置,下面ip地址就是我们上面查看日志提示的那个ip地址:
http: use_x_forwarded_for: true trusted_proxies: - 192.168.191.1
然后我们打开虚拟机关机,重启虚拟机,接着再次输入公网地址访问,即可成功
6. 固定公网地址
由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。
注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。
6.1 保留一个固定二级子域名
登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称
保留成功后复制保留的二级子域名地址
6.2 配置固定二级子域名
访问http://127.0.0.1:9200/,登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的Home Assistant隧道,点击右侧的编辑
修改隧道信息,将保留成功的二级子域名配置到隧道中
域名类型
:选择二级子域名Sub Domain
:填写保留成功的二级子域名
点击更新
更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留过的二级子域名名称,将其复制下来
然后使用固定https地址打开浏览器访问,同样访问成功,且域名不会发生变化.