Image default
Máy Tính

Tự động hóa trải nghiệm chơi game với Home Assistant: Thiết lập ‘Chế độ Game’ thông minh

Với tư cách là một người dùng Home Assistant thường xuyên, một trong những khía cạnh thử thách (nhưng thú vị) nhất của nền tảng phần mềm này là tìm cách tích hợp nó vào các dịch vụ phần mềm và phần cứng hiện có của tôi. Càng đi sâu, tôi càng khám phá ra những cách độc đáo và hấp dẫn để biến nó thành hiện thực, và một trong những tính năng tôi yêu thích nhất chính là việc triển khai “Chế độ Game” (Game Mode). Có hai cách riêng biệt để thực hiện điều này, và tôi đã kết hợp cả hai để hoạt động với cả game trên Steam và game không phải Steam. Bài viết này sẽ hướng dẫn chi tiết cách bạn có thể tạo ra một chế độ chơi game tự động hóa thông minh giúp tối ưu hóa không gian giải trí của mình chỉ bằng Home Assistant.

Cách tích hợp đầu tiên là thông qua Steam. Điều này đòi hỏi một khóa API từ Steam để lấy dữ liệu về trạng thái trực tuyến của người chơi và game mà họ đang chạy. API web của Steam cho phép 100.000 yêu cầu mỗi ngày, vì vậy con số này có lẽ là quá đủ cho bất kỳ mục đích sử dụng cơ bản nào như vậy. Cách thứ hai sử dụng HASS.Agent 2, một công cụ cho phép Home Assistant báo cáo cửa sổ đang mở trên máy tính của bạn. Nếu tên cửa sổ khớp với một game không phải Steam, chúng ta cũng có thể kích hoạt chế độ chơi game. Bài viết này sẽ giả định bạn đã thiết lập sẵn các tích hợp này.

Hai phương pháp phát hiện game hiệu quả

Trước hết, chúng ta cần xem xét hai cách để xác định rằng một game đã được khởi chạy và đang chạy. Steam dễ tập trung hơn rất nhiều, vì ngay cả khi bạn tạm thời thoát game vài giây để kiểm tra thứ gì đó, bạn vẫn sẽ được coi là “đang trong game” theo cảm biến của chúng ta, ngay cả khi game không ở chế độ nền. Điều này không đúng với HASS.Agent, và tôi vẫn chưa nghĩ ra cách khắc phục. Chúng ta có thể sử dụng tích hợp Steam để theo dõi trạng thái trực tuyến hoặc ngoại tuyến, và khi khởi chạy một game, cảm biến sẽ cập nhật thêm các thuộc tính bổ sung.

Giao diện cảm biến tích hợp Steam trong Home Assistant hiển thị trạng thái game đang chơiGiao diện cảm biến tích hợp Steam trong Home Assistant hiển thị trạng thái game đang chơi

Việc bổ sung các thuộc tính này cực kỳ hữu ích, vì nó có nghĩa là chúng ta không cần phải thăm dò bất cứ điều gì cụ thể. Tất cả những gì chúng ta cần khẳng định là liệu thuộc tính “game” có tồn tại hay không. Nếu có, điều đó có nghĩa là chúng ta đã khởi chạy một game, và chúng ta có thể sử dụng thông tin đó để kích hoạt công tắc của mình. Ngược lại, chúng ta biết rằng không có game nào đang chạy, vì vậy chúng ta có thể giữ chế độ chơi game tắt. Điều này sẽ không hoạt động nếu trạng thái game trên Steam của bạn không được hiển thị công khai, nhưng đối với hầu hết mọi người, nó sẽ đáp ứng được yêu cầu.

Cấu hình Binary Sensor Template

Để tạo một cảm biến nhị phân (binary sensor) đơn giản định nghĩa liệu chế độ chơi game có được bật hay tắt, chúng ta sẽ đọc xem thuộc tính “game” có tồn tại trong cảm biến Steam hay không. Đồng thời, chúng ta cũng thêm cấu hình ví dụ cho một game không phải Steam, chẳng hạn như Valorant. Với cảm biến này, chúng ta đã có thể kích hoạt một automation dựa trên trạng thái hiện tại của cảm biến chế độ chơi game của mình.

{{ (state_attr('sensor.adam_steam', 'game') is not none) or (states('sensor.desktop_73d9nef_activewindow') == 'VALORANT') }}

Cấu hình template binary sensor trong Home Assistant để kích hoạt chế độ chơi gameCấu hình template binary sensor trong Home Assistant để kích hoạt chế độ chơi game

Đoạn mã YAML trên tạo một cảm biến nhị phân dựa trên điều kiện: thuộc tính game của sensor.adam_steam (cảm biến Steam của bạn) tồn tại (tức là bạn đang chơi game trên Steam) HOẶC tên cửa sổ đang hoạt động (sensor.desktop_73d9nef_activewindow) là ‘VALORANT’. Bạn có thể thay đổi ‘VALORANT’ thành tên bất kỳ game không phải Steam nào mà bạn muốn tự động nhận diện.

Lập trình Automation cho “Chế độ Game”

Bây giờ chúng ta đã có thể nhận biết khi nào mình đang chơi game, đã đến lúc quyết định sẽ làm gì với thông tin này. Với các thiết bị như GoXLR, đèn thông minh và điện thoại đã được liên kết với Home Assistant, chúng ta có thể tạo ra những tự động hóa mạnh mẽ. Hành động đầu tiên và rõ ràng nhất là chuyển điện thoại sang chế độ không làm phiền (Do Not Disturb – DND), điều này có thể thực hiện dễ dàng với Home Assistant. Về cơ bản, bạn gửi một thông báo đến thiết bị client với thông điệp “command_dnd”, và dữ liệu là “command: total_silence”. Điều này khiến ứng dụng Home Assistant thay đổi điện thoại của bạn sang chế độ im lặng hoàn toàn, để bạn không bị quấy rầy khi chơi game. Đây là một tính năng tích hợp khá tiện lợi của Home Assistant, hoạt động như sau:

actions:
  - action: notify.mobile_app_cph2671
    data:
      message: command_dnd
      data:
        command: total_silence

Tiếp theo, chúng ta thêm một phần “building block” (khối xây dựng). Các building block là một tính năng nâng cao hơn của khả năng tự động hóa của Home Assistant, cho phép các hành động như chờ một template được đánh giá, thực hiện một chuỗi sự kiện hoặc có một khối if-then lồng nhau bên trong các hành động của bạn. Trong trường hợp này, chúng ta kiểm tra xem đèn trong văn phòng của tôi (nơi đặt máy tính) có đang bật hay không. Nếu có, chúng ta giảm độ sáng và đặt màu sang đỏ. Điều này cũng khá đơn giản trong YAML và trông như thế này:

  - if:
    - condition: state
      entity_id: light.office_light
      state: "on"
    then:
    - action: light.turn_on
      metadata: {}
      data:
        brightness_pct: 5
        rgb_color:
          - 237
          - 44
          - 44
      target:
        device_id: 7443cc0d215861e4624f05e2ea6c3fb3

Cuối cùng, nhờ tích hợp GoXLR, chúng ta tăng âm lượng “Game” lên 100% và giảm âm lượng nhạc. Điều này cho phép chúng ta nghe game rõ hơn và ngăn nhạc làm nhiễu âm thanh nếu tôi đang nghe nhạc vào thời điểm đó. Bạn có thể tùy chọn đặt chức năng này để tạm dừng trình phát nhạc Spotify thay vì giảm kênh nhạc, giả sử bạn đang sử dụng Spotify.

Mở rộng và Hoàn tác “Chế độ Game”

Mặc dù khá đơn giản, những ví dụ trên đã minh họa chính xác cách bạn có thể triển khai một thứ như “Chế độ Game”. Để đảo ngược các hành động này và lưu trạng thái của các thiết bị trước khi chế độ được kích hoạt, bạn sẽ cần cấu hình trigger để phát hiện bất kỳ thay đổi trạng thái nào của cảm biến chế độ game. Sau đó, bạn tạo các biến trợ giúp (helper variables) như input_text để lưu dữ liệu vào một chuỗi trước khi thực hiện các thay đổi.

Với mỗi hành động, bạn sẽ kiểm tra xem trigger có phải là chế độ game đang được bật hay không. Nếu đang bật, bạn sẽ lưu trạng thái hiện tại vào biến trợ giúp liền kề, sau đó thực hiện hành động. Nếu bạn muốn đảo ngược, bạn sẽ kiểm tra xem nó có thay đổi từ bật sang tắt hay không, và nếu có, bạn sẽ đặt giá trị của từng thiết bị trở lại giá trị được xác định trong biến trợ giúp của bạn.

Kết luận

Đây chỉ là một minh họa về cách bạn có thể xây dựng các tự động hóa mạnh mẽ trong Home Assistant để kiểm soát toàn bộ ngôi nhà của mình. Bạn có thể làm bất cứ điều gì mình muốn miễn là phần mềm được tích hợp, và bạn có thể thu thập dữ liệu từ tất cả các loại nơi để ảnh hưởng cụ thể đến một thiết bị hoàn toàn không liên quan. Khởi chạy một game trên máy tính của tôi có thể tự động chuyển điện thoại của tôi sang chế độ không làm phiền, mà không cần phải chạm vào điện thoại chút nào. Điện thoại thậm chí không liên quan đến quá trình này, nhưng Home Assistant đã biến điều đó thành có thể. Kể từ đó, tôi đã phát triển nó đáng kể, và nó đã trở thành một phần thiết yếu trong trải nghiệm nhà thông minh của tôi. Bước tiếp theo của tôi là thay đổi những gì được viết trên màn hình ePaper bên cạnh tôi khi tôi đang chơi, để tôi có thể thực sự thư giãn và tập trung vào game. Hãy chia sẻ ý kiến của bạn về những tự động hóa chơi game mà bạn đã tạo với Home Assistant trong phần bình luận bên dưới nhé!

Related posts

Tines là gì: Khám phá nền tảng tự động hóa bảo mật SOAR hiệu quả

Administrator

Darktable: Giải Pháp Chỉnh Sửa Ảnh RAW Chuyên Nghiệp Miễn Phí Thay Thế Adobe Lightroom

Administrator

1440p Vẫn Là Độ Phân Giải Tối Ưu Nhất Cho Game Thủ PC

Administrator