Home Assistant

Home Assistant: chế độ Dark-mode

Hass Light and Dark Mode Cover

Tự động thay đổi theme Dark-mode cho Hass theo giờ hoặc trạng thái mặt trời mọc/lặn

Photo: konnected.vn
4 phút để đọc hết nội dung

Ở đây ta sẽ cố gắng “giả lập” Dark-mode trên thiết bị iOS hay Android bằng cách thay đổi theme của Home Assistant theo giờ hoặc theo mặt trời. Thay đổi theo cách này áp dụng cho giao diện trên tất cả các thiết bị trừ phi thiết bị đó được cấu hình riêng.

Yêu cầu cần thiết

Để thực hiện theo hướng dẫn này bạn cần:

  1. Home Assistant được cài đặt tối thiểu 2 theme (tốt nhất là theme tương phản sáng tối) và đã cấu hình để sử dụng 2 theme này. Nếu chưa, bạn có thể xem cách cài đặt theme qua HACS ở bài viết này: Cài đặt và dùng HACS.
  2. Để mở và tắt được Dark-mode theo mặt trời lặn và mọc, máy chủ Hass phải được kết nối internet và cấu hình integration Sun với vị trí (kinh độ, vĩ độ) tương đối chính xác.
    Integration Sun được mở mặc định và sử dụng thông tin vị trí của máy chủ Hass. Bạn cũng có thể cấu hình sun thủ công bằng cách thêm đoạn mã dưới đây vào file cấu hình /config/configuration.yaml nếu bạn chưa có.
sun:
  elevation: 19
  #19 là độ cao của bạn so với mực nước biển

Automation để tạo Dark-mode

Với mỗi cách mở Dark-mode, ta cần 2 automation, một để bật/tắt Dark-mode theo giờ/mặt trời và một để bật/tắt Dark-mode trong trường hợp Home Assistant khởi động lại.

Bật tắt Dark-mode dựa vào mặt trời

Dưới đây là cấu hình automation để bật/tắt Dark-mode theo mặt trời và automation tự cài đặt Darkmode khi khởi động.

Ta kiểm tra trạng thái mặt trời trên hay dưới đường chân trời (above_horizon or below_horizon) rồi set theme phù hợp bằng service: front_end.set_theme.

Với cấu hình mẫu bên dưới, ta bật Dark-mode sau khi mặt trời lặn 30 phút (00:30:00) và tắt sau khi mặt trời mọc 10 phút (00:10:00). Bạn có thể điều chỉnh theo ý thích và thay cả tên theme cho phù hợp.

- id: '1581901610830344'
  alias: Hass Switch Darkmode
  description: Bật tắt Darkmode theo mặt trời
  trigger:
  - entity_id: sun.sun
    for: 00:30:00
    from: below_horizon
    platform: state
    to: above_horizon
  - entity_id: sun.sun
    for: 00:10:00
    from: above_horizon
    platform: state
    to: below_horizon
  condition: []
  action:
  - data_template:
      name: >-
        {% if is_state('sun.sun','below_horizon') %}
        Google Dark Theme
        {% else %}
        Google Light Theme
        {% endif %}
    service: frontend.set_theme
- id: '981239919850530'
  alias: Hass Switch Darkmode at boot
  description: Bật tắt Darkmode khi khởi động
  trigger:
  - event: start
    platform: homeassistant
  action:
  - data_template:
      name: >-
        {% if is_state('sun.sun','below_horizon') %}
        Google Dark Theme
        {% else %}
        Google Light Theme
        {% endif %}
    service: frontend.set_theme

Bật tắt Dark-mode theo giờ

Còn nếu bạn muốn bật tắt Darkmode theo giờ cố định, sử dụng 2 automation dưới đây, với cùng cách thay đổi nội dung theo ý bạn.

Ở ví dụ dưới, ta bật/tắt Dark-mode vào lúc 20g và 5g.

- id: '15819016108303445'
  alias: Hass Swich Darkmode
  description: Bật tắt Darkmode theo giờ
  trigger:
  - platform: time
    at: '05:00:00'
  - platform: time
    at: '20:00:00'
  condition: []
  action:
  - data_template:
      name: >-
        {% if now().hour == 20 %}
        Google Dark Theme
        {% else %}
        Google Light Theme
        {% endif %}
    service: frontend.set_theme
- id: '9812399198505301'
  alias: Hass Switch Darkmode at boot
  description: Bật tắt Darkmode khi khởi động
  trigger:
  - event: start
    platform: homeassistant
  action:
  - data_template:
      name: >-
        {% if now().hour > 19 and now().hour < 5 %}
        Google Dark Theme
        {% else %}
        Google Light Theme
        {% endif %}
    service: frontend.set_theme
Light and Dark Theme

Kết quả, ta thu được Hass với 2 giao diện sáng tối thay đổi theo giờ hoặc mặt trời

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

konnectED Team.

Trở thành thành viên hoặc đăng ký email để nhận tin/bài từ chúng tôi. Nếu không nhận được email, hãy kiểm tra trong mục Spam/Junk. Thêm địa chỉ [email protected] vào sổ địa chỉ để tránh email bị nhận nhầm. Cảm ơn bạn!

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).