Home Assistant

Hass – Lovelace: auto-entities card, tạo card báo các đèn đang bật

Lovelace auto-entities card

Hiển thị tất cả công tắc đang bật trong một card hoặc các cảm biến sắp hết pin để tiện theo dõi

8 phút để đọc hết nội dung

Nếu bạn đang sử dụng giao diện Lovelace của Home Assistant thì auto-entities card là một custom-card (một card được phát triển không phải bởi nhóm Home Assistant) khá hữu ích. Card này sẽ giúp bạn tuỳ biến hiển thị các thiết bị và thực thể theo một số điều kiện mà không cần phải cấu hình phức tạp.

Cài đặt auto-entities card

Bạn có thể thêm auto-entities card vào Lovelace bằng HACS (Home Assistant Community Store) hoặc bằng cách thủ công tại github của tác giả thomasloven. Bạn cũng có thể mua tặng tác giả một ly cafe – donate tại github trên.

Bạn tìm auto-entities trong Integrations của HACS, chọn Install để cài đặt rồi chọn ADD TO LOVELACE để thêm vào Lovelace

! Về custom componentcustom card

Là các component hay Lovelace card/module được phát triển bởi cộng đồng nhưng không/chưa được thông qua chính thức bởi nhóm phát triển Home Assistant. Việc cập nhật hay hỗ trợ hoàn toàn phụ thuộc vào tác giả và cộng đồng người dùng.
Bạn cũng sẽ phải tự chịu trách nhiệm và tự quản lý các custom component/custom card này.

Chúng tôi khuyến nghị bạn chỉ cài đặt những component hay card thực sự cần thiết để tránh lỗi, giảm nguy cơ bảo mật và đảm bảo hiệu suất máy chủ Hass. Trên một số thiết bị hay trình duyệt, các custom card có thể gây lỗi hoặc làm chậm đáng kể hiệu suất tải giao diện.
Hãy thận trọng khi cài đặt một custom mới trên máy chủ Hass chính của bạn vì có thể gây ra lỗi nghiêm trọng làm gián đoạn hoạt động bình thường của máy chủ và các thiết bị khác.

Cấu hình auto-entities card

Để sử dụng auto-entities, bạn hãy vào Lovelace, chọn Cấu hình giao diện – Configure UI ( biểu tượng: ) rồi chọn thêm vào một card mới loại Manual để mở giao diện cấu hình thủ công cho card mới.

auto-entities card không tạo ra một loại card mới mà chỉ có tác dụng điều chỉnh một card khác bất kỳ (bao gồm cả card có sẵn và custom card khác).

Bây giờ ta sẽ thử tạo một glance card và điều chỉnh bằng auto-entities.

Cấu hình căn bản

Bạn copy cấu hình mẫu bên dưới rồi thay thế cấu hình sẵn có của card vừa tạo.

type: 'custom:auto-entities'
card:
  title: ON Switches and Lights
  type: glance

Cấu hình trên mới chỉ tạo ra một card trắng. Bây giờ ta sẽ thêm các entity vào thông qua một bộ lọc – filter:

type: 'custom:auto-entities'
card:
  title: ON Switches and Lights
  type: glance
filter:
  include:
    - domain: light
      state: 'on'
    - domain: switch
      state: 'on'
  exclude:
    - entity_id: switch.kitchen_powerstrip_1

Trên đây ta thêm vào toàn bộ các entity nằm trong domain light & switch đang có trạng thái -state là ‘on’ vào danh sách include:, khá hữu ích để xem các công tắc và đèn nào đang được bật.

Tuy nhiên, chắc sẽ có một số công tắc hay đèn mà bạn luôn giữ nó ‘on‘ nên muốn loại bỏ nó ra khỏi card này (và có thể thêm nó vào một auto-entities card khác để thể hiện các thiết bị ở trạng thái ‘off’ trong khi nên là ‘on’).

Ta thêm các công tắc và đèn này vào danh sách exclude:, như ở đây, ta thêm công tắc của ổ cắm bếp sử dụng cho lò vi sóng hay ấm đun nước, vốn chỉ bị tắt đi khi cả nhà đi vắng dài ngày.

! Filter của auto-entities

Các filter có thể sử dụng bao gồm: domain, name, entity_id, state, group, area, device, last_changed, last_updated, attributes. Tức là gần như bao gồm tất cả trường – field của đối tượng state – state object.

Bạn cũng có thể sử dụng từ khoá not cho filter:. Ví dụ:
not:
__state: 'off'

gần tương tương với
state: 'on'

Cấu hình nâng cao

Tới đây thì card của bạn đã tương đối có thể dùng được rồi. Tuy nhiên ta sẽ thêm một vài tuỳ chọn nữa cho dễ xem hơn:

type: 'custom:auto-entities'
card:
  title: ON Switches and Lights
  type: glance
filter:
  include:
    - domain: light
      state: 'on'
    - domain: switch
      state: 'on'
  exclude:
    - entity_id: switch.kitchen_powerstrip_1
show_empty: false
sort:
  method: domain
  ignore_case: true

Với:
show_empty: false nếu không có bất cứ entity nào thoả mãn điều kiện (state: ‘on’) thì ẩn luôn card này thay vì hiển thị card trống. Trông sẽ đẹp hơn nhưng có thể ảnh hưởng đến bố cục – layout trên Lovelace view của bạn. Mặc định là true.
sort: sắp xếp các entity trong card
method: domain sắp xếp theo tên domain, bạn cũng có thể xếp theo entity, name, state, last_changed, last_updated, attribute.
ignore_case:true xem ký tự hoa và thường như nhau khi sắp xếp.
reverse: true sắp ngược lại.
unique: true sau khi filter:, chỉ giữ lại 1 entity nếu bị trùng.

Kết quả ta được glance card tự thay đổi nội dung với các switch và light như dưới đây:

Glance card tự xuất hiện khi có switch hay light được bật

Nếu bạn muốn điều khiển bật/tắt các switchlight này ngay trên card, thêm tuỳ chọn tap_action vào bên dưới các entities như sau:

type: 'custom:auto-entities'
card:
  title: ON Switches and Lights
  type: glance
filter:
  include:
    - domain: light
      state: 'on'
      options:
        tap_action:
          action: toggle
    - domain: switch
      state: 'on'
      options:
        tap_action:
          action: toggle
  exclude:
    - entity_id: switch.kitchen_powerstrip_1
show_empty: false
sort:
  method: domain
  ignore_case: true
unique: true

Một số tuỳ chọn và ứng dụng khác của auto-entities card

Nếu bạn muốn luôn hiển thị một số entity trên card, thêm chúng vào danh sách entities: bên ngoài filter:.
Bạn có thể include: hay exclude: các entity mà tên chứa có chung một dạng như name: "/*.ble*./" sẽ lấy tất cả entity mà name chứa cụm kí tự ble, hay entites có attribute, last_changed, last_updated thoả mãn một điều kiện nào đó.

Ví dụ như dưới đây, ta sẽ tạo một entities-card chỉ thể hiện các sensor có tên bao gồm cụm ble (các cảm biến Bluetooth Low Energy) mà attribute battery (mức pin) dưới 2V hoặc cập nhật lần cuối cách đây nhiều hơn 10p.

Ta cũng muốn luôn luôn thể hiện sensor cửa cổng – binary_sensor.front_gate trong card này cùng với thời gian lần cuối thay đổi.

type: 'custom:auto-entities'
card:
  title: Monitor BLE Sensor
  type: entities
entities:
  - binary_sensor.front_gate
    secondary_info: last_changed
filter:
  include:
    - entity_id: "/.*ble.*/"
      attributes:
        battery: "< 2"
    - entity_id: "/.*ble.*/"
      last_changed: "> 10"
      options:
        secondary_info: last-changed
show_empty: false
sort:
  method: name
  ignore_case: true
unique: true
Entities card thể hiện các cảm biến pin thấp hoặc không cập nhật một lúc

Một số lưu ý

Nếu bạn sử dụng filter bằng Regex (regular expression – biểu thức chính quy), hãy kiểm tra chắc chắn biểu thức này chọn được toàn bộ entity_id hoặc name tuỳ vào loại filter của bạn. Bạn có thể kiểm tra Regex bằng trang web: regexr.com.

Hãy lưu ý đến tính logic của các filter, bao gồm cả các phép cộng – or và trừ – and. Ví dụ:

#filter: 1
filter:
  include:
    - domain 1: sensor
    - domain 2: binary_sensor
    
#filter: 2
filter:
  include:
    - domain 1: sensor
      domain 2: binary_sensor

Khi đó, filter: 1 sẽ cho ra toàn bộ entity là sensor hoặc – or binary_sensor trong khi filter: 2 sẽ cho ra kết quả trống vì không có entity nào vừa là sensor vừa là binary_sensor.

Cuối cùng, bạn cũng có thể sử dụng template cho filter: thay vì include:exclude:.

Về Bài viết

Bài viết chưa đầy đủ hoặc bạn còn có ý kiến khác? Bạn có thắc mắc và cần thêm thông tin. Vui lòng đăng ý kiến vào mục bình luận để tác giả và Team có thêm thông tin cải thiện chất lượng bài viết. Chúng tôi sẽ giải đáp các thắc mắc ngay trong mục bình luận để giúp được nhiều đọc giả với cùng vấn đề hơn hoặc chúng tôi sẽ trả lời trong một bài viết riêng. Trân trọng cảm ơn bạn!

Cảm ơn bạn đã xem bài viết này!

konnectED Team.

Lên Đầu
  • Đăng ký
Bạn quên mất mật khẩu? Vui lòng nhập tên đăng nhập và địa chỉ email đã đăng ký. Bạn sẽ nhận được liên kết tạo mật khẩu mới qua email (bạn nhớ kiểm tra hộp spam trong trường hợp email đi lạc).