掌控你的智能家居 - homeassistant详细搭建教程
前言
作为专业的hello world
工程师,新装修房子肯定是要整一套智能家居的。虽然小米的智能家居方案已经很不错了,但是也没法100%的满足需求。而且各个厂商都有自己的生态系统,小米的小爱同学对应的是米家,苹果的siri
对应的是HomeKit
。想用siri
控制非HomeKit
的设备显然不可以,HomeKit
解决方案的价格也不是我这种傲(穷)骨(人)可以玩得转的,所以为了实现各个厂商的互通就有了home-assistant这个项目。
home-assistant
具体的介绍就不多说了,简单来讲home-assistant
是一个智能设备平台,它可以调度上千种智能设备(截止到2020 08 11官方公布支持1622种),包括常见的米家,Amazon Alexa,Google Assistant,Google Cast,宜家等等,基本上覆盖了市面上所有常见的设备。具体列表可以在官网公布的支持列表中查看。
准备工作
后面简称home-assistant为hass
首先需要准备一个可以运行hass
系统的硬件,hass
基于python
,所以支持windows
,mac os
和linux
各种发行版。作为需要7x24运行的系统PC
肯定不行了,功耗太高,所以在这使用树莓派作为基础平台。树莓派的特点在这就不多说了,本次我购买的是树莓派4B。
树莓派系统
树莓派本身有官方系统,不过网评一般,所以在这安装的是Ubuntu 20.04.1 LTS
。之前找过一个Debian-Pi-Aarch64 ★ 全新树莓派64位系统。性能很不错,就是系统依赖会有问题。树莓派的性能太低了,做点啥时间太长,所以放弃折腾直接使用官方的Ubuntu 20.04
。
系统的安装不多说了,下载镜像之后使用Win32DiskImager
傻瓜式一键安装,唯一需要注意的是下载的系统是压缩包,记得把img
镜像解压出来再安装。
连接WIFI
不得不说第三方优化的就是方便,上面的Debian-Pi-Aarch64
配置wifi
极为方便。ubuntu
的坑就是按照官方文档来还是失败,而且网上的都是老版本的配置方法。
经过多次尝试总结了Ubuntu 20.04
的WIFI配置方法:
安装完系统后先用有线连接你的路由器。
在路由器的管理界面找到树莓派的
IP
,如果你跟我一样安装的是ubuntu 20
,那么路由器里的名称也应该叫ubuntu
。找到树莓派的
IP
后使用ssh
登陆,初始用户名和密码都是ubuntu
。首次登录后需要设置一个新密码,然后使用新密码重新登陆一下。成功连接树莓派后就可以配置wifi了:
打开
/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
文件1
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
把
network: {config: disabled}
写入到文件中,不用格式化。创建
/etc/netplan/01-netcfg.yaml
文件并编辑:1
sudo nano /etc/netplan/01-netcfg.yaml
把wifi配置添加到上面的文件中:
1
2
3
4
5
6
7
8
9
10network:
version: 2
renderer: networkd
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"你的wifi名称":
password: "wifi密码"在这需要注意,如果你连接的是
5G wifi
的话记得对应树莓派支持的信道和路由器的信道,否则是连接不上的。应用配置并重启
1
2
3
4
5
6如果配置有错误会在这一步提示出来
sudo netplan generate
这一步有可能会有systemctl的错误提示,忽略即可
sudo netplan apply
重启系统拔掉有线就连接上wifi了
sudo reboot
环境配置
首先需要一些基础环境配置
切换apt
的源为清华镜像:
1 | sudo nano /etc/apt/sources.list |
删除掉里面的所有内容,然后添加下面的内容:
1 | # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 |
如果你跟我一样使用的是树莓派或者其他ARM
架构的硬件则需要使用ubuntu-ports
镜像,把地址替换为https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
1 | # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 |
安装前置依赖
在这我们使用pyenv
来管理Python
,所以先安装一下前置依赖:
更新
apt
1
sudo apt update && sudo apt upgrade
安装依赖
1
sudo apt-get install -y gcc make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
安装pyenv
pyenv
使您可以轻松地在多个版本的Python之间切换。它简单,简单,遵循UNIX的一站式工具传统。
可以按照官方的方法来手动安装,同时官方提供了一键安装脚本:
1 | curl https://pyenv.run | bash |
一般会遇到ssl
的问题,可以直接把脚本下载到本地来进行安装:
脚本地址:https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer
运行:
1 | bash pyenv-installer.sh |
不要使用sudo
。滥用权限有可能导致一系列问题。
等待脚本执行完成后把环境变量添加到系统中:
1 | sudo nano ~/.bashrc |
添加:
1 | export PATH="/home/ubuntu/.pyenv/bin:$PATH" |
1 | source ~/.bashrc |
运行pyenv version
查看pyenv
版本。
运行pyenv versions
查看本机python
版本,注意这里多个s
。
安装hass
pyenv
安装成功后我们就可以安装管理python
了。
hass
需要Pyrhon 3.7
及以上,实测3.6
也可以,不过会提示失去支持。3.8
版本依赖会报错,所以我们安装Python 3.7.8
。
如果对于你的网速有信心可以直接执行pyenv install 3.7.8
。由于国内网络原因在这使用本地安装,首先使用各种方法去python官网下载Python-3.7.8.tar.xz
,可以使用迅雷等p2p
软件。然后把下载好的软件放到~/.pyenv/cache
文件夹下,cache
文件夹没有可以自己新建一个。然后执行pyenv install 3.7.8
等待就可以了,期间没有安装进度,等待提示成功即可。
python
安装完成后就可以安装hass
了。首先全局配置清华pip
源:
1 | pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple |
升级pip
1 | pip install pip -U |
利用venv
创建虚拟环境:
1 | cd 任何想要的目录 |
进入虚拟环境并激活
1 | cd hass |
安装hass
1 | python3 -m pip install homeassistant |
需要等待一段时间。。。
启动hass
1 | hass |
第一次启动hass
需要下载一些依赖,启动成功后在浏览器中打开地址即可:
如果有宝塔之类的面板记得在防火墙中放行8123端口
打开http:你的ip:8123
出现面板就是安装成功了,如果失败就再次执行hass
结语
到此hass
就搭建完成了,已经完成了智能家居联动的最重要步骤,后面的添加使用等有时间再出教程吧。
掌控你的智能家居 - homeassistant详细搭建教程
https://liunian.js.org/2020/08/11/掌控你的智能家居 - homeassistant详细搭建教程/