Home Assistant

Home Assistant: cài đặt mới

HassOS on Pi4

Chỉ mất vài bước để cài đặt Home Assistant/Hassio lên Pi hay các thiết bị khác là bạn đã sẵn sàng làm chủ ngôi nhà thông minh của mình

Photo: home-assistant.io
24 phút để đọc hết nội dung

Bài viết này sẽ hướng dẫn bạn cách cài đặt từ đầu Home Assistant lên Raspberry Pi hoặc một SBC (Single Board Computer – máy tính chỉ trên một bo mạch) hay máy ảo để biến các thiết bị này thành máy chủ Home Assistant quản lý ngôi nhà thông minh của bạn.

Bạn đã từng xem bài này hoặc biết rõ mình đang làm gì, chuyển ngay đến:
Cài đặt HassOS hoặc Cài đặt trên Docker

Để làm theo hướng dẫn này, bạn cần: một máy tính chạy MacOS/Windows/Linux (khả năng là máy tính bạn đang dùng đọc bài này), kết nối Internet, một thẻ nhớ MicroSD/USB Drive (hay gọi là USB) dung lượng tối thiểu 16GB (và bộ chuyển đổi thẻ để sử dụng với đầu đọc thẻ nhớ), kĩ năng cài và chạy phần mềm trên máy tính của bạn, bo mạch Raspberry Pi hoặc mạch tương tự, một chút kiên nhẫn.

Bạn cũng có thể cần thêm: cáp ethernet (cáp Lan) nếu muốn kết nối máy chủ Home Assistant vào mạng nội bộ bằng cáp; đầu đọc thẻ nhớ nếu máy tính không có sẵn.

Máy chủ Home Assistant: được hiểu là bao gồm Thiết bị vật lý (vd: Pi), hệ điều hành và Home Assistant (Supervisor/Core) chạy trên đó. Trong bài này, máy chủ Home Assistant chạy HassOS với đầy đủ tính năng của nó.
(có thể bạn muốn xem lại: các khái niệm cơ bản trong Hass)

! Yêu cầu tối thiểu/khuyến nghị
  • Thẻ nhớ: nếu bạn định cài đặt và dùng Home Assistant lâu dài trên thẻ nhớ/USB, dung lượng khuyến nghị là tối thiểu 32GB và thẻ nên đạt chuẩn A1. Xem thêm: thẻ nhớ nào thích hợp dùng cho Pi/Hass.
    Nếu bạn đang sử dụng Raspberry Pi 3B+, thiết bị này có khả năng khởi động trực tiếp từ USB mà không cần thẻ microSD. Các thiết bị Pi khác cần một thẻ microSD để chỉnh sửa cài đặt trước khi khởi động được từ USB, Pi 4 chưa thể khởi động được từ USB sử dụng một phiên bản hệ điều hành beta (kiểm lỗi).
    Thông tin thêm từ Raspberry Pi (EN).
  • Raspberry Pi: nên là Pi 4B, Pi 3B+ hoặc Pi 3, Pi 2 trở về trước khá chậm để sử dụng Home Assistant. Raspberry Pi 4 với 2GB bộ nhớ RAM là thiết bị lý tưởng để chạy Home Assistant trong phần lớn tình huống.
    Xem thêm về các mẫu Raspberry Pi.
  • Bo mạch khác: các board mạch phát triển/SBC/máy tính nhúng/TV Box khác cũng có thể rất tốt để chạy Hass. Tuy nhiên khả năng vận hành, cộng đồng hỗ trợ và yêu cầu tối thiểu tuỳ thuộc vào từng bo mạch khác nhau. Konnect ED Team sẽ phát triển thêm các nội dung hỗ trợ từng loại cụ thể trong tương lai, tuy nhiên, để được hỗ trợ nhanh và dễ dàng nhất, Raspberry Pi là thiết bị được chúng tôi khuyên dùng nếu bạn mới bắt đầu sử dụng Home Assistant.
! Về chạy Home Assistant trên máy ảo

Home Assistant gần như có thể chạy trên bất cứ máy ảo Linux nào có khả năng chạy Python. Home-assistant.io cũng cung cấp sẵn ảnh đĩa (disk image) để triển khai ngay máy ảo sử dụng VMWare hay VirtualBox.

Hai cách cài đặt Home Assistant trong bài viết này

Có rất nhiều cách để cài đặt và vận hành Home Assistant, tuy nhiên trong bài viết này, chúng tôi hướng dẫn 2 cách phổ biến nhất. Hiệu năng và tính năng của máy chủ Hass khi cài đặt bằng cả 2 cách này là tương đương.

! Use At Your Own Risk/Lưu ý Trách Nhiệm

I. Mọi thao tác trên thiết bị điện hay thiết bị là nguồn nguy hiểm phải được tiến hành bởi người có chuyên môn và chứng chỉ phù hợp.

II. Bạn phải tuân theo mọi chỉ dẫn an toàn (Safety Instruction/Safety Information) đi kèm với thiết bị.

III. Tất cả nội dung trên trang web này (https://konnected.vn) đến từ KonnectED, KonnectED Team và nhóm tác giả đều được kiểm tra và kiểm nghiệm bởi những người có kiến thức và kinh nghiệm trong lĩnh vực đó, cũng như được áp dụng phổ biến bởi cộng đồng, tuy vậy chúng tôi không thể đảm bảo những chỉ dẫn hay nội dung này hoạt động tốt và an toàn trên tất cả các hệ thống, thiết bị hay tình huống. Vì vậy, tuyên bố này miễn cho KonnectED, KonnectED Team và các tác giả mọi trách nhiệm liên quan đến tai nạn hay sự cố hư hỏng thiết bị, hệ thống khi đọc giả làm theo các hướng dẫn hay nội dung được chia sẻ trên trang web này.
Tất cả các trách nhiệm khác của công ty Konnect ED đối với sản phẩm thương mại hay dịch vụ thương mại không bị miễn trừ bởi tuyên bố này.

Xem thêm Tuyên bố Pháp lý, Công bằng và Minh bạch

  1. Cài đặt HassOS: cách này áp dụng cho Raspberry Pi và một số hạn chế các thiết bị được hỗ trợ.
    + Ưu điểm: rất đơn giản, là giải pháp tất cả trong một.
    + Nhược điểm: mất thời gian chờ đợi ban đầu, không dễ nếu muốn can thiệp tinh chỉnh ở mức hệ điều hành (OS).
    Bạn gần như phụ thuộc hoàn toàn vào Home Assistant để quản lý máy chủ Hass.
  2. Cài đặt Home Assistant thông qua Docker lên một hệ điều hành Linux:
    + Ưu điểm: chạy được trên số lượng rất lớn thiết bị (cả Pi), dễ dàng nâng cấp, sao lưu hay quay về phiên bản Hass ưa thích, Hass được tách biệt (sandbox) khỏi hệ điều hành. Bạn dễ dàng tinh chỉnh hay chạy thêm các dịch vụ khác (như các dịch vụ của một thiết bị lưu trữ mạng NAS/FTP/SMB) trên cùng máy chủ mà không lo ảnh hưởng đến Hass.
    + Nhược điểm: cần thêm một số thao tác với máy tính và Home Assistant để triển khai. (và cũng có một số “lùm xùm” về việc đây có phải phương thức cài đặt Home Assistant được chính thức hỗ trợ hay không?)
! Docker

Bạn có biết bản thân Home Assistant Supervisor và do vậy HassOS, cũng là một giải pháp dựa trên Docker?

Docker (docker.com) là một nền tảng mở giúp triển khai các máy ảo (container), nổi bật bởi tốc độc nhanh và triển khai hàng loạt dễ dàng. Docker chủ yếu chạy trên Linux tuy nhiên cũng chạy được trên MacOS và Windows.

Cài đặt HassOS

4 bước cài đặt HassOS

Tải về Home Assistant OS (HassOS)

+ HassOS: bạn cần xác định được loại thiết bị của mình (Pi3B/Pi3B+/Pi4 v.v…) rồi tải về file tương ứng tại home-assistant.io hoặc bấm vào các liên kết bên dưới. Với Pi, khuyến nghị là bạn nên chọn các bản 32bit, tuy nhiên chúng tôi cũng vận hành các bản 64bit mà không có lỗi gì nghiêm trọng.

Danh sách các thiết bị hỗ trợ bao gồm: Raspberry Pi, TinkerBoard, Odroid-XU4, Odroid-C2, Odroid-N2, Intel NUC và ảnh đĩa dành cho máy ảo chạy trên VMWare và Virtualbox. Nếu thiết bị của bạn không được hỗ trợ, hãy chuyển sang cách 2: cài đặt trên Docker.

Liên kết tải: Pi 4B / Pi 3B+ / Pi 3B / Intel NUC

Các file sau khi tải về ở dạng file nén (phần mở rộng .gz). Trên MacOS bấm đôi vào file tải về để giải nén, trên Windows, tải về phần mềm miễn phí 7-Zip hoặc WinRar rồi mở file tải về bằng các phần mềm này. Trên Linux, giải nén bằng lệnh gunzip file.

+ Phần mềm ghi đĩa balenaEtcher: là phần mềm miễn phí giúp ghi/sao chép – flash file ảnh đã được giải nén ở bước trên vào thẻ nhớ/USB, chạy được trên cả MacOS/Windows/Linux. Bạn tải về phiên bản tương ứng với hệ điều hành máy tính tại balena.io/etcher.

Tải về phiên bản Etcher phù hợp, nếu bạn băn khoăn giữa 32bit và 64bit, hãy chọn bản 32bit

Ghi HassOS lên thẻ

Bạn cần cắm thẻ nhớ/USB vào đầu đọc thẻ nhớ trên máy tính. Đảm bảo máy tính đã nhận được thẻ nhớ (trên Windows/MAC sẽ có thông báo thiết bị mới và có thể cả yêu cầu Định dạng – Format thẻ, bạn hãy bỏ qua yêu cầu này).

Cài đặt phần mềm Etcher đã tải ở trên và chạy nó. Thông thường, Etcher sẽ tự nhận dạng được thẻ nhớ/USB trên máy tính, tuy nhiên, nếu có nhiều thiết bị, bạn hãy chọn thiết bị đúng (nhận dạng qua tên & dung lượng).

Tiếp theo ấn vào dấu (+) và tìm chọn file ảnh Hassos đã tải về ở B1, file này có phần mở rộng là .img. Sau đó bấm Flash và chấp nhận yêu cầu của Etcher hoặc MacOS/Windows, có thể bạn sẽ cần nhập cả mật khẩu tài khoản quản trị của máy tính để thực hiện được việc ghi thẻ.

! Khuyến cáo

Flash/ghi thẻ bởi Etcher sẽ xoá toàn bộ dữ liệu trên thẻ, do vậy hãy chắc chắn là bạn chọn đúng thẻ nhớ trước khi flash. Để an toàn, ở bước này, hãy rút toàn bộ thẻ nhớ/USB ra khỏi máy tính, chỉ để lại thẻ nhớ bạn chọn để flash.

Nếu Etcher báo lỗi sau khi flash được một lúc, hãy thoát Etcher đồng thời tháo thẻ nhớ khỏi máy tính sau đó cắm vào lại. Mở lại Etcher và thử flash lại lần nữa. Nếu vẫn gặp lỗi, hãy sử dụng một thẻ nhớ khác.

Giao diện Etcher, bên trái là chọn file ảnh, ở giữa là thẻ nhớ với tên và dung lượng

Sau khi hoàn tất ghi thẻ và kiểm tra lại sự toàn vẹn dữ liệu trên thẻ (thông qua đối chiếu nội dung giữa file ảnh và thẻ), Etcher sẽ thông báo hoàn tất và đẩy – eject thẻ khỏi hệ điều hành. Lúc này, bạn có thể lấy thẻ/USB ra khỏi đầu đọc thẻ/máy tính.

Cài đặt HassOS

Ở bước này, hãy cắm thẻ nhớ/USB ở trên vào thiết bị của bạn (như Pi). Lưu ý ngắt nguồn điện của thiết bị trước khi thao tác. Nếu bạn khởi động thiết bị từ USB, cắm vào bất cứ cổng USB nào cũng được, tuy nhiên, nếu Pi không thể khởi động ở bước sau, hãy ngắt nguồn và cắm USB vào một cổng khác.

! Cầm Pi/SBC đúng cách

Để đảm bảo an toàn cho bạn và thiết bị, khi thao tác với Pi bằng tay mà không có vỏ bọc – case/enlosure, hãy ngắt nguồn bằng cách rút cáp kết nối khỏi cục cung cấp nguồn – adapter (5V) hoặc nếu nguồn và cáp đi liền, rút nguồn khỏi ổ cắm điện.

Giữ Pi bằng cách cầm vào 2 cạnh của thiết bị, tránh không chạm vào bất cứ thành phần kim loại nào trên board mạch. Làm khô tay trước khi thao tác.

Sau khi cắm thẻ vào thiết bị, kết nối Pi đến bộ định tuyến/router bằng cáp mạng (ethernet cable), sau đó cắm nguồn và đặt thiết bị của bạn vào nơi an toàn, tránh tiếp xúc với tay hay vật thể dẫn điện (như bệ để tay bằng nhôm trên Macbook của bạn). Tuy nhiên, nếu bạn không thể kết nối bằng cáp vào mạng hoặc dự định kết nối thiết bị vào mạng qua kết nối WiFi, hãy xem chú ý ! ở dưới.

Lưu ý

Đây là lần đầu tiên bạn khởi động thiết bị sau khi ghi hệ điều hành vào thẻ, hãy để thiết bị khởi động xong và chạy một lúc (khoảng 10p) trước khi tắt nguồn hay khởi động lại thiết bị. Ở lần khởi động đầu tiên, các hệ điều hành mới cần thực hiện một số thao tác cấu hình và cài đặt chuẩn bị trước, như mở rộng hệ thống file, cấu hình các gói cơ bản. Ngắt nguồn giữa quá trình này có thể gây ra lỗi, khi đó bạn phải ghi – flash lại thẻ.

! Kết nối Home Assistant OS vào mạng qua kết nối WiFi

Các câu lệnh, tên thư mục và tập tin – file dưới đây đòi hỏi phải viết đúng kí tự hoa và thường.
Hãy tắt thiết bị bằng cách rút cáp nguồn khỏi cục cung cấp nguồn hoặc nếu cục cung cấp nguồn đi liền với dây, rút cục nguồn khỏi ổ cắm điện. Rút thẻ nhớ/USB khỏi thiết bị và cắm vào máy tính. Bạn cũng có thể sử dụng một thiết bị nhớ USB khác và định dạng – format USB này với định dạng FAT32 và tên – nhãn là CONFIG, thao tác này sẽ xoá toàn bộ dữ liệu trên USB này. Sau đây gọi chung thẻ/USB khác này là thẻ.
Sau khi kết nối, tìm bộ nhớ/ổ đĩa có tên là hassos-boot với dung lượng thông thường là 32MB. Ngay trên ổ đĩa này, tạo một thư mục mới có tên là CONFIG và một thư mục con có tên network bên trong thư mục CONFIG vừa tạo. Nếu bạn dùng USB khác, chỉ cần tạo thư mục tên network ngay trên USB này mà không cần thư mục CONFIG. Bên trong thư mục này, tạo một file có tên my-network (không có phần mở rộng) với nội dung như bên dưới.
Nhớ thay WIFI_SSID và WIFI_KEY bằng tên và mật khẩu mạng WiFi của bạn.
(đôi khi khá khó để đặt tên file mà không có phần mở rộng, trong trường hợp đó bạn có thể tải file mẫu ở đây rồi giải nén và sửa lại nội dung bằng ứng dụng soạn thảo văn bản: my-network).

[connection]
id=my-network
# Co the tao mot uuid moi tai https://www.uuidgenerator.net
uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3
type=802-11-wireless
[802-11-wireless]
mode=infrastructure
# Thay WIFI_SSID bang ten mang WiFi cua ban
ssid=WIFI_SSID
# Xoa bo dau # o dong duoi neu mang wifi cua ban la mang an
#hidden=true
[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
# Thay WIFI_KEY bang mat khau mang WiFi cua ban
psk=WIFI_KEY
[ipv4]
method=auto
# Them dau # truoc dong tren va xoa dau # truoc 3 dong duoi de su dung IP tinh; Thay dia chi IP mong muon va IP cua router cho phu hop voi mang cua ban
#method=manual
#address=192.168.1.111/24;192.168.1.1
#dns=8.8.8.8;8.8.4.4;
[ipv6]
addr-gen-mode=stable-privacy
method=auto

Nếu bạn không biết cách tạo file này trong Windows, hãy mở ứng dụng Notepad, Copy và Paste nội dung ở trên vào ứng dụng Notepad, thay tên và mật khẩu WiFi vào vị trí tương ứng. Sau đó chọn Lưu – Save, di chuyển đến thư mục network vừa tạo ở trên, chọn lưu file với tên my-network, type là txt và bảng mã là ANSI.

Sau khi lưu, tắt Notepad, và mở ứng dụng cmd (bằng cách vào Start Menu > tìm kiếm > cmd hoặc nút Start + r, nhập cmd). Trong cửa sổ ứng dụng cmd (Windows Command Processor), nhập “rename ” (với dấu cách), dùng chuột kéo file my-network vừa tạo vào cửa sổ ứng dụng rồi nhập tiếp “ my-network” và ấn Enter. Trông như sau:

rename E:\CONFIG\network\my-network.txt my-network

Tới bước này bạn có thể eject thẻ nhớ/USB ra khỏi Windows và cắm vào thiết bị (Pi) như bước trên. Nếu bạn dùng một USB khác để cấu hình WiFi, hãy cắm cả USB này vào trước khi khởi động thiết bị rồi khởi động với cả thẻ nhớ và USB cấu hình được cắm vào thiết bị.
Vẫn không hình dung ra cách thực hiện, bạn hãy xem qua Video sau trên Youtube: Home Assistant WiFi Setup.

Xem từ phút 01:16
! Cố định IP của HassOS

update red icon 17/09/2020, từ phiên bản Home Assistant 0.115 trở đi (Supervisor 244), bạn có thể cài đặt IP tĩnh trực tiếp từ giao diện Supervisor

Tương tự như hướng dẫn cấu hình kết nối Wifi cho Home Assistant ở trên, bạn tạo file my-network bên trong thư mục CONFIG/network/ với nội dung như bên dưới, thay đổi IP của máy chủ Hass và Router cho phù hợp.
Chú giải:
address=192.168.1.123/24;192.168.1.1 trong đó 192.168.1.123 là địa chỉ IP cố định mà bạn muốn gán cho máy chủ Hass, 192.168.1.1 là địa chỉ router.
dns=208.67.222.222;8.8.8.8; là địa chỉ máy chủ phân giải DNS, ở đây là địa chỉ của OpenDNS và Google DNS.

[connection]
id=my-network
# Co the tao mot uuid moi tai https://www.uuidgenerator.net
uuid=d55162b4-6152-4310-9312-8f4c54d86afa
type=802-3-ethernet
[ipv4]
method=manual
address=192.168.1.123/24;192.168.1.1
dns=208.67.222.222;8.8.8.8;
[ipv6]
addr-gen-mode=stable-privacy
method=auto

Nếu bạn làm đúng các bước như trên, gần như chắc chắn thiết bị (Pi) sẽ bắt đầu khởi động từ thẻ nhớ. Thông thường dấu hiệu Pi khởi động sau khi cắm nguồn là đèn đỏ trên board mạch sáng liên tục, đèn xanh bắt đầu nhấp nháy 5-10 giây sau đó và tiếp tục nhấp nháy không theo quy luật nếu bạn khởi động sử dụng thẻ nhớ. Nếu bạn sử dụng USB (như trên Pi 3B+), đèn xánh sẽ nhấp nháy 3 lần một trong suốt quá trình hoạt động.

Với các thiết bị khác, bạn cần tham khảo tài liệu của nhà sản xuất.

Truy cập Home Assistant

Nếu thiết bị của bạn khởi động bình thường từ bước trên đây, hãy chờ một vài phút rồi truy cập vào Home Assistant thông qua trình duyệt – browser (như Safari, Chrome hay Firefox) của máy tính hay điện thoại đang kết nối vào cùng mạng với máy chủ Hass.

Hãy thử nhập http://homeassistant.local:8123 vào thanh địa chỉ của trình duyệt. Nếu cả trình duyệt và bộ định tuyến – router của bạn đều hỗ trợ mDNS, bạn sẽ truy cập được đến Home Assistant bằng địa chỉ này. Một số router và trình duyệt (như Chrome trên Android) không hỗ trợ mDNS, bạn cần truy cập vào trang quản trị của router (như thông thường có địa chỉ http://192.168.1.1) và tìm máy chủ Hass trong danh sách thiết bị kết nối. Ghi lại địa chỉ IP của máy chủ Hass và nhập lại vào thanh địa chỉ của trình duyệt http://192.168.1.2:8123 (với 192.168.1.2 là địa chỉ IP của máy chủ Hass). Nếu chính xác, bạn sẽ nhìn thấy màn hình như dưới đây trong cửa sổ trình duyệt.

Màn hình thông báo đang cài đặt của Home Assistant. Tuỳ vào thiết bị và kết nối mạng của bạn, quá trình này sẽ mất từ 20 phút cho đến hàng giờ. Trong lúc này bạn không cần mở cửa sổ trình duyệt hay làm gì cả, hãy làm việc khác, như đọc trước các bài sau:
Home Assistant: Các thiết lập cơ bản
Home Assistant: Cài đặt thông qua Docker
và quay lại kiểm tra (bằng cách vào địa chỉ như ở trên) sau vài chục phút.
Nếu sau vài giờ mà hiện trạng vẫn như thế này, rất tiếc, hãy quay lại làm từ bước Ghi Hassos lên thẻ hoặc chuyển sang Cách 2: cài Hass thông qua Docker.

Sau vài chục phút chờ đợi, giờ bạn hãy kiểm tra bằng cách làm mới – refresh lại cửa sổ trình duyệt hoặc vào lại địa chỉ như trên. Nếu cài đặt thành công và hoàn tất, bạn sẽ được chuyển đến trang Tạo tài khoản mới của Home Assistant.

Xem tiếp Home Assistant: Các thiết lập cơ bản.

Màn hình yêu cầu tạo tài khoản người dùng của Home Assistant. Dấu chỉ cho thấy quá trình cài đặt đã thành công.

Cài đặt Home Assistant thông qua Docker

Đến đây bài đã khá dài nên chúng tôi (Biên tập viên) tách phần tiếp theo ra thành một bài viết mới tại đây:

https://konnected.vn/home-assistant/home-assistant-cai-dat-tren-docker-2020-03-20

Cảm ơn bạn đã xem bài viết này!

konnectED Team.

Lên Đầu
  • Đăng ký
Bạn quên mất mật khẩu? Vui lòng nhập tên đăng nhập và địa chỉ email đã đăng ký. Bạn sẽ nhận được liên kết tạo mật khẩu mới qua email (bạn nhớ kiểm tra hộp spam trong trường hợp email đi lạc).