用Arduino玩ESP32(08):Homeassistant和MQTT

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

按照下面的步骤完成后,开启防火墙8123端口,然后打开浏览器http://服务器ip:8123即可通过web-ui访问控制

一、安装系统依赖环境(root身份执行)

引自:https://www.home-assistant.io/docs/installation/centos/

添加一个名为homeassistant的用户
useradd -rm homeassistant
转到/srv目录,建立homeassistant文件夹
cd /srv
mkdir homeassistant
更改此文件夹的所有者和所属组
chown homeassistant:homeassistant homeassistant

二、Python虚拟环境安装Homeassistant(切换用户操作)

更换用户
su -s /bin/bash homeassistant
切换目录,创建并进入虚拟环境
cd /srv/homeassistant
python3 -m venv homeassistant_venv
source /srv/homeassistant/homeassistant_venv/bin/activate
虚拟环境下更新pip, setuptools(此步非常重要,否则安装HASS时会报错)
pip install --upgrade pip
安装依赖netdisco和warrant(此步非常重要,否则安装完HASS会报discovery等错误)
pip install netdisco
pip install warrant
正式安装HomeAssistant,速度会非常快
pip install homeassistant
安装完毕,退出虚拟环境
exit

三、设置开机启动

编辑开机启动脚本信息
vi /etc/systemd/system/[email protected]
[Unit]
Description=Home Assistant
After=network.target

[Service]
Type=simple
User=homeassistant
Environment=PATH="$VIRTUAL_ENV/bin:$PATH"
ExecStart=/srv/homeassistant/homeassistant_venv/bin/hass -c "/home/homeassistant/.homeassistant"

[Install]
WantedBy=multi-user.target

四、控制命令:

更新系统设置
systemctl daemon-reload
设置HomeAssistant开机启动
systemctl enable [email protected]
启动HomeAssistant
systemctl start [email protected]
重新启动HomeAssistant
systemctl restart [email protected]
查看HomeAssistant状态
systemctl status [email protected]

忘记密码

找到.storage/隐藏文件夹删除里面的文件,然后重启设备,重新注册就好

如果是使用的云服务器,还需开方端口,默认8123

#define MQTT_HOST://MQTT服务器地址
#define MQTT_PORT://MQTT服务器端口
#define MQTT_USER://MQTT服务器用户名
#define MQTT_PASS://MQTT服务器密码
#define STA_SSID://WI-FI帐号
#define STA_PASS://WI-FI密码

你可能感兴趣的:(用Arduino玩ESP32(08):Homeassistant和MQTT)