WordPress中文论坛 - WordPress Chinese Forums

 找回密码
 注册
查看: 233|回复: 1

利用 HomeAssistant +树莓派+ Amazon Echo 的智能家居实践(一)—— 树莓派的配置3

[复制链接]

3

主题

6

帖子

56

金钱

WP 熟手

Rank: 2Rank: 2

积分
62
发表于 2017-11-8 20:48:42 | 显示全部楼层 |阅读模式
(四) 域名解析+ssh 免密码登录

其实树莓派就是一台服务器,如果你自己买过服务器或者搭过网站的话一定会做的两件事就是


域名解析
1
域名解析



ssh 免密码登录
1
ssh 免密码登录
,前者可以让你用一个好记的域名而不是每次都输入一串 IP 地址并可以在外网访问到树莓派,后者为了每次 ssh 不用重复输密码。

首先你要知道自己的路由器的公网 IP,你可以分别前往路由器管理界面查看自己 WAN 口分配的 IP 和 ip.cn 查到的公网 IP 是否一致,一致的话说明你用的就是公网 IP,这个 IP 可以直接用来做解析,不一致的话你就需要动态域名解析了,你需要在树莓派上跑个脚本隔一段时间把公网 IP 更新到域名解析的地方。由于我是公网 IP,我就不演示动态域名解析的例子了,你可以在网上找到很多文章。[1] [2]

如果你已经有域名了,就可以去域名服务商 DNS 管理界面添加一条 A 记录,指向你的公网 IP。一般过半个小时域名就可以生效。如果你没有自己的域名,也有很多免费的域名提供商,比如 duckdns。域名配置好了,你还需要做最后一步,端口转发。

你从外网 ssh 访问路由器公网 IP 的 22 端口,如果不做端口转发,那么这个请求就无人认领而导致 time out,所以前往路由器管理界面,我刷的是 OpenWrt 的固件,在防火墙-端口转发里设置,这个功能绝大多数路由器都有,只不过名字不同而已,你仔细找找。



域名也解析好了,端口也转发好了,那么你就可以愉快地在世界任何一个地方通过


ssh pi@sub.domain.com
1
ssh pi@sub.domain.com
连接你的树莓派了。

ssh 免密登录也很简单,就是把 Mac 本地的公钥传到树莓派上。首先查看本地 Mac 上的公钥


ls ~/.ssh
1
ls ~/.ssh
如果存在


id_rsa.pub
1
id_rsa.pub



id_dsa.pub
1
id_dsa.pub
,直接


cat ~/.ssh/id_rsa.pub | ssh pi@192.168.x.x 'cat >> .ssh/authorized_keys'
1
cat ~/.ssh/id_rsa.pub | ssh pi@192.168.x.x 'cat >> .ssh/authorized_keys'
把公钥传到树莓派上就可以了。如果之前没有生成过秘钥对,那就生成一对:


ssh-keygen -t rsa -C <YourName>@pi
1
ssh-keygen -t rsa -C <YourName>@pi
然后重复上面的 cat >> 命令即可。

(五) 通过 SFTP 浏览系统文件

涉及到浏览文件的操作,我推荐使用 FTP 的软件,原因就是直观,我使用的是 Transmit,你也可以使用其他免费的 FTP 软件。



你会发现 Hassbian 已经内置了 HomeAssistant 服务,相关文件都在


/home/homeassistant/.homeassistant
1
/home/homeassistant/.homeassistant
里,如果你看不到 .homeassistant 文件夹,需要手动开启显示隐藏文件。



如果还是没看到 .homeassistant,再等等,一般 Hassbian 需要 5-10 分钟下载 HomeAssistant 的相关服务,如果你不走运可能下到了假的 Hassbian,你可以手动更新 HomeAssistant。


[crayon-5a02f871ddc96020150368   class=" language-bash"]$ <span class="token function">sudo</span> systemctl stop home-assistant@homeassistant.service
$ <span class="token function">sudo</span> <span class="token function">su</span> -s /bin/bash homeassistant
$ <span class="token function">source</span> /srv/homeassistant/bin/activate
$ pip3 <span class="token function">install</span> --upgrade homeassistant
$ <span class="token keyword">exit</span>
$ <span class="token function">sudo</span> systemctl start home-assistant@homeassistant.service
1
2
3
4
5
6
[crayon-5a02f871ddc96020150368   class=" language-bash"]$ <span class="token function">sudo</span> systemctl stop home-assistant@homeassistant.service
$ <span class="token function">sudo</span> <span class="token function">su</span> -s /bin/bash homeassistant
$ <span class="token function">source</span> /srv/homeassistant/bin/activate
$ pip3 <span class="token function">install</span> --upgrade homeassistant
$ <span class="token keyword">exit</span>
$ <span class="token function">sudo</span> systemctl start home-assistant@homeassistant.service
[/crayon]
如果出现了


.homeassistant
1
.homeassistant
隐藏文件夹,那么你可以在浏览器输入


192.168.x.x:8123
1
192.168.x.x:8123
(192.168.x.x 是你树莓派的 IP),你应该能看到 HomeAssistant 的控制界面了。这里有一条默认的规定是 HomeAssistant 默认是开在 8123 端口上的。



TA-DA! 这说明你的 HomeAssistant 服务已经开启。

和上面一样,如果你想在外网访问这个页面,只需要在路由器的端口转发设置页面再设置一条外网 8123 转树莓派 8123 的转发规则即可,这样你就可以在世界任何一个角落通过


sub.domain.com:8123
1
sub.domain.com:8123
访问树莓派上的 HomeAssistant 服务了。

接下来的文章我将详细介绍 HomeAssistant 的使用。

3

主题

6

帖子

56

金钱

WP 熟手

Rank: 2Rank: 2

积分
62
 楼主| 发表于 2017-11-8 20:57:59 | 显示全部楼层
这一篇我们要开始学习使用 HomeAssistant 了。在此之前,为了更方便地写代码,我们还需要做一些准备工作。

(一)开启 Samba

还记得上一节中我们使用的 FTP 软件吗?你可以在


/home/pi/hassbian-scripts
1
/home/pi/hassbian-scripts
这个目录下找到一些已经预装好的脚本,如果没有,可以以 pi 的身份 clone 这个 repo :


[crayon-5a02fdbc09133541459363   class=" language-bash"]<span class="token function">git</span> clone
1
[crayon-5a02fdbc09133541459363   class=" language-bash"]<span class="token function">git</span> clone
[/crayon]
然后运行


[crayon-5a02fdbc0913d927371020   class=" language-bash"]<span class="token function">sudo</span> ./hassbian-scripts/install_samba.sh  
1
[crayon-5a02fdbc0913d927371020   class=" language-bash"]<span class="token function">sudo</span> ./hassbian-scripts/install_samba.sh  
[/crayon]
大概5分钟左右的安装时间。安装完你可以看到下面的界面:



然后在 Finder 的共享下面看到树莓派开放的服务器了。这样的好处是,你可以像访问本地的文件一样访问树莓派上的文件了。



然后就可以用 Sublime Text 打开这个目录开始编辑了:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|联系我们|WordPress中文论坛 - CNWP ( 闽ICP备12016335号-11 )

GMT+8, 2018-10-17 18:22 , Processed in 0.093178 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表