0%

安装HomeAssistant

树莓派安装

坎坷

树莓派很快周一就到了,买的壳子周二到的,安装了好一会结果风扇坏的,叫老板重新发了。

到网上翻了下教程,看到网易云课堂里的 HAChina 的课程,把免费的前几章过了一下,决定开始动手。

作为一个弄程序的,肯定选择树莓派系统然后自己手动安装 Home Assistant。可是按着那第一章教程弄了好久修了好多问题,走到最后输入 hass 安装的时候,总是需要的类库没有,也没自动安装,搞来搞去,最终还是功亏一篑。所以,直接 HassOS 走起,反正这个 Pi 只用来跑 Home Assistant 不跑别的内容。

安装

用了HAChina的HassOS,也就是网易课程里的第一章最后一课,前面几章免费所以看完,收费的肯定是不会去付费的,有了标题还有课件当然自己去慢慢研究,课件的github地址为 https://github.com/zhujisheng/Home-Assistant-DIY

移除广告

进入 HomeAssistant之后,左侧栏目会有HAChina的视频教程的选项链接

用samba打开文件 configuration.yaml 将下列内容注释然后重启就没广告栏了

1
2
3
4
5
#panel_iframe:
# lesson:
# title: "HA视频课程"
# url: "https://study.163.com/course/courseMain.htm?courseId=1006189053&share=2&shareId=400000000624093"
# icon: "mdi:video-vintage"

外网访问

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
2
3
4
5
6
7
8
9
homeassistant:
external_url: https://hemignfei.duckdns.org
internal_url: http://192.168.0.106:8123

http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
ip_ban_enabled: true
login_attempts_threshold: 5

然后就可以通过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
2
3
4
login    	//登录后台
ls -a //列出当前所有文件包括隐藏文件
pwd //打印当前工作目录
cd ~/.ssh //进入root/.ssh文件夹

此时输入 ls 会有 authorized_keys,因为 authorized_keys文件在.ssh文件夹内

1
vi authorized_keys

进入 全部删除然后 输入 ssh-rsa xxx

xxx就是自己生成的rsa公钥的内容

保存,然后ssh的密钥就只有自己知道了。用外网访问就安全了。

------------- 本文结束 感谢您的阅读-------------