Home Assistant là một nền tảng tự động hóa nhà thông minh vượt trội, cho phép bạn kết nối và quản lý mọi thiết bị, dịch vụ của mình trong một hệ thống duy nhất. Không chỉ dừng lại ở việc tự động hóa đơn thuần, Home Assistant còn mở ra cánh cửa để bạn khai thác tối đa tiềm năng của các thiết bị, vượt ra ngoài mục đích sử dụng ban đầu của chúng. Bạn có thể theo dõi email, xây dựng cảm biến tùy chỉnh hay quản lý máy chủ từ một giao diện tập trung – đó chính là vẻ đẹp của nền tảng này.
Tuy nhiên, có một số tích hợp (còn được gọi là “tích hợp cũ” hay “legacy integrations”) mà bạn chỉ có thể thiết lập thông qua file cấu hình chứ không phải từ giao diện người dùng (UI). Điều này là do Home Assistant đã tồn tại một thời gian dài, và các tích hợp “cũ” này được thiết kế cho các phiên bản phần mềm trước đó, khi mà việc cấu hình thủ công qua file YAML là phương pháp phổ biến.
Trước tháng 6 năm 2019, cụ thể là trước khi phiên bản 0.94 được phát hành, không có luồng cấu hình tích hợp nào trong UI. Do đó, để triển khai các tích hợp mới, người dùng phải tạo các mục nhập thủ công trong file cấu hình của Home Assistant và sau đó khởi động lại hệ thống. Mặc dù phương pháp cũ này vẫn hoạt động, hầu hết các tích hợp đã được cập nhật để hỗ trợ cấu hình qua UI mà không cần khởi động lại.
Sự đơn giản này đi kèm với một nhược điểm nhỏ, dù đã được cải thiện theo thời gian. Tại thời điểm đó, nó gây ra một số tranh cãi vì những người dùng có kiến thức kỹ thuật chuyên sâu ưa thích khả năng kiểm soát mọi thứ từ các file cấu hình. Tuy nhiên, nhiều người dùng Home Assistant mới thậm chí có thể không biết đến những tích hợp mạnh 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ũ, tập trung vào người dùng nâng cao, chúng “chỉ hoạt động” tốt và không cần cập nhật, trong khi một số khác dường như đã bị cộng đồng lãng quên. Dưới đây là 8 tích hợp mạnh mẽ mà các chuyên gia công nghệ vẫn sử dụng và yêu thích.
8. Command Line (Dòng Lệnh)
Chạy lệnh Linux từ Home Assistant
Tích hợp “Command Line” thuộc nhóm “chỉ hoạt động” một cách tuyệt vời. Nó thực hiện chính xác những gì tên gọi của nó gợi ý: chạy các lệnh Linux trong container mà Home Assistant đang hoạt động. Các lệnh này có thể từ những triển khai rất đơn giản đến các thiết lập phức tạp 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 thay đổi.
command_line:
- sensor:
unique_id: public_ip
name: Public IP
command: "wget -O - -q https://checkip.amazonaws.com"
scan_interval: 300
Giao diện Home Assistant OS đang chạy trên nền tảng ảo hóa Proxmox, thể hiện khả năng thực thi lệnh thông qua tích hợp Command Line.
Đoạn mã trên tạo ra một thực thể sensor.public_ip
trong Home Assistant, sau đó lưu kết quả từ trang web được truy vấn vào cảm biến đó. Bởi 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 dùng “-O -” trong lệnh wget
để chỉ định rằng “file đầu ra” 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 vào đâu đó. Tích hợp command_line
sau đó đọc đầu ra này và ghi nó vào cảm biến public_ip
của chúng ta, để nó có thể được thể hiệ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, như đọc một file bằng lệnh “cat” hoặc thực thi một script.
7. RESTful Sensor
Làm việc với bất kỳ API nào
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, và không có tích hợp chính thức, thì RESTful Sensor là lựa chọn tuyệt vời cho loại hình sử dụng đó. Bạn có thể 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 mình, tôi đã viết một web server 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 để thiết lập 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 }}}'
Hình ảnh công cụ Bruno trên màn hình laptop, minh họa quá trình làm việc với API để tích hợp RESTful Sensor trong Home Assistant.
Tôi cũng đã từng triển khai các template tương tự để lấy dữ liệu từ instance TrueNAS của mình, trước khi tôi khám phá ra tích hợp API REST của TrueNAS. Bất kỳ thứ gì 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ụ thể vào biến là khá dễ dàng.
6. Template
Công cụ mạnh mẽ nhất trong Home Assistant
Templates rất mạnh mẽ trong Home Assistant, và có một UI 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 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ể tạo bằng template đều có thể được tạo từ UI. Nếu bạn là một người dùng Home Assistant nâng cao và không ngại làm việc với YAML, thì việc truy cập trực tiếp vào cấu hình để xử lý các template có thể dễ dàng hơn. Tôi cũng khuyến nghị sử dụng “!include” để trỏ đến một file “template.yaml” riêng biệt, vì nó giúp file cấu hình chính của bạn không 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 để lấy nhạc Spotify đang phát, sau đó tôi hiển thị nó trên ESP32 WT32-SC01 Plus.
- 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') }}
Sơ đồ tự động hóa GoXLR trong Home Assistant, điều chỉnh âm lượng theo độ sáng, thể hiện sức mạnh của tích hợp Template.
Templates 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ác cấu hình từ các template hiện có và sửa đổi chúng để phù hợp với nhu cầu của mình.
5. Proxmox VE
Đã được thay thế bởi tích hợp tốt hơn
Nếu bạn đang chạy nhiều máy chủ Proxmox, hẳn bạn đã từng thấy tích hợp Proxmox VE trong Home Assistant. Tuy nhiên, đây là một tích hợp cũ chỉ có thể cấu hình từ file configuration.yaml
của Home Assistant. Điều này ổn đối với một tích hợp hướng đến người dùng Proxmox, nhưng một giải pháp thay thế bằng giao diện đồ họa sẽ rất tuyệt vời nếu 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 (có sẵn thông qua HACS – Home Assistant Community Store) thay vì phiên bản chính thức.
Giao diện tích hợp Proxmox VE trong Home Assistant, hiển thị thông tin máy chủ ảo, minh họa khả năng giám sát hệ thống.Tích hợp này vô cùng mạnh mẽ, và nếu bạn chọn tích hợp “chính thức” (legacy), bạn sẽ cần làm mọi thứ bằng tay. 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 qua UI của nó.
4. OPNsense
Cũng được thay thế bởi tích hợp tốt hơn
Nếu bạn đang sử dụng bộ định tuyến và tường lửa OPNsense, Home Assistant có một tích hợp chính thức được cấu hình qua UI. Tuy nhiên, giống như với 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 đặc biệt khuyến nghị 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ể lấy được nhiều dữ liệu hơn nữa.
Giao diện tích hợp OPNsense trong Home Assistant, hiển thị trạng thái và thông số mạng, cho phép quản lý router và tường lử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. Bạn có thể kiểm soát tất cả các dịch vụ của mình, xem các số liệu 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 đăng nhập.
3. SNMP
Hoàn hảo cho các bộ định tuyến
Nếu bạn đã và đang 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 đưa 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ỉ có trong 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 bộ chuyển mạch. Vẻ đẹp của nó là một khi bạn biết OID, phần còn lại chỉ là copy-paste YAML, với việc thay đổi cặp auth_key
/priv_key
của SNMP v3 nếu bạn cần mã hóa.
Một người đang cầm router TP-Link, minh họa thiết bị mạng có thể được giám sát bằng tích hợp SNMP trong Home Assistant.Ví dụ, nhiều bộ định tuyến 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 nhé!
2. Emulated Hue
Cẩn trọng với tích hợp này
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 bật nó 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 Google Home (đời cũ) nghĩ rằng mọi đèn, công tắc và script bạn đưa ra đều là bóng đèn Hue.
Các thiết bị nhà thông minh như Google Pixel 6 Pro, Philips Hue Go và Wyze Cam, thể hiện khả năng tương tác với Emulated Hue trong Home Assistant.Tích hợp này đòi hỏi rất nhiều sự cẩn trọng khi 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ấ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 bằng 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 nghị sử dụng nó, nhưng nó hữu ích cho những ai thực sự cần.
1. Serial (Nối Tiếp)
Xử lý luồng dữ liệu đầu vào
Đối với bất kỳ thiết bị nào truyền ký tự qua bộ chuyển đổi USB-serial, chẳng hạn như Arduino, ESP32 hoặc dongle giám sát năng lượng, tích hợp Serial là một công cụ mạnh mẽ. Bạn chỉ cần kết nối thiết bị, chuyển cổng serial qua 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 thức khởi tạo của nó:
sensor:
- platform: serial
serial_port: /dev/ttyUSB0
baudrate: 9600
name: "Data"
Board mạch Arduino Uno cùng dây jumper và breadboard, minh họa thiết bị có thể truyền dữ liệu qua cổng Serial đến Home Assistant.
Thiết lập này rõ ràng phụ thuộc vào hệ thống 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 serial mà bạn vẫn muốn thu thập dữ liệu trong Home Assistant. Hơn nữa, vì tích hợp này chỉ đơn giản là thu nhận bất kỳ dữ liệu nào được truyền vào, bạn có thể phân tích cú pháp JSON, CSV và nhiều định dạng khác chỉ với các Jinja template tiêu chuẩn.
Các tích hợp cũ vẫn rất tuyệt vời
Các tích hợp dựa trên file cấu hình có thể trông lỗi thời so với các wizard UI đẹ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ó. Hầu hết các tích hợp quan trọng đều có sẵn thông qua UI, nhưng đối với một số tích hợp nâng cao, bạn có thể cầ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 hệ thống nhà thông minh của mình. Hãy thử nghiệm và khám phá tiềm năng ẩn của Home Assistant để biến ngôi nhà của bạn thành một không gian thông minh hơn, độc đáo hơn.