树莓派HomeAassistant系列(一)外网远程控制
HomeAassistant系列
在这篇文章中已经讲了如何进行内网穿透来远程连接我们的树莓派,那么如果能够让Homeassistant也能够进行远程连接的话,那么这样会很爽。
我是在Docker下安装的HA,在设置外网远程连接的时候遇到了非常多的坑,下面先说下我遇到的坑。
1.Docker下有4中network模式,有host,container,none,bridge(默认),一开始按照别人的教程安装是bridge
模式,然后用cpolar http 8123
进行内网穿透,遇到了我的第一个坑,页面显示400 bad request。
解决方案:凭借着不解决不死心的决心,我搜索了各种资料,终于让我在bing上找到了方法,由于是HA是在docker下运行的,所以有一个虚拟的IP地址,可以用portainer找到网络模式下找到这个IP地址,显示为172.17.0.1,解决的方案就是在configuration.yaml
下添加下面的信息:
1 | http: |
然后重新进行内网穿透,哇!居然可以了!可是还有坑迎接我😭
2.然后我开始配置homekit,非常nice,有官方集成,直接一键傻瓜操作,并且生成了二维码让我去扫,结果我试了好几次,都说无法找到设备,我服了。
解决方案:凭借着不解决不死心的决心,我搜索了各种资料,终于又让我在bing(必应还是不错的)上找到了方法,因为我们安装的时候docker选择bridge模式,这种网络homekit是无法找到设备的,需要设置为host
模式,ok,行,那我删除镜像重新安装,也是非常简单的,把bridge改成host。没错,真的就是这么一回事,果然找到设备了。然后我又兴高采烈用cpolar http 8123
穿透,结果显示400 bad request,可是这次是host模式呀,和宿主机共享呀,根本不是bridge下那种情况,所以我就在配置文件写了我的本机地址192.168.1.104,结果还是不行,难度homekit和远程连接我只能选择其中一样?可是我都想要呀,然后我又想了半天,试试能不能用nginx进行反向代理,设置了好久也没有搞定,终于最后,我查了两天资料,又让我在论坛上找到了别人的一个配置信息,只需要在configuration.yaml
添加这个配置就可以。
1 | http: |
成功了!homekit和远程我都可以一起要了!这里有个细节,就是cpolar会生成两个链接,一个是加密的https,一个是http,因为咱是白嫖,没有域名,没有服务器,所以只能用http这个,当然,如果你有域名有云服务器的话,应该不会遇到我上面这些问题,因为我看网络上远程链接教程还是比较全的。
一些提示cpolar和ngork.cc都可以用免费的内网穿透,区别在于cpolar是动态更换链接,而ngrok链接可以是固定的,但是太卡了,所以我还是选择cpolar,当然,有钱任性,可以直接买他们的服务。
一些心得:其实在bridge模式下能够进行远程连接,我就已经有信心在host模式下远程连接,所以我觉得肯定是一些配置上出现了问题,后来想到用nginx进行反向代理,虽然我并没有成功设置好,但是我觉得即便设置好了,也会出现400,因为本质上不是这个问题,而是HA直接拒绝你,所以后来不从这个思路下手,终于更换各种关键词去论坛上搜索,找到一个人的配置,太开心了,还有,英文还是得要学好,HA论坛都是英文。