不定期更新。
1. 目录位置
Home Assistant有两个主要的目录,一个是配置目录,有configuration.yaml(配置文件)、.storage(组件信息存储文件夹)、home-assistant.log(程序运行日志)等;一个是安装目录,放置有程序核心代码及官方组件代码(components目录)。
windows
- 安装目录
1
2
3
4
5
6
7
8
9
10
11
12# 新建.bat文件运行
@echo off
rem 在PATH变量中查找Python安装包路径
set string=%PATH%
set targetstr="site-packages"
:split
for /f "tokens=1,* delims=;" %%i in ("%string%") do (
echo %%i | findstr %targetstr%
set string=%%j
)
if not "%string%"=="" goto split
pause - 配置目录
1
2# cmd命令行执行
echo %APPDATA%/.homeassistant
- 安装目录
linux(直接安装方式)
- 安装目录
1
2# root用户运行
find / -name homeassistant | grep -E 'site-packages|dist-packages' - 配置目录
1
2# root用户运行
find / -name configuration.yaml
- 安装目录
linux(docker手动拉取镜像运行)
- 安装目录(容器):
/usr/src/homeassistant/homeassistant
- 配置目录(容器):
/config
- 安装目录(容器):
linux(hassio)
- 安装目录(容器):
/usr/src/homeassistant/homeassistant
- 配置目录(容器):
/config
- 配置目录(宿主机):
/usr/share/hassio/homeassistant
Tips
hassio实际也是通过容器跑homeassistant。
- 安装目录(容器):
2. 安装插件(自定义组件)
Home Assistant各种各样的功能以插件的形式提供,目前配置方法还是以文本编辑为主,分两步走。
- 把下载的插件目录放到
[配置目录]/custom_components/
文件夹下,确认__init__.py
文件位于[配置目录]/custom_components/[插件名称]/__init__.py
- 编辑
[HA配置目录]/configuration.yaml
加入相应的配置信息启用custom_components目录
没有custom_components文件夹则新建一个。
3. 调试及查看程序运行日志
组件开发一般都设置有不同级别的日志信息输出,一般日常运行在info级别,调式时候应改为debug级别。
- 设置组件运行日志的生成规则,更详细说明看官方文档
1
2
3
4
5# [HA配置目录]/configuration.yaml
logger:
default: error # 提高所有组件的默认级别,调试完后改回info(预设)
logs: # 设定指定组件的级别,debug有更详细的输出
custom_components.[插件名称]: debug # 不需要[]符号调试建议
把不想看的组件级别调高,把想看的组件级别调低(更多输出),有助于排查指定插件问题。
- 查看日志
- web浏览器方式:
“开发者工具”-> “信息”-> LOAD FULL HOME ASSISTANT LOG
- 查看日志文件方式:
tail -f [HA配置目录]/home-assistant.log
Tips
home-assistant.log日志文件程序每次启动会重新生成;也可以直接用文本编辑器打开观看。
- docker日志方式,宿主机运行命令:
docker logs [容器名/容器ID] -f --tail 1
筛选信息
可以再指令后增加"| grep 关键词"进一步筛选输出,比如
| grep error
筛选错误提示信息。
- web浏览器方式:
4. 控制历史数据生成
Home Assistant运行占用空间主要是各类entity的历史数据,可以通过recorder组件控制生成,更详细的使用说明建议看官方文档。
1 | recorder: |
Tips
exclude与include可以一起使用,规则是先判断include再判断exclude(应该)。
5. 容器与宿主机拷贝文件
很多HA都是跑在docker上,配置目录可以通过映射方式(bind)方便地在宿主机目录访问,但如果想要查看或修改安装目录的源码,则可以用命令拷贝出来。
1 | # 拷贝宿主机文件至容器 |
6. 换源
软件的更新源一般在国外服务器,经常蜗牛速度,换国内源可以大大提升体验,以下方法如不适用,可以搜索网上更详细的教程。
pip
- linux,直接用命令创建,哪个用户运行HA就用哪个用户执行
1
2
3
4
5mkdir -p ~/.pip/ && \
echo "[global]" > ~/.pip/pip.conf && \
echo "index-url = http://mirrors.aliyun.com/pypi/simple/" >> ~/.pip/pip.conf && \
echo "[install]" >> ~/.pip/pip.conf && \
echo "trusted-host = mirrors.aliyun.com" >> ~/.pip/pip.conf - windows,CMD命令行下执行命令创建
1
2
3
4
5mkdir -p %APPDATA%\.pip && ^
echo [global] > %APPDATA%\.pip\pip.ini && ^
echo index-url = http://mirrors.aliyun.com/pypi/simple/ >> %APPDATA%\.pip\pip.ini && ^
echo [install] >> %APPDATA%\.pip\pip.ini && ^
echo trusted-host = mirrors.aliyun.com >> %APPDATA%\.pip\pip.ini创建方式
也可以自行创建文件再添加内容。
- linux,直接用命令创建,哪个用户运行HA就用哪个用户执行
linux,一般可以用命令替换网址就能使用
1
2
3
4# Debian 需root权限
sed -i "s@http://\(security.debian.org\|deb.debian.org\)@http://mirrors.aliyun.com@g" /etc/apt/sources.list
# Ubuntu 需root权限
sed -i "s@http://\(security.ubuntu.com\|archive.ubuntu.com\)@http://mirrors.aliyun.com@g" /etc/apt/sources.listdocker,在配置文件中增加内容
1
vi /etc/docker/deamon.json
1
2
3
4
5
6
7
8// /etc/docker/deamon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8","8.8.4.4"] // 换成你常用的DNS地址
}dns配置
在/etc/resolv.conf设置DNS经常会被覆盖,建议在daemon.json中指定。
7.时间不对
一般用docker方式跑HA会出现时间慢8小时,这是由于镜像的时区为UTC,修改为CST即可。
- 首次运行容器,docker run加入参数
1
2
3
4# 方式1.指定环境变量
-e "TZ=Asia/Shanghai"
# 方式2.把宿主机的已配置好的文件覆盖掉容器的文件
-v "/etc/localtime:/etc/localtime:ro" - 已在运行容器,进入容器修改
1
2
3
4docker exec -it [容器名/容器id] sh
容器内执行命令:
echo "Asia/Shanghai" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
10068. 其它
- 入门教程建议看HAChina的教程,很全面也够详细。