树莓派安装
坎坷
树莓派很快周一就到了,买的壳子周二到的,安装了好一会结果风扇坏的,叫老板重新发了。
到网上翻了下教程,看到网易云课堂里的 HAChina 的课程,把免费的前几章过了一下,决定开始动手。
作为一个弄程序的,肯定选择树莓派系统然后自己手动安装 Home Assistant。可是按着那第一章教程弄了好久修了好多问题,走到最后输入 hass 安装的时候,总是需要的类库没有,也没自动安装,搞来搞去,最终还是功亏一篑。所以,直接 HassOS 走起,反正这个 Pi 只用来跑 Home Assistant 不跑别的内容。
安装
用了HAChina的HassOS,也就是网易课程里的第一章最后一课,前面几章免费所以看完,收费的肯定是不会去付费的,有了标题还有课件当然自己去慢慢研究,课件的github地址为 https://github.com/zhujisheng/Home-Assistant-DIY
移除广告
进入 HomeAssistant之后,左侧栏目会有HAChina的视频教程的选项链接
用samba打开文件 configuration.yaml 将下列内容注释然后重启就没广告栏了
1 | #panel_iframe: |
外网访问
IP 与 MAC绑定
首先,把树莓派的内网 ip 固定,进入路由器后台完成
开启DDNS
用 tp 路由器自带的开启DDNS
映射端口
电信光猫映射到 TP路由器,TP路由器映射到树莓派
隐性域名跳转
到目前,可以通过tpddns从外网访问了,但是输入一串域名还要冒号端口,找了半天发现 namecheap 可以免费隐藏跳转,于是把自己域名dns转到了 namecheap,做了隐性转发,这样直接访问 home.hemingfei.com 就从外网访问了。
通过 https 加密连接
目前通过外网能访问了,但是是 http, 于是找了下如何 https 访问,找到通过 homeassistant 的插件 Duck DNS。
Duck DNS 配置
在插件首页前几个就能看到 duckDNS,安装完勾上开机启动,然后进入配置界面,到duckdns官网注册账号填入 token 和 domain
Configuration.yaml 配置
通过zamba从电脑上打开configuration.yaml文件编辑,在网上看了一堆发现都不行,然后看了 log 文件排查,google。
遇到几个问题
1 | base_url: https://hemignfei.duckdns.org:8123 |
报错是: The ‘base_url’ option is deprecated, please remove it from your configuration
google后发现是API改了 变成了 external_url 和 internal_url
最终是这样
1 | homeassistant: |
然后就可以通过duckdns的域名访问了并且是 https
此时从外网访问OK,可是内网无法访问,内网需要手动把http加上s才可以,chrome里手动输入 https://192.168.0.106:8123 之后进入会提示不安全,因为证书是duckdns的所以从内网域名访问域名不一致,但是没关系内网不安全不重要,外网安全就行。找了下如何内网变为 http 访问,蛮麻烦的要自己转发什么的,不再弄了,因为都是在内网里且最终都是提示不安全的。
显性域名跳转
因为现在外网是 https 加密连接,所以之前的隐性url跳转不行,变成显性 unmasked 就OK了。
更改ssh的密钥
存在的问题
制作安装包安装树莓派hassOS系统的时候,完全按照网易上的那个教程来的,现在公网访问,问题就是那个ssh连接加密的rsa密钥不是自己创建的唯一的,而是大家都知道的,所以现在换成自己的才安全。
生成和替换自己的 rsa key
用puTTYgen 生成 rsa密钥对,把公有的密钥复制出来,打开 authorized_keys 文件 替换里面的密钥
root 登录ssh, 然后输入 login 进入底层
1 | login //登录后台 |
此时输入 ls 会有 authorized_keys,因为 authorized_keys文件在.ssh文件夹内
1 | vi authorized_keys |
进入 全部删除然后 输入 ssh-rsa xxx
xxx就是自己生成的rsa公钥的内容
保存,然后ssh的密钥就只有自己知道了。用外网访问就安全了。