开启智能家居2——Home Assistant OS 基本配置

  • by

Home Assistant OS 安装并初始化好以后,就可以开始进行一些基本配置

基本概念

HA OS的大部分重要概念都可以在配置页面(configuration)看到。

第1组概念有4个,分别是:

  • Integrations:定义了与三方平台的接入协议(例如小米平台、iOS平台、Dyson产品、netgear产品等等)
  • Devices:定义了接入HA OS的所有设备(例如手机、风扇、灯泡、吸尘器、传感器、打印机……)
  • Entities:定义了系统中具体的一个一个属性(例如手机的电量、打印机剩余墨水量、手机剩余电量、空气湿度),这些属性可能是通过某一个设备(Device)提供的,也可能是通过某个集成(Integrations) 直接提供的
  • Areas:用来定义家庭空间(比如卧室、厨房、客厅……)本质上就是设备(Devices)和实体(Entities)的一个分组功能(或者叫文件夹)

第2组概念有也4个:

分別是

  • Blueprints 蓝图:本质上就是预制好的自动化(Automations)的模版,用来快速创建自动化流程(Automations)
  • Automations 自动化流程:这是HA OS中构建智能家居最最最重要的模块,它可以定义一系列的自动化设备操作,并关联相关的触发条件与执行条件,来实现家中设备的自动运行。例如:如果检测到人经过就开灯,或者定时启动扫地机器人……
  • Scenes 场景:场景用于批量执行设备状态的改变,例如我们可以设定一个电影场景:自动关闭窗帘和灯,并打开投影仪。或者睡眠场景:一起关掉所有的灯。一个场景由多个设备及其对应的状态来定义。
  • Scripts 脚本:类似场景,脚本用于按顺序执行多个指令,比如:先拉开窗帘,再等10分钟,再响起闹钟……

第3组概念是

这是HA OS中关于人的概念,HA OS可以追踪家中每个人(People)的行踪:例如何时离家、何时到家,在家里的哪个位置(Zones)。同时还可以管理系统中的用户权限(Users)与登录信息。

HA OS追踪人的目的是为了便于触发人的位置相关的自动化流程,例如:当有人到家时,打开客厅的灯;或者如果所有人都不在家时,开启警报器。

配置文件编辑器

尽管HA OS提供了可视化界面配置以上所有的信息,但功能非常有限,许多细节上的调整都无法达成。因此我们需要安装一个文本编辑器直接编辑YAML配置文件。

首先在左侧导航栏选择 Supervisor 然后在右侧界面选择 Add on Store,然后选择 File Editor

然后点击安装按钮安装即可,此时可以在左侧导航栏看到 File Editor

这里可以看到所有的系统配置相关的文件,官网中的使用说明大多通过 YAML 文件来配置,例如下图:

配置样例1 – 连接 Dyson平台

家里有一个 Dyson 空气净化器,一般通过 Dyson 手机 App控制。接入HomeAssistant 以后,可以被任何自动化脚本控制。

配置方法在官网有说明:https://www.home-assistant.io/integrations/dyson/

具体而言就是在 /config/configuration.yaml 文件中添加以下内容

dyson:
  username: YOUR_DYSON_USERNAME
  password: YOUR_DYSON_PASSWORD
  language: YOUR_DYSON_ACCOUNT_LANGUAGE(US, FR, NL, GB, AU 之一)

系统会自动检测Dyson账号中的所有设备,并在系统中添加 Dyson 风扇、Dyson 风扇中的空气质量传感器、温度传感器、湿度传感器。如下图所示:

配置样例2 – 自动启动空气净化器

尽管Dyson的空气净化器有自动模式,但是启动规则无法自定义。这里我们可以使用HomeAssistant平台的自动化模块(Automations)来定义开启和关闭空气净化器的规则。

我在 /config/automations.yaml 中添加了如下定义:

- id: '1609373251074'
  alias: CleanDust #这个自动化脚本的名字
  description: ''
  trigger: # 触发条件:dust传感器指数发生变化
  - platform: state
    entity_id: sensor.bedroom_dust
  condition: []
  action: #执行操作
  - choose: 
    - conditions: # 先判断条件
      - condition: state 
        entity_id: sensor.bedroom_dust  # 如果dust传感器指数超过3
        state: 
        - '3'
        - '4'
        - '5'
        - '6'
        - '7'
        - '8'
        - '9'
        - '10'
      sequence: #那么执行以下操作
      - service: fan.set_speed #将空气净化器风速设为7
        data:
          speed: 7
        entity_id: fan.bedroom
    default: # 否则关闭空气净化器
    - service: fan.turn_off
      data: {}
      entity_id: fan.bedroom
  mode: single 

以上的自动化流程的内容是,每当灰尘传感器指数发生变化时,如果灰尘指数大于3,就将空气净化器风速设为7档,否则关闭空气净化。

更详细的自动化流程创建语法可以参考官方手册 https://www.home-assistant.io/docs/automation/basics/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.