Tự động hóa Trợ lý Trang chủ


Khi thiết bị của bạn được thiết lập, đã đến lúc đưa anh đào lên chiếc bánh: tự động hóa . Trợ lý Trang chủ cung cấp một số tính năng tự động được tích hợp sẵn – nhưng bạn sẽ sử dụng thành phần tự động hóa để thiết lập các quy tắc của riêng bạn, cho hầu hết các phần.

Nếu bạn đã thêm một cảm biến ngẫu nhiên ở bước trước thì bạn có thể sử dụng cảm biến đó cho tự động hóa đầu tiên của mình:

automation:
  - alias: Check sensor value and show notification
    trigger:
      platform: numeric_state
      entity_id: sensor.random_sensor
      above: 10
    action:
      service: persistent_notification.create
      data:
        message: "Sensor value greater than 10"

Để biết thêm chi tiết về tự động hóa, vui lòng thực hiện bước tiếp theo hoặc tài liệu tự động hóa .

Sau khi làm xước bề mặt Tự động hóa, chúng ta hãy đi sâu hơn và tạo ra quy tắc tự động hóa: Bật đèn khi mặt trời lặn

Chúng tôi đang xác định một kích hoạt để theo dõi hoàng hôn và bảo nó cháy khi mặt trời lặn. Khi sự kiện này được kích hoạt, dịch vụ light.turn_onđược gọi mà không có bất kỳ tham số nào. Bởi vì chúng tôi chỉ định không có tham số, nó sẽ bật tất cả các đèn.

# Example configuration.yaml entry
automation:
  alias: Turn on the lights when the sun sets
  initial_state: True
  hide_entity: False
  trigger:
    platform: sun
    event: sunset
  action:
    service: light.turn_on

Bắt đầu với 0,28 quy tắc tự động hóa có thể được tải lại từ giao diện người dùng và được hiển thị theo mặc định. Với hide_entity:bạn có thể kiểm soát hành vi này. Sẽ thuận tiện nếu bạn đang làm việc trên các quy tắc của mình, nhưng khi một quy tắc kết thúc và bạn không muốn thấy quy tắc đó trong giao diện người dùng của mình, bạn có thể đặt hide_entity:thành True. Để đặt tự động tắt khi Trợ lý chính bắt đầu được đặt initial_state:thành False.

Sau một vài ngày chạy quy tắc tự động hóa này, bạn sẽ nhận ra rằng quy tắc tự động hóa này không đủ. Trời đã tối khi đèn bật sáng, và một ngày bạn không ở nhà, đèn vẫn bật. Thời gian cho một số tinh chỉnh. Hãy thêm một bù đắp cho kích hoạt hoàng hôn và một điều kiện để chỉ bật đèn nếu có ai đó ở nhà.

# Example configuration.yaml entry
automation:
  alias: Turn on the lights when the sun sets
  trigger:
    platform: sun
    event: sunset
    offset: "-01:00:00"
  condition:
    condition: state
    entity_id: group.all_devices
    state: 'home'
  action:
    service: light.turn_on

Bây giờ bạn đang hạnh phúc, và tất cả đều tốt. Bạn bắt đầu thích kinh doanh tự động hóa này và mua thêm một số đèn, lần này bạn đặt chúng trong phòng ngủ. Nhưng những gì bạn bây giờ nhận ra là khi mặt trời lặn, đèn trong phòng ngủ cũng đang được bật lên! Thời gian để tinh chỉnh tự động hóa để chỉ bật đèn phòng khách.

Việc đầu tiên bạn làm là xem xét các thực thể trong các công cụ phát triển (biểu tượng thứ hai) trong ứng dụng. Bạn thấy tên của đèn của bạn, và bạn viết chúng ra: light.table_lamplight.bedroomlight.ceiling.

Thay vì mã hóa cứng các ID thực thể của đèn trong quy tắc tự động hóa, chúng tôi sẽ thiết lập một nhóm. Điều này sẽ cho phép chúng ta thấy phòng khách riêng biệt trong ứng dụng và có thể giải quyết nó từ các quy tắc tự động hóa.

Vì vậy, chúng tôi tinh chỉnh cấu hình để thêm nhóm và có quy tắc tự động chỉ bật nhóm.

# Example configuration.yaml entry
group:
  living_room:
    - light.table_lamp
    - light.ceiling

automation:
  alias: Turn on the light when the sun sets
  trigger:
    platform: sun
    event: sunset
    offset: "-01:00:00"
  condition:
    condition: state
    entity_id: group.all_devices
    state: 'home'
  action:
    service: light.turn_on
    entity_id: group.living_room

Giáng sinh đang đến, và bạn quyết định mua một công tắc điều khiển từ xa để điều khiển đèn Giáng sinh từ Trợ lý gia đình. Bạn không thể yêu cầu được sống trong ngôi nhà của tương lai nếu bạn vẫn đang bật đèn Giáng sinh theo cách thủ công!

Chúng tôi treo các công tắc lên đến Trang chủ Trợ và lấy ID thực thể từ các công cụ phát triển: switch.christmas_lights. Chúng tôi sẽ cập nhật nhóm để bao gồm công tắc và sẽ thay đổi hành động của chúng tôi . Chúng tôi không còn có thể gọi light.turn_onvì chúng tôi cũng muốn bật công tắc. Đây là nơi homeassistant.turn_ongiải cứu. Dịch vụ này có khả năng bật bất kỳ thực thể nào.

# Example configuration.yaml entry
group:
  living_room:
    - light.table_lamp
    - light.ceiling
    - switch.christmas_lights

automation:
  alias: Turn on the lights when the sun sets
  hide_entity: True
  trigger:
    platform: sun
    event: sunset
    offset: "-01:00:00"
  condition:
    condition: state
    entity_id: group.all_devices
    state: 'home'
  action:
    service: homeassistant.turn_on
    entity_id: group.living_room