Image default
Máy Tính

Tích Hợp Home Assistant qua File Cấu Hình: Khám Phá Sức Mạnh Tiềm Ẩn

Home Assistant là một nền tảng tuyệt vời để kết nối tất cả các dịch vụ của bạn vào một gói phần mềm duy nhất, cho phép tự động hóa nhà thông minh đồng thời mở rộng khả năng hoạt động của các thiết bị vượt xa mục đích ban đầu. Bạn có thể theo dõi email, xây dựng các cảm biến riêng, và quản lý máy chủ của mình tất cả từ một nơi tập trung nếu muốn – đó chính là vẻ đẹp của Home Assistant. Tuy nhiên, có một số tích hợp (được gọi là tích hợp “legacy” hoặc “cũ”) chỉ có thể được thiết lập từ file cấu hình, chứ không phải từ giao diện người dùng (UI). Vì Home Assistant đã tồn tại trong một thời gian dài, các tích hợp “legacy” là những tích hợp được thiết kế cho các phiên bản phần mềm cũ hơn đáng kể.

Nhiều năm trước, không có luồng cấu hình trong giao diện người dùng cho các tích hợp mới. Vì vậy, cách bạn triển khai các tích hợp mới là tạo các mục nhập thủ công trong file cấu hình Home Assistant, sau đó khởi động lại Home Assistant. Điều đó đã thay đổi vào tháng 6 năm 2019 với việc phát hành phiên bản 0.94 (trước khi Home Assistant sử dụng sơ đồ phiên bản Năm.Tháng.Bản vá), cho phép người dùng thêm các tích hợp thông qua giao diện người dùng. Mặc dù phương pháp cũ vẫn hoạt động, hầu hết các tích hợp đã được cập nhật kể từ đó để hỗ trợ giao diện người dùng mà không yêu cầu khởi động lại.

Có một nhược điểm đối với sự đơn giản này, mặc dù nó đã được khắc phục qua nhiều năm. Vào thời điểm đó, nó khá gây tranh cãi vì những người dùng có kiến thức kỹ thuật thích khả năng kiểm soát mọi thứ từ một bộ file cấu hình. Tuy nhiên, người dùng Home Assistant mới có thể không biết về các tích hợp mạnh mẽ mà vẫn chỉ có thể thiết lập từ file configuration.yaml. Nhiều trong số này đơn giản là các tích hợp cũ hơn, tập trung vào người dùng nâng cao, chúng “chỉ hoạt động” và không cần cập nhật, trong khi những tích hợp khác dường như đã bị cộng đồng quên lãng. Dưới đây là một số tích hợp “legacy” được đánh giá cao.

8. Command Line

Chạy các lệnh terminal Linux từ Home Assistant

Giao diện Home Assistant OS đang chạy trên máy chủ ảo Proxmox VEGiao diện Home Assistant OS đang chạy trên máy chủ ảo Proxmox VE

Thuộc nhóm “chỉ hoạt động”, tích hợp “Command Line” thực hiện chính xác những gì tên gọi của nó. Nó có thể thực thi các lệnh Linux trong môi trường container mà Home Assistant đang chạy, và các lệnh này có thể từ các triển khai rất đơn giản đến các thiết lập nâng cao hơn. Cá nhân tôi sử dụng tích hợp này để lấy địa chỉ IP công cộng hiện tại của mình và lưu nó vào một cảm biến, để tôi có thể nhận thông báo khi địa chỉ IP của mình thay đổi.

command_line:
  - sensor:
      unique_id: public_ip
      name: Public IP
      command: "wget -O - -q https://checkip.amazonaws.com"
      scan_interval: 300

Điều này tạo ra một thực thể sensor.public_ip trong Home Assistant, sau đó lưu kết quả của trang web trên vào cảm biến. Vì cảm biến chỉ lưu kết quả đầu ra văn bản của lệnh đã sử dụng, chúng ta sử dụng "-O -" trong lệnh wget để chỉ định rằng “file đầu ra” của chúng ta thực sự chỉ là terminal, do đó địa chỉ IP của chúng ta được in ra stdout trong terminal thay vì được lưu ở bất kỳ đâu. Tích hợp command_line sau đó sẽ thấy đầu ra này và ghi nó vào cảm biến public_ip của chúng ta, để nó có thể được biểu diễn trong Home Assistant và sử dụng như bất kỳ tích hợp nào khác.

Bạn có thể sử dụng tích hợp này theo nhiều cách khác nhau, chẳng hạn như đọc một file bằng lệnh “cat” hoặc thực thi một script.

7. RESTful Sensor

Tương tác với bất kỳ API nào

Mô hình API RESTful được minh họa trên màn hình máy tínhMô hình API RESTful được minh họa trên màn hình máy tính

Nếu bạn có bất kỳ dịch vụ tự host nào (hoặc thậm chí các dịch vụ công cộng) mà bạn muốn sử dụng API của chúng, và không có tích hợp chính thức, thì RESTful Sensor là một công cụ tuyệt vời cho loại hình sử dụng đó. Bạn có thể sử dụng nó để gửi yêu cầu GET hoặc POST, và gửi dữ liệu kèm theo hoặc lưu các giá trị cụ thể được truy xuất. Đối với bộ điều khiển Govee H615B tự host của tôi, tôi đã viết một máy chủ web với API REST cơ bản để điều khiển đèn từ Home Assistant, và đây là cảm biến REST tôi đã tạo để đặt giá trị độ sáng cho chúng:

- light_brightness:
    url: "http://192.168.1.67:5000/api/light/brightness"
    method: POST
    content_type: "application/json"
    payload: '{"brightness": {{ brightness }}}'

Tôi cũng đã từng triển khai các template như thế này để kéo dữ liệu từ máy chủ TrueNAS của mình, trước khi tôi khám phá ra tích hợp TrueNAS REST API. Bất kỳ dịch vụ nào có API REST đều sẽ hoạt động với RESTful Sensor, và trong hầu hết các trường hợp, việc xử lý phản hồi để lưu dữ liệu được chỉ định vào các biến là khá dễ dàng.

6. Template

Công cụ mạnh mẽ nhất trong Home Assistant

Thiết lập tự động hóa Home Assistant điều khiển đèn Philips Hue qua templateThiết lập tự động hóa Home Assistant điều khiển đèn Philips Hue qua template

Template cực kỳ mạnh mẽ trong Home Assistant, và có một giao diện người dùng thực tế mà bạn có thể sử dụng để cấu hình rất nhiều template mà hầu hết người dùng sẽ muốn sử dụng. Một “template” cho phép bạn tạo một thực thể từ dữ liệu cụ thể, nhưng không phải mọi thực thể có thể được tạo bằng template đều có thể được tạo từ giao diện người dùng. Nếu bạn là người dùng nâng cao của Home Assistant và không ngại làm việc với YAML, thì việc đi thẳng vào cấu hình để xử lý template có thể dễ dàng hơn. Tôi cũng khuyên bạn nên sử dụng "!include" để trỏ đến một file template.yaml riêng biệt, vì nó ngăn cấu hình của bạn trở nên quá cồng kềnh.

Ví dụ, đây là những gì tôi sử dụng cho template của mình để kéo nhạc đang phát hiện tại trên Spotify, sau đó tôi hiển thị trên thiết bị WT32-SC01 Plus được cấp nguồn bằng ESP32.

- sensor:
  - name: "Spotify details"
    state: "OK"
    attributes:
      spotify_song: >
        {{ state_attr('media_player.spotify_adam_conway', 'media_title') }}
      spotify_artist: >
        {{ state_attr('media_player.spotify_adam_conway', 'media_artist') }}
      image: >
        {{ state_attr('media_player.spotify_adam_conway', 'entity_picture') }}

Template là một công cụ cực kỳ mạnh mẽ, và một khi bạn đã thành thạo chúng, bạn sẽ có thể sao chép cấu hình từ các template hiện có của mình và sửa đổi chúng để phù hợp với nhu cầu riêng.

5. Proxmox VE

Đã được thay thế bằng một tích hợp tốt hơn

Màn hình giao diện tích hợp Proxmox VE trong Home AssistantMàn hình giao diện tích hợp Proxmox VE trong Home Assistant

Nếu bạn đang chạy nhiều máy chủ Proxmox, thì có lẽ bạn đã thấy tích hợp Proxmox VE trong Home Assistant trước đây. Tuy nhiên, đây là một tích hợp “legacy” chỉ có thể được cấu hình từ file configuration.yaml của Home Assistant, điều này không vấn đề gì đối với một tích hợp hướng đến người dùng Proxmox, nhưng một lựa chọn thay thế bằng đồ họa sẽ tuyệt vời hơn khi nó tồn tại. Đó là lý do tại sao tôi sử dụng phiên bản tùy chỉnh của tích hợp Proxmox VE này (có sẵn thông qua HACS) thay vì phiên bản chính thức.

Tích hợp này cực kỳ mạnh mẽ, và nếu bạn chọn tích hợp “chính thức”, bạn sẽ cần làm mọi thứ bằng tay. Sau khi bạn cài đặt phiên bản HACS, nó sẽ thay thế hoàn toàn phiên bản nội bộ. Cả hai đều hoạt động tốt, nhưng cá nhân tôi thích phiên bản tùy chỉnh hơn vì khả năng kiểm soát thông qua giao diện người dùng.

4. OPNsense

Cũng được thay thế bằng một tích hợp tốt hơn

Giao diện tích hợp OPNsense tùy chỉnh trong Home AssistantGiao diện tích hợp OPNsense tùy chỉnh trong Home Assistant

Nếu bạn đang sử dụng thiết lập router và tường lửa OPNsense, Home Assistant có một tích hợp chính thức được cấu hình thông qua giao diện người dùng. Tuy nhiên, giống như Proxmox VE, có một phiên bản tùy chỉnh tốt hơn nhiều của tích hợp OPNsense cũng có sẵn thông qua HACS, và tôi thực sự khuyên dùng nó. Nó sử dụng API REST của OPNsense để truy vấn thông tin về thiết lập của bạn, và có thể kéo nhiều dữ liệu hơn nữa.

Nếu bạn muốn một cách để tích hợp OPNsense vào Home Assistant, đây là cách tốt nhất cho đến nay. Bạn có thể kiểm soát tất cả các dịch vụ của mình, xem các thống kê nâng cao, và thậm chí bật hoặc tắt các quy tắc tường lửa nếu bạn muốn thực hiện một số thử nghiệm… tất cả mà không cần phải đăng nhập.

3. SNMP

Hoàn hảo cho các bộ định tuyến

Người dùng đang thiết lập router TP-Link với giao thức SNMPNgười dùng đang thiết lập router TP-Link với giao thức SNMP

Nếu bạn đã sử dụng SNMP để theo dõi cơ sở hạ tầng của mình, nền tảng SNMP của Home Assistant cho phép bạn kéo các OID (Object Identifiers) đó trực tiếp vào thiết lập của mình. Đây là một thiết lập chỉ dựa trên file cấu hình, nhưng nó cực kỳ ổn định và linh hoạt một cách đáng ngạc nhiên; bạn có thể theo dõi bất cứ thứ gì từ bộ đếm trang của máy in đến tải CPU của một switch mạng. Điều tuyệt vời là một khi bạn biết OID, phần còn lại chỉ là sao chép-dán YAML, với một sự thay đổi trong cặp auth_key/priv_key của SNMP v3 nếu bạn cần mã hóa.

Ví dụ, nhiều router TP-Link đã triển khai SNMP, và rất đáng để thiết lập nếu bạn có một thiết bị sử dụng nó. Hãy kiểm tra xem bất kỳ thiết bị nào của bạn có sử dụng SNMP không!

2. Emulated Hue

Cẩn thận khi sử dụng tích hợp này

Hệ sinh thái nhà thông minh với thiết bị Google Pixel, Philips Hue và Wyze CamHệ sinh thái nhà thông minh với thiết bị Google Pixel, Philips Hue và Wyze Cam

Emulated Hue là một tích hợp nội bộ của Home Assistant, nghĩa là không cần cài đặt, nhưng bạn vẫn cần kích hoạt thủ công bằng cách sử dụng file configuration.yaml. Về cơ bản, nó giả vờ là một cầu nối Philips Hue, đánh lừa các thiết bị Amazon Echo hoặc (các phiên bản cũ hơn) Google Home nghĩ rằng mọi đèn, công tắc và script bạn hiển thị đều là một bóng đèn Hue.

Tích hợp này đòi hỏi rất nhiều sự cẩn trọng để sử dụng đúng cách, và trong hầu hết các trường hợp, nó không còn cần thiết nữa. Nếu được cấu hình không chính xác, nó có thể gây ra các vấn đề vĩnh viễn liên quan đến điều khiển giọng nói và các thực thể nhà thông minh của bạn, và yêu cầu khôi phục cài đặt gốc của các thiết bị đó để giải quyết. Cá nhân tôi không khuyên dùng nó, nhưng nó hữu ích cho những ai cần.

1. Serial

Xử lý các luồng dữ liệu đến

Mô hình mạch điện Arduino Uno kết nối qua cổng nối tiếp USB-serialMô hình mạch điện Arduino Uno kết nối qua cổng nối tiếp USB-serial

Đối với bất kỳ thiết bị nào gửi ký tự qua bộ chuyển đổi USB-serial, chẳng hạn như Arduino, ESP32, hoặc một dongle giám sát năng lượng, tích hợp Serial là một công cụ mạnh mẽ. Gắn thiết bị, truyền cổng nối tiếp vào môi trường container, và thêm vài dòng YAML để đọc dữ liệu từ nó như bạn vẫn làm với bất kỳ thiết bị nào khác. Bạn sẽ bắt đầu với một cảm biến đơn giản, sau đó tạo một template để xử lý dữ liệu. Đây là hình ảnh minh họa cho việc khởi tạo:

sensor:
  - platform: serial
    serial_port: /dev/ttyUSB0
    baudrate: 9600
    name: "Data"

Điều này rõ ràng phụ thuộc vào thiết lập của bạn, nhưng nó hoạt động tuyệt vời nếu bạn có các thiết bị chỉ giao tiếp qua cổng nối tiếp mà bạn vẫn muốn thu thập dữ liệu vào Home Assistant. Ngoài ra, vì tích hợp này chỉ đơn giản là thu thập bất kỳ dữ liệu nào được truyền vào, bạn có thể phân tích JSON, CSV và nhiều định dạng khác chỉ bằng các template Jinja tiêu chuẩn.

Các tích hợp Legacy vẫn rất tuyệt vời

Các tích hợp “legacy” dựa trên file có thể cảm thấy lỗi thời so với các trình hướng dẫn giao diện người dùng đẹp mắt mà Home Assistant có ngày nay, nhưng chúng vẫn là một trong những công cụ linh hoạt nhất trong kho vũ khí của nó. Các tích hợp quan trọng nhất đều có sẵn thông qua giao diện người dùng, nhưng đối với một số tích hợp này, bạn có thể muốn xem xét các file cấu hình của mình để khám phá thêm những gì bạn có thể làm với thiết lập nhà thông minh của mình.

Hãy chia sẻ ý kiến của bạn về những tích hợp nâng cao này và cách bạn đã tận dụng chúng trong hệ thống Home Assistant của mình!

Related posts

Những Thay Đổi Trong Tư Duy Lựa Chọn Linh Kiện PC Gaming Mới: Góc Nhìn 2025

Administrator

Nâng Tầm Trải Nghiệm Windows: 5 Ứng Dụng Tăng Năng Suất Không Thể Thiếu Cho Người Dùng Việt

Administrator

Microsoft Edit Mới: Trình Soạn Thảo Văn Bản Đơn Giản Tuyệt Vời Vượt Mặt Notepad

Administrator