跳至正文

HomeAssistant智能家居

一、基本简介

智能家居:广义上来讲就是物联网,狭义上来说是家庭内部电器的智能化、自动化控制

二、基本结构

1、通用的使用方式是:直接使用厂商的产品以及对应的APP服务进行控制(如:米家、Aqara、HomeKit等厂商的生态,其中Aqara厂商对生态放宽,可以兼容到米家和 HomeKit的APP中进行控制)

  • 优点是:使用体验好,配置方便
  • 缺点是:各厂商生态互不相同,Homekit购买配件较贵

2、搭建Home Assistant+其他厂商的产品: 通过搭建homeassistant本地服务,将厂商的不同生态产品全部集成在一起,包括自定义开发板(ESP8266、ESP32、Arduino等)、通过配套的 Home Assistant APP进行控制,或者对接小爱同学、HomeKit家庭APP、Siri语音控制等

  • 优点是:可以集中使用不同生态的不同产品
  • 缺点是:需要自行搭建服务(需使用独立服务器)并且有一定的动手能力

三、服务框架及开发设备简介

1、Home Assistant

Home Assistant 简称HA或HASS,是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。

2、ESPhome

ESPHome 是一个通过简单而强大的配置文件控制您的 ESP8266/ESP32 并通过家庭自动化系统远程控制它们的系统。

通常以插件形式安装在homeassiatant中,当然也可以独立安装

四、搭建系统

1、Home Assistant 搭建

访问Home Assistant官网查看官方安装教程,官方教程总体可以分为四类

  • Home Assistant Operating System(OS镜像)
  • Home Assistant Container(Docker容器)
  • Home Assistant Core(Python 虚拟环境)
  • Home Assistant Supervised(脚本完全安装)

官方推荐前两种即使用OS镜像或Docker容器,可以非常方便的将系统部署在你的设备上

  • 优点:适合小白搭建,有完整教程
  • 缺点:缺少Add-on Store插件商店,如:不能安装esphome插件

使用Pythone虚拟环境搭建

  • 优点:适合小白搭建,有完整教程
  • 缺点:缺少Add-on Store插件商店,如:不能安装esphome插件

通过脚本完全安装

安装过程基本可以从参考这篇文章

详细步骤

安装依赖

1、Home Assistant Supervised 依赖的操作系统和软件版本如下

  • Docker CE >= 19.03
  • Systemd >= 239
  • NetworkManager >= 1.14.6
  • AppArmor == 2.13.x (built into the kernel)
  • Debian Linux Debian 10 aka Buster (no derivatives)

Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

NetWorkManager

创建配置文件,配置NetworkManager不使用随机MAC

sudo mkdir -p /etc/NetworkManager/conf.d/
cat << EOF | sudo tee /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf
[connection]
wifi.mac-address-randomization=1

[device]
wifi.sacn-rand-mac-address=no
EOF

安装

sudo apt-get install -y network-manager

停止ModemManager服务

sudo systemctl stop ModemManager
sudo systemctl disable ModemManager

其他依赖软件

sudo apt-get install -y apparmor-utils jq software-properties-common apt-transport-https avahi-daemon ca-certificates curl dbus socat

配置Docker

将root用户加入docker组

sudo usermod -aG docker root

设置docker的日志驱动,以及镜像的国内下载点

if [ | -d /etc/docker ];then
    sudo mkdir -p /etc/docker
fi
cat << EOF | sudo tee /etc/docker/daemon.json
{
    "log-driver":"journald",
    "registry-mirrors":[
    "https://rw21enj1.mirror.aliyuncs.com",
    "https://dockerhub.a2k8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装Home Assistant Supervised

国内网络的安装方法

国内网络无法正确解析https://raw.githubusercontent.com/的IP地址,可以通过改写hosts文件手动添加,但是下载经常失败,安装脚本也包含了部分在线下载的部分,无法正确执行。

此处改写了安装脚本,把在线下载的文件拷贝到本地,然后从本地路径加载,完成安装。

这种方法的问题时,当版本更新之后,在线获取的版本号可能需要手动更新一下。

官方安装地址

修改版国内安装地址下载包后上传到服务器

sudo bash installer.sh --machine raspberrypi4

等待安装完成即可

首次安装完成后,可能不会立即打开网页,需要耐心等待系统后台下载文件后才能打开

问题处理

安装docker提示

Repository ‘http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian buster InRelease’ changed its ‘Suite’ value from ‘stable’ to ‘oldstable’
需要apt update

安装homeassistant

[Warning] This installer is no longer supported.
[Warning]
[Warning] Home Assistant might work today, tomorrow maybe not.
[Warning]
[Warning] If you want more control over your own system, run
[Warning] Home Assistant as a VM or run Home Assistant Core
[Warning] via a Docker container.
[Warning]
Please typ “not supported” to continue this installation

使用的脚本不对,这个提示是在使用官方脚本时进行提示,使用国内修改版不会提示

安装任何插件

进入系统后提示无法安装任何插件,系统日志中有关于 supervisor 的错误日志,请重新手动安装 supervisor

apt install supervisor

4、刷入ESPhome系统

5、Home Assistant添加集成

6、 Home Assistant 连接HomeKit

使用苹果生态homekit控制的设备,如果需要远程控制的话,需要在本地使用一台ios设备(只支持:Apple TV、homepod)登录相同的icloud账号即可远程控制

五、自动化设置

1、使用家庭app(homekit)设置自动化

必须绑定本地中枢后才能使用

2、使用homeassistant设置自动化

安装后需要安装esp8266固件开发包

刷入系统(esp easy)

下载espeasy程序文件

六、显示组件

使用中文字体需要安装pillow python插件,使用该包将 TrueType 文件转换为内部格式

需要python环境

sudo apt-get install python

提示错误:
The following packages have unmet dependencies:
python-dev : Depends: libpython-dev (= 2.7.11-1) but it is not going to be installed
Depends: python2.7-dev (>= 2.7.11-1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

解决方法:

1.安装aptitude
sudo apt-get install aptitude

2.利用aptitude来安装
sudo aptitude install python-dev

aptitude与apt-get的区别和联系
aptitude与apt-get都是Debian及其衍生系统中的包管理工具。aptitude在处理包依赖问题上更好。

安装pip

python 2:wget https://bootstrap.pypa.io/pip/2.7/get-pip.py

python3:wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

修改ubuntu的默认python版本
ubuntu14.04LTS上装有两个版本的python:python2.7.6与python3.4,默认使用python2.7.6。

可以使用以下命令来修改默认python版本:

sudo cp /usr/bin/python /usr/bin/python_bak #备份

sudo rm /usr/bin/python #删除

sudo ln -s /usr/bin/python3.4 /usr/bin/python #默认设置为python3.4

这样在终端中运行Python时,默认启动的就是3.4版本了

安装插件

pip install Pillow

查看版本pip -V

查看pip插件列表 pip list

字体文件放入/usr/share/hassio/homeassistant/esphome/fonts/该目录

发表回复