Giao diện theo dõi trạng thái tích hợp Steam trong Home Assistant, hiển thị ID game đang chạy.
Máy Tính

Tạo Chế Độ Chơi Game Tự Động Với Home Assistant: Hướng Dẫn Chi Tiết

Là một người thường xuyên sử dụng Home Assistant, tôi nhận thấy một trong những khía cạnh thú vị và đầy thử thách của nền tảng này là việc tìm ra cách tích hợp nó vào các thiết bị và dịch vụ phần mềm hiện có. Càng đi sâu, tôi càng khám phá ra nhiều phương pháp độc đáo và thú vị để thực hiện điều này, và một trong những tích hợp yêu thích của tôi là việc triển khai “chế độ chơi game” (game mode). Có hai cách riêng biệt để tạo ra chế độ này, và tôi đã kết hợp cả hai để hoạt động hiệu quả với cả game Steam và game không phải Steam.

Tích hợp đầu tiên là Steam. Điều này yêu cầu một khóa API để truy vấn dữ liệu từ máy chủ Steam, lấy trạng thái trực tuyến của người chơi và trò chơi đang chạy của họ. API Web của Steam cho phép 100.000 yêu cầu mỗi ngày, vì vậy nó có lẽ quá đủ cho bất kỳ mục đích sử dụng cơ bản nào như thế này. Tích hợp thứ hai sử dụng HASS.Agent 2, một công cụ có thể báo cáo cửa sổ hiện đang mở trên PC 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.

Tạo Cảm Biến Trợ Giúp “Chế Độ Chơi Game” Trong Home Assistant

Theo Dõi Trạng Thái Chơi Game Qua Steam Và HASS.Agent

Giao diện theo dõi trạng thái tích hợp Steam trong Home Assistant, hiển thị ID game đang chạy.Giao diện theo dõi trạng thái tích hợp Steam trong Home Assistant, hiển thị ID game đang chạy.

Trước hết, chúng ta cần xem xét hai cách để xác định rằng một trò chơi đã được khởi chạy và đang hoạt động. Với Steam, việc này dễ dàng hơn nhiều, vì nếu bạn thoát khỏi trò chơi trong vài giây để kiểm tra điều 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 trò chơi không ở chế độ tiền cảnh. Điều này không đúng với HASS.Agent, và tôi chưa tìm 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/ngoại tuyến, và khi một trò chơi được khởi chạy, cảm biến sẽ cập nhật với các thuộc tính bổ sung.

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 truy vấn bất kỳ thông tin cụ thể nào. 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 trò chơi, 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, nếu không có, chúng ta biết rằng mình không trong trò chơi, 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 chơi game trên Steam không được hiển thị công khai, nhưng với hầu hết mọi người, nó sẽ hoạt động tốt.

Mã YAML mẫu cho cảm biến nhị phân (binary sensor) kích hoạt chế độ chơi game trong Home Assistant.Mã YAML mẫu cho cảm biến nhị phân (binary sensor) kích hoạt chế độ chơi game trong Home Assistant.

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

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

Xây Dựng Quy Trình Tự Động Hóa Của Bạn

Triển Khai Các Hành Động Khi “Chế Độ Chơi Game” Được Kích Hoạt

Bây giờ chúng ta đã có thể nhận biết khi nào đang chơi game, đã đến lúc quyết định phải làm gì với nó. Tôi đã liên kết GoXLR của mình với Home Assistant, và tôi cũng đã liên kết đèn và điện thoại của mình. Điều đầu tiên và hiển nhiên nhất là đặt điện thoại của tôi vào chế độ không làm phiền, điều này có thể dễ dàng thực hiện với Home Assistant. Về cơ bản, bạn gửi một thông báo đến thiết bị khách 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ị làm phiền 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, và nó 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”. Building blocks là một tính năng nâng cao hơn trong 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 PC) đã bật hay chưa. Nếu đã bật, chúng ta sẽ giảm độ sáng và đặt màu sắc thành đỏ. Đ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 trò chơi tốt hơn và ngăn nhạc làm mờ â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 nó để tạm dừng trình phát media Spotify thay vì giảm kênh nhạc, giả sử bạn đang sử dụng Spotify.

Vậy là xong! Mặc dù khá sơ khai, nó minh họa chính xác cách bạn có thể triển khai một thứ như thế này. Để đảo ngược điều này và lưu trạng thái của các thiết bị trước khi nó được kích hoạt, bạn sẽ cần thiết lập bộ kích hoạt (trigger) để phát hiện bất kỳ sự thay đổi trạng thái nào, và tạo các biến trợ giúp (như input_text) để lưu dữ liệu vào một chuỗi trước khi thực hiện hành động. Sau đó, với mỗi hành động, bạn sẽ kiểm tra xem bộ kích hoạt có phải là chế độ chơi game đang được bật hay không. Nếu được 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 mỗi thiết bị trở lại giá trị được định nghĩa trong biến trợ giúp của mình.

Đây chỉ là một ví dụ 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ì bạn 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ừ mọ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 trò chơi trên PC 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. Nó thậm chí không liên quan đến quá trình, nhưng Home Assistant làm cho điều đó trở nên khả thi. 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ì hiển thị trên màn hình ePaper bên cạnh tôi khi tôi chơi, để tôi có thể thực sự thư giãn và tập trung vào trò chơi.

Related posts

RTX 5090 Đối Mặt Nguy Cơ Lỗi Nghiêm Trọng Khi Cập Nhật Driver

Administrator

Proton Pass: 5 Lý Do Nên Chọn Để Bảo Mật Mật Khẩu Của Bạn

Administrator

7 Thủ Thuật Nâng Cao Giúp Bạn Tối Ưu Quy Trình Sáng Tạo Với Krita

Administrator

Pocket Dừng Cuộc Chơi? 5 Ứng Dụng Quản Lý Bookmark Tự Host Tốt Nhất

Administrator

5 Lý Do Task Manager DeLuxe Vượt Trội Hơn Quản Lý Tác Vụ Windows

Administrator

Cách ‘Everything’ NotebookLM Biến Đổi Quy Trình Làm Việc Của Tôi

Administrator