智慧家庭 - HA(3) - 完善 HomeAssistant 的常见基础配置

本文索引:

  • 启用认证系统
  • 配置 Zone 信息
  • 为 HA 主机添加系统监控组件

启用认证系统

相关组件:

  • Authentication
  • Authentication Providers

HA 以 auth_provider 的方式支持不同种类的认证,在 configuration.yml 中的 homeassistant 节点下添加:

homeassistant:
  auth_providers:
   - type: {auth provider type}

截至 0.80 版本,HA 支持 3 种 auth_provider:

  1. home assistant auth provider: 默认的认证提供器,类似于用户管理系统,type 名称为 homeassistant
  2. trusted network: 安全网络,例如,配置家庭局域网不受认证系统的限制,type 名称为 trusted_networks
  3. legacy api password: 该功能主要是为了向前兼容 api_password 认证功能

一个完整的例子为:

homeassistant:
  auth_providers:
   - type: homeassistant
   - type: trusted_networks
   - type: legacy_api_passowrd

http:
  api_password: !secret http_password
  trusted_networks:
    - 127.0.0.1
    - 192.168.1.0/24

上面的例子同时支持 3 种认证,可根据需要选择认证种类。根据官方的说法,legacy_api_passowrd 认证会在未来的版本中移除,且 trusted_networks 的配置信息将从 http 模块移动到认证系统下。

值得注意的是,使用 trusted_networks 认证时,multi-factor authentication 模块将不会参与认证过程。另外,如果在同一机器使用反向代理服务器(如 nginx)向外暴露 HA,那么任何来自 WAN 并由反向代理服务器转发至 HA 的请求都会被认为处于可信任网络中,详情参考这篇文章以及 Nginx。

配置 Zone 信息

相关组件:

  • Zone

Zone 组件用于划分自定义地图区域,这些区域可作为其他组件的参考信息,例如 Device Tracker 可根据 Zone 来判断一个移动设备是否位于某区域内。首先在 configuration.yaml 根配置中启用 Zone 组件,并指定从 zones.yaml 文件中提取具体 Zone 信息:

zone: !include zones.yaml

新建 zones.yaml 文件,并定义 Zone 如下:

- name: Home
  latitude: {latitude-of-your-home}
  longitude: {longitude-of-your-home}
  radius: 250
  icon: mdi:account-multiple

- name: Office
  latitude: {latitude-of-your-office}
  longitude: {longitude-of-your-office}
  radius: 250
  icon: mdi:briefcase

一条 Zone 节点提供以下参数:

  • name: 指定该 Zone 的名称,可选
  • latitude: 指定 Zone 的纬度,必填
  • longitude: 指定 Zone 的经度,必填
  • radius: 覆盖半径,以米为单位,可选,默认值为 100 米
  • icon: 指定 Zone 的图标,mdi 的标准名称,可至 https://materialdesignicons.com/ 参考查询
  • passive: 指示是否仅使用 Zone 组件用于自动化并从 Web 前端隐藏,默认为 false

经纬度信息因使用的 Map 组件不同而异,HA 默认采用的 MapOpenStreetMap,可至 Google Map 查询经纬度。如果不分配任何 Zone 配置节,HA 将使用根配置中指定的经纬度信息绘制一个默认的 Home Zone

为 HA 主机添加系统监控组件

相关组件:

  • Fast.com
  • System Monitor

sensors.yaml 文件中包含 System Monitor 组件:

- platform: systemmonitor
  resources:
    - type: disk_use_percent
      arg: /
    - type: memory_use_percent
    - type: processor_use
    - type: network_in
      arg: eth0
    - type: network_out
      arg: eth0
    - type: last_boot

注意,读取的磁盘信息需要相应的 UNIX 用户权限

引用实体的 ID 可在 Web UI 的 States 面板找到:

entity id 所在位置

groups.yaml 创建一个群组以展示这些信息:

system_monitor:
  entities:
    - sensor.processor_use
    - sensor.memory_use_percent
    - sensor.disk_use_percent_
    - sensor.network_in_eth0
    - sensor.network_out_eth0
    - sensor.last_boot

最后,在 customize.yaml 中修改某些实体的自定义信息:

group.system_monitor:
  friendly_name: System Monitor

最终的效果如下图:


效果图

你可能感兴趣的:(智慧家庭 - HA(3) - 完善 HomeAssistant 的常见基础配置)