Home Assistant 核心集成

Home Assistant 核心 integration集成将 Home Assistant 与您的设备、服务等连接和集成。 [Learn more] 提供了通用实现,例如通用的 homeassistant.turn_on 操作。

在 YAML 中编辑通用设置

Home Assistant 核心集成还负责通用设置。这些设置在初始设置过程中定义,但您可以稍后在 Settings > System > General 中更改。有关详细步骤,请参阅 基本设置

如果您更喜欢在 YAML 中编辑,可以在 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中定义您的通用设置。 请注意,对于某些设置,如果它们是在 YAML 中定义的,则无法从 UI 中编辑。这些设置将显示为灰色或不可访问。

截图显示坐标无法编辑,因为它们是在 configuration.yaml 文件中定义的 截图显示坐标无法编辑,因为它们是在 configuration.yaml 文件中定义的。

要在 YAML 中开始通用设置,请按照以下步骤操作:

  1. 将以下信息复制到您的 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中。

    homeassistant:
      name: Home
      latitude: 32.87336
      longitude: 117.22743
      elevation: 430
      radius: 100
      unit_system: metric
      currency: USD
      country: US
      time_zone: "America/Los_Angeles"
      allowlist_external_dirs:
        - "/usr/var/dumping-ground"
        - "/tmp"
      allowlist_external_urls:
        - "http://images.com/image1.png"
      media_dirs:
        media: "/media"
        recordings: "/mnt/recordings"
      debug: false
    
  2. 编辑每个条目以适应您的家庭。

Configuration Variables

name string (Optional)

Home Assistant 运行所在位置的名称。

latitude float (Optional)

您位置的纬度,用于计算太阳升起和落下的时间。

longitude float (Optional)

您位置的经度,用于计算太阳升起和落下的时间。

elevation integer (Optional)

海拔高度(以米为单位)。影响日出数据。

radius integer (Optional)

定义您位置区域的半径(以米为单位)。影响位置感知。

unit_system string (Optional)

metric 表示公制,us_customary 表示美制。这也设置了温度单位,公制为摄氏度,美制为华氏度。

temperature_unit string (Optional)

覆盖 unit_system 设置的温度单位。C 表示摄氏度,F 表示华氏度。

time_zone string (Optional)

维基百科的 tz 数据库时区列表TZ 列中选择您的时区。

currency string (Optional, default: EUR)

维基百科的 ISO 4217 活动代码列表Code 列中选择您的货币代码。

external_url string (Optional)

Home Assistant 从互联网访问的 URL。例如:https://example.duckdns.org:8123。请注意,此设置只能包含协议、主机名和端口;不支持使用路径。这也可以通过导航到 Settings > System > Network 进行配置。

internal_url string (Optional)

Home Assistant 从本地网络访问的 URL。例如:http://192.168.0.10:8123。请注意,此设置只能包含协议、主机名和端口;不支持使用路径。这也可以通过导航到 Settings > System > Network 进行配置。

customize string (Optional)

自定义 实体。

customize_domain string (Optional)

自定义 域中的所有实体。

customize_glob string (Optional)

自定义 匹配模式的实体。

allowlist_external_dirs list (Optional)

可以用作发送文件源的文件夹列表。

allowlist_external_urls list (Optional)

可以获取的外部 URL 列表。URL 可以匹配特定资源(例如,http://10.10.10.12/images/image1.jpg)或允许访问其内资源的相对路径(例如,http://10.10.10.12/images 将允许访问该路径下的任何内容)

media_dirs map (Optional)

本地媒体源及其磁盘路径的映射。

language string (Optional, default: en)

Home Assistant 使用的默认语言。例如,这可能会影响语音助手使用的语言。语言应指定为 RFC 5646 语言标签,并且必须是 Home Assistant 翻译的语言。

country string (Optional)

Home Assistant 运行所在的国家。例如,这可能会影响无线电设置以符合当地法规。国家应指定为 ISO 3166.1 alpha-2 代码。从 维基百科的 ISO 31661 alpha-2 正式分配代码列表Code 列中选择您的国家。

debug boolean (Optional, default: false)

启用 Home Assistant 的内置调试功能,这可以通过启用运行时检查来帮助定位行为不端的集成。它可以阻止许多不安全的线程操作导致系统崩溃。启用调试会对系统性能产生轻微影响,不建议长期使用。

在 YAML 中编辑实体设置

Home Assistant 核心集成还负责实体设置。 默认情况下,您的所有设备都将可见,并且具有由其域确定的默认图标。您可以通过更改某些参数来自定义前端页面的外观和感觉。这可以通过覆盖特定实体的属性来完成。

大多数这些设置可以从 UI 中更改。有关详细步骤,请参阅 自定义实体

如果您更喜欢在 YAML 中编辑,可以在 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中定义您的通用设置。

可能的值

Configuration Variables

friendly_name string (Optional)

在 UI 中显示的实体名称。

entity_picture string (Optional)

用作实体图片的 URL。

icon string (Optional)

来自 Material Design Icons 的任何图标。名称前缀为 mdi:,例如 mdi:home。注意:较新的图标可能尚未在当前的 Home Assistant 版本中可用。

assumed_state boolean (Optional, default: true)

对于具有假定状态的开关,将显示两个按钮(关闭,打开)而不是开关。通过将 assumed_state 设置为 false,您将获得默认的开关图标。

device_class device_class (Optional, default: None)

设置设备的类别,更改在 UI 中显示的设备状态和图标(见下文)。它不会设置 unit_of_measurement

unit_of_measurement string (Optional, default: None)

定义测量单位(如果有)。这也会影响历史可视化中的图形表示为连续值。缺少 unit_of_measurement 的传感器显示为离散值。

initial_state boolean (Optional, default: None)

设置自动化的初始状态,onoff

设备类别

设备类别对某些实体进行分类,并影响这些实体在仪表板上的显示方式。一些设备类别按测量类型进行分类,例如传感器或二进制传感器。其他设备类别则分类为更具体的类型。例如,cover 可以是百叶窗或窗帘。对于给定的平台,设备类别会影响用户界面中显示的内容。例如:加湿器有两个设备类别,加湿器和除湿器。如果设备类别设置为 humidifier,UI 显示 加湿。如果设置为 dehumidifier,则显示 干燥

设备类别目前由以下平台支持:

有关支持的设备类别列表,请参阅平台的文档。

手动自定义

Important

如果您在 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中实现 customizecustomize_domaincustomize_glob,则必须确保它是在 homeassistant: 内完成的,否则将失败。

homeassistant:
  name: Home
  unit_system: metric
  # etc

  customize:
    # 为每个要覆盖的实体添加一个条目。
    thermostat.family_room:
      entity_picture: https://example.com/images/nest.jpg
      friendly_name: Nest
    switch.wemo_switch_1:
      friendly_name: Toaster
      entity_picture: /local/toaster.jpg
    switch.wemo_switch_2:
      friendly_name: Kitchen kettle
      icon: mdi:kettle
    switch.rfxtrx_switch:
      assumed_state: false
    media_player.my_media_player:
      source_list:
        - Channel/input from my available sources
  # 自定义域中的所有实体
  customize_domain:
    light:
      icon: mdi:home
    automation:
      initial_state: "on"
  # 自定义匹配模式的实体
  customize_glob:
    "light.kitchen_*":
      icon: mdi:description
    "scene.month_*_colors":
      icon: mdi:other

自定义 STUN 和 TURN 服务器

可以覆盖用于启动 WebRTC 流的默认 STUN 和 TURN 服务器列表。 每个 STUN 或 TURN 服务器可以按下表所述进行配置。

Configuration Variables

ice_servers list Required

STUN 和 TURN 服务器配置列表

url string Required

STUN 或 TURN 服务器 URL。这可以是单个 URL 或 URL 列表。

username string (Optional)

TURN 服务器身份验证的用户名

credential string (Optional)

TURN 服务器身份验证的凭据

WebRTC 配置示例

Important

如果您在 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中实现 webrtc,则必须确保它是在 homeassistant: 内完成的,否则将失败。

homeassistant:
  name: Home
  unit_system: metric
  # etc

  webrtc:
    ice_servers:
    # 为每个 STUN 或 TURN 服务器添加一个条目
    - url:
      - "stun:stun.example.com:19302"
      - "stun:stun2.example.com:12345"
    - url: "turn:turn.domain.com"
      username: "username"
      credential: "abc123"

操作

homeassistant 集成提供了控制 Home Assistant 本身的操作,以及对任何实体的通用控制。

操作 homeassistant.check_config

读取配置文件并检查其正确性,但不会将其加载到 Home Assistant 中。如果发现错误,会创建一个持久通知和日志条目。

操作 homeassistant.reload_all

重新加载所有可以在不重新启动 Home Assistant 的情况下重新加载的 YAML 配置。

它调用所有可用的域上的 reload 操作。此外, 它重新加载核心配置(相当于调用 homeassistant.reload_core_config)、主题(frontend.reload_themes)和自定义 Jinja(homeassistant.reload_custom_templates)。

在重新加载之前,会执行基本的配置检查。如果失败,则不会执行重新加载并会引发错误。

操作 homeassistant.reload_custom_templates

重新加载 config/custom_templates 目录中的所有 Jinja 模板。对这些模板的更改将在下次导入模板渲染时生效。

操作 homeassistant.reload_config_entry

重新加载集成配置条目。

数据属性 描述
entity_id 用于引用配置条目的实体 ID 列表。
area_id 用于引用配置条目的区域 ID 列表。
device_id 用于引用配置条目的设备 ID 列表。
entry_id 用于引用配置条目的单个配置条目 ID。

操作 homeassistant.reload_core_config

重新加载 homeassistant: 下的核心配置和所有链接的文件。加载后,将应用新配置。新的 customize: 信息将在下次实体状态更新时应用。

操作 homeassistant.restart

重新启动 Home Assistant 实例(也会在启动时重新加载配置)。

这也会在重新启动之前进行配置检查。如果配置检查失败,则 Home Assistant 不会重新启动,而是会创建一个 ID 为 persistent_notification.homeassistant_check_config 的持久通知。日志将显示配置检查失败的详细信息。

操作 homeassistant.stop

停止 Home Assistant 实例。必须从主机设备重新启动 Home Assistant 才能再次运行。

操作 homeassistant.set_location

更新 Home Assistant 默认区域(通常为“Home”)的位置。

数据属性 可选 描述
latitude 您位置的纬度。
longitude 您位置的经度。
elevation 您位置的海拔高度。

示例

actions:
  - action: homeassistant.set_location
    data:
      latitude: 32.87336
      longitude: 117.22743
      elevation: 120

操作 homeassistant.toggle

通用操作,用于切换设备的开/关。与 light.toggleswitch.toggle 等操作的用法相同。与其他操作的区别在于,它可以用于混合不同的域,例如,可以在单个操作中切换灯光和开关。

数据属性 可选 描述
entity_id 要切换开/关的设备的 entity_id。

示例

actions:
  - action: homeassistant.toggle
    target:
      entity_id: 
        - light.living_room
        - switch.tv

操作 homeassistant.turn_on

通用操作,用于打开设备。与 light.turn_onswitch.turn_on 等操作的用法相同。与其他操作的区别在于,它可以用于混合不同的域,例如,可以在单个操作中打开灯光和开关。

数据属性 可选 描述
entity_id 要打开的设备的 entity_id。

示例

actions:
  - action: homeassistant.turn_on
    target:
      entity_id:
        - light.living_room
        - switch.tv

操作 homeassistant.turn_off

通用操作,用于关闭设备。与 light.turn_offswitch.turn_off 等操作的用法相同。与其他操作的区别在于,它可以用于混合不同的域,例如,可以在单个操作中关闭灯光和开关。

数据属性 可选 描述
entity_id 要关闭的设备的 entity_id。

示例

actions:
  - action: homeassistant.turn_off
    target:
      entity_id:
        - light.living_room
        - switch.tv

操作 homeassistant.update_entity

强制一个或多个实体更新其数据,而不是等待下一个计划的更新。

数据属性 可选 描述
entity_id 要更新的一个或多个 entity_id。可以是一个列表。

示例

actions:
  - action: homeassistant.update_entity
    target:
      entity_id:
      - light.living_room
      - switch.coffe_pot

操作 homeassistant.save_persistent_states

立即保存持久状态(对于从 RestoreEntity 派生的实体)。 保持正常的定期保存间隔。

通常这些状态会在启动时、每 15 分钟和关闭时保存。