Image default
Máy Tính

Tối Ưu Trải Nghiệm Chơi Game: Hướng Dẫn Kích Hoạt “Chế Độ Game” Tự Động Với Home Assistant

Là một người dùng thường xuyên của Home Assistant, một trong những khía cạnh đầy thách thức nhưng cũng thú vị nhất của nền tảng phần mềm này chính là tìm ra những cách để tích hợp nó vào các dịch vụ phần cứng và phần mềm hiện có của tôi. Khi càng đi sâu hơn vào thế giới này, tôi đã khám phá ra những phương pháp ngày càng độc đáo và hấp dẫn để khiến mọi thứ hoạt động ăn ý, và một trong những tính năng yêu thích của tôi là việc triển khai “chế độ game”. 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 hiệu quả với cả game trên Steam và các game không thuộc Steam.

Tích hợp đầu tiên là tích hợp Steam. Điều này yêu cầu một khóa API từ Steam để truy vấn dữ liệu từ máy chủ của Steam và lấy trạng thái trực tuyến của người chơi cũng như trò chơi đang được khởi 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ố đó có lẽ là quá đủ cho bất kỳ mục đích sử dụng cơ bản nào như thế này. Cách thứ hai sử dụng HASS.Agent, một ứng dụng có thể báo cáo cửa sổ đang mở hiện tại 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, thì chúng ta cũng có thể kích hoạt chế độ game. Bài viết này sẽ giả định rằng bạn đã cài đặt sẵn các tích hợp này.

Xây Dựng Cảm Biến “Chế Độ Game” Trong Home Assistant

Theo dõi trạng thái chơi game của bạn

Home Assistant hiển thị thuộc tính "game" của tích hợp Steam khi người dùng đang chơi gameHome Assistant hiển thị thuộc tính "game" của tích hợp Steam khi người dùng đang chơi game

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à hiện đang chạy. Steam dễ dàng tập trung hơn nhiều, vì nếu bạn thoát khỏi trò chơi trong vài giây để kiểm tra thứ gì đó, bạn vẫn sẽ ở trạng thái “đang chơi game” theo cảm biến của chúng ta, ngay cả khi trò chơi không ở tiền cảnh. Điều đó không đúng với HASS.Agent, và tôi vẫn chưa tìm ra cách khắc phục điều đó. Chúng ta có thể sử dụng tích hợp Steam để theo dõi liệu chúng ta đang trực tuyến hay ngoại tuyến, và khi chúng ta khởi chạy một trò chơi, cảm biến sẽ cập nhật thêm các thuộc tính.

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ứ 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 trò chơi, và chúng ta có thể sử dụng điều đó để bật công tắc của chúng ta. Ngược lại, chúng ta biết rằng mình không đang chơi game, vì vậy chúng ta có thể giữ chế độ game tắt. Điều này sẽ không hoạt động nếu không có trạng thái game hiển thị công khai trên Steam, nhưng đối với hầu hết mọi người, nó sẽ có tác dụng.

Cấu hình template binary sensor trong Home Assistant để kích hoạt chế độ game tự độngCấu hình template binary sensor trong Home Assistant để kích hoạt chế độ game tự động

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

Vì vậy, hiện tại, chúng ta đã thiết kế một cảm biến nhị phân mẫu (template binary sensor) đơn giản định nghĩa liệu chế độ 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 (automation) dựa trên trạng thái hiện tại của cảm biến chế độ game của chúng ta.

Xây Dựng Tự Động Hóa (Automation) “Chế Độ Game”

Một minh họa cụ thể cho việc triển khai

Bây giờ chúng ta đã có thể nhận diện khi nào chúng ta đang chơi game, đã đến lúc quyết định sẽ 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ị client với thông điệp “command_dnd”, và dữ liệu là “command: total_silence”. Điều này làm cho ứng dụng Home Assistant thay đổi điện thoại của bạn sang chế độ hoàn toàn im lặng, để 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á hay 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 của khả năng tự động hóa của Home Assistant, cho phép các tác vụ như chờ một template đánh giá, thực hiện một chuỗi các 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 có PC của tôi) đã bật chưa. Nếu bật, chúng ta 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: 7443cc0d215861e4624f05e2ea6c3fb5

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 âm 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 tính năng này để 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á cơ bản, nhưng 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 khởi tạo, bạn sẽ có trình kích hoạt phát hiện bất kỳ thay đổi trạng thái nào, và tạo các biến trợ giúp (chẳng hạn như input_text) để lưu dữ liệu vào một chuỗi trước khi thực hiện nó. Sau đó, với mỗi hành động, bạn sẽ kiểm tra xem trình kích hoạt có phải là chế độ 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 bạ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 trò chơi trên PC của tôi có thể tự động đặt điện thoại của tôi vào 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 hiện thực. 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 nội dung hiển thị trên màn hình ePaper bên cạnh khi tôi đang chơi, để tôi có thể thực sự thư giãn và tập trung vào trò chơi.

Hãy chia sẻ ý kiến của bạn về bài viết này ở phần bình luận bên dưới!

Related posts

PC Small Form Factor: Khi Đam Mê Công Nghệ Gặp Thách Thức Không Gian

Administrator

Cách Khắc Phục Lỗi File Explorer Bị Treo Và Khởi Động Lại Hiệu Quả Trên Windows 10 & 11

Administrator

Tối Ưu Dual-Boot Windows Và Linux: 5 Giải Pháp Khắc Phục Lỗi Phổ Biến

Administrator