智慧家庭 - 完善 HomeAssistant 的常见基础配置
本文索引:
启用认证系统
相关组件:
HA 以 auth_provider
的方式支持不同种类的认证,在 configuration.yml
中的 homeassistant
节点下添加:
1 | homeassistant: |
截至 0.80 版本,HA 支持 3 种 auth_provider
:
home assistant auth provider
: 默认的认证提供器,类似于用户管理系统,type 名称为homeassistant
trusted network
: 安全网络,例如,配置家庭局域网不受认证系统的限制,type 名称为trusted_networks
legacy api password
: 该功能主要是为了向前兼容api_password
认证功能
一个完整的例子为:
1 | homeassistant: |
上面的例子同时支持 3 种认证,可根据需要选择认证种类。根据官方的说法,
legacy_api_passowrd
认证会在未来的版本中移除,且trusted_networks
的配置信息将从http
模块移动到认证系统下。
值得注意的是,使用 trusted_networks
认证时,multi-factor authentication
模块将不会参与认证过程。另外,如果在同一机器使用反向代理服务器(如 nginx
)向外暴露 HA,那么任何来自 WAN 并由反向代理服务器转发至 HA 的请求都会被认为处于可信任网络中,详情参考这篇文章以及 Nginx。
配置 Zone 信息
相关组件:
Zone
组件用于划分自定义地图区域,这些区域可作为其他组件的参考信息,例如 Device Tracker
可根据 Zone
来判断一个移动设备是否位于某区域内。首先在 configuration.yaml
根配置中启用 Zone
组件,并指定从 zones.yaml
文件中提取具体 Zone
信息:
1 | zone: !include zones.yaml |
新建 zones.yaml
文件,并定义 Zone
如下:
1 | - name: Home |
一条 Zone
节点提供以下参数:
name
: 指定该Zone
的名称,可选latitude
: 指定Zone
的纬度,必填longitude
: 指定Zone
的经度,必填radius
: 覆盖半径,以米为单位,可选,默认值为 100 米icon
: 指定Zone
的图标,mdi
的标准名称,可至 https://materialdesignicons.com/ 参考查询passive
: 指示是否仅使用Zone
组件用于自动化并从 Web 前端隐藏,默认为false
经纬度信息因使用的
Map
组件不同而异,HA 默认采用的Map
是OpenStreetMap
,可至 Google Map 查询经纬度。如果不分配任何Zone
配置节,HA 将使用根配置中指定的经纬度信息绘制一个默认的Home Zone
。
为 HA 主机添加系统监控组件
相关组件:
在 sensors.yaml
文件中包含 System Monitor
组件:
1 | - platform: systemmonitor |
注意,读取的磁盘信息需要相应的
UNIX
用户权限
引用实体的 ID 可在 Web UI 的 States
面板找到:
在 groups.yaml
创建一个群组以展示这些信息:
1 | system_monitor: |
最后,在 customize.yaml
中修改某些实体的自定义信息:
1 | group.system_monitor: |
最终的效果如下图: